Перемкнути "Використовувати всі F1, F2 як стандартні клавіші" за допомогою скрипту


25

Я перемикаю налаштування "Використовувати всі F1, F2 як стандартні клавіші" дуже часто і хотів би автоматизувати це за допомогою сценарію (або комбінації клавіш). Це можливо? Я намагався Google правильні аргументи, defaults write ...але безуспішно.

fn налаштування


Оновлення: я закінчив створення https://github.com/jkbrzt/macos-fn-toggle на основі відповідей тут.

Оновлення II: Зараз також - https://github.com/Pyroh/Fluor - дійсно приємний додаток меню, що дозволяє автоматично змінювати поведінку клавіш fn клавіатури залежно від активного додатка.

Відповіді:


25
tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

Ви також можете використовувати defaults write -g com.apple.keyboard.fnState -bool true, але я не знаю жодного способу застосувати зміни, не виходячи з системи та знову ввійти.


4
Я запакував цей сценарій як додаток за допомогою Automator, щоб його можна було швидко запустити з Spotlight: github.com/jkbr/macos-fn-toggle
Jakub Roztocil

@jkbr Ваш додаток на github - це лише те, що я шукав. Спасибі!
mdwhatcott

1
Ви також можете зберегти сценарій як додаток з AppleScript Editor. Просто вставте сценарій у редактор AppleScript, натисніть ⌘S і встановіть формат на додаток.
Лрі

В якості ще однієї альтернативи в автоматизаторі створити нову "послугу", додайте команду Run Applescript і вставте її туди, де вона пише (* Ваш сценарій йде сюди *). Збережіть, і тоді меню сервісів у всіх додатках буде включати fn :)
Spyder

2
На Mavericks ви отримуєте помилку на кшталт: "Редактору AppleScript не надається допоміжний доступ." Тож вам потрібно перейти до "Безпеки та конфіденційності" на вкладці "Конфіденційність", вибрати "Доступність" та дозволити вашому додатку робити це. Вам потрібно буде вказати пароль адміністратора, щоб відкрити замок.

9

Я не знаю про сценарій, але за допомогою зручної реверсивної інженерії та Googling я зробив це, оскільки мені не сподобалися наявні в AppleScript GUI речі, які там були:

https://github.com/nelsonjchen/fntoggle

Скомпільований двійковий файл (киньте у свій PATH або якщо ви не знаєте, що це тоді /usr/local/bin/): https://github.com/nelsonjchen/fntoggle/releases

Зателефонуйте йому з чого завгодно (ControlPlane, Automator shтощо) запуском fntoggle onабо fntoggle off.

Цей сценарій не вимагає включення доступності GUI. Він також не вимагає виходу та повернення в систему.


Це все ще працює в Сьєррі? Тут не працює.
Warren P

@WarrenP Ця проблема може бути освічуючою. github.com/nelsonjchen/fntoggle/isissue/4
crazysim

4

Ви можете прочитати поточний стан за допомогою наступного. (1 для клавіш F, 0 для медіа / яскравості тощо)

defaults read "Apple Global Domain" "com.apple.keyboard.fnState"

Ви можете написати це, однак це не зміниться, поки ви не перезавантажитесь. (Натомість я намагався вбити Dock and Finder. Не пощастило)

defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "1" ## F1 F2 etc
defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "0" ## Brightness/Media

Я підозрюю, що хтось має більше знань про те, що читає цей файл плісту, може написати сценарій для вбивства та перезавантаження, що читає цей пліст, який повинен змусити його визнати зміни.


Дякую, це правильний ключ. Однак, якщо змінити його безпосередньо, це, мабуть, не змінить поведінку.
Якуб Розтоцил

не допомагає, хоча перезавантажився
Даніель,

1

Насправді вам не потрібно запускати будь-яку програму із прожектором чи будь-яким іншим, найкращий спосіб, на мою думку, це:

  1. Створіть нову послугу в Automator
  2. Перетягніть: "Запустити сценарій Apple
  3. У розділі "Служби вибрано": виберіть відсутні дані
  4. Вставте цей код з іншої відповіді :

    tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
    end tell
    tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
    end tell
    quit application "System Preferences" 
    
  5. Зберегти як "своє ім'я"

  6. Відкрийте Налаштування системи → Клавіатура → Швидкі клавіші
  7. У меню зліва виберіть: "Послуги"
  8. Праворуч прокрутіть до кінця вниз до Загального та призначте вашій службі якусь унікальну гарячу клавішу, я виберу cmd + shift + L

  9. Це воно! Це не дуже швидко і нічого, але вам не потрібно запускати будь-яку програму або самостійно відвідувати налаштування.

Додаток: З EL Capitan це працює лише тоді, коли Автоматизатор знаходиться в фокусі, інакше (наприклад, якщо ви викликаєте сценарій за допомогою комбінації клавіш), ви отримуєте повідомлення "Дія" Запустити AppleScript "зіткнулася з помилкою".


0

Ласкаво просимо до "Запитайте різних"! Ви розмістили це як відповідь, що стосується лише речей, які безпосередньо відповідають на поставлене запитання. Відповіді на запитання різних повинні бути більше, ніж просто посилання. Добре включити посилання, але будь ласка, узагальнюйте або витягуйте його у відповідь. Ідея полягає в тому, щоб зробити відповідь самостійною. Будь ласка, подивіться на поширені запитання для отримання додаткової інформації. Спасибі.
Натан Грінштейн

0

З огляду на всі відповіді, я застосував таке рішення для Yosemite.

Використовуючи Automator, я створив додаток із таким кодом:

tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

Збережіть його, додайте до програми. Щоб уникнути "Редактора AppleScript не дозволений допоміжний доступ.", Перейдіть до Налаштування системи-> Безпека та конфіденційність-> Тактика конфіденційності-> Вхід доступності та додайте додаток.

Якщо мені подобається, що вам сподобається ярлик, тоді в Автоматизаторі створіть новий сценарій Apple із запуском програми та виберіть свою програму. Потім поверніться до Системних налаштувань-> Клавіатура-> Ярлики вкладок-> Службовий запис та в кінці списку призначте ярлик для свого сценарію.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.