Використовуйте caps-lock для блокування клавіші fn або іншим способом блокування клавіші fn?


2

Я хочу досягти простого:

  • caps lockувімкнено = fnзаблоковано ( використовуйте функціональні клавіші ).
  • caps lockвимкнено = fnрозблокувати ( використовувати медіа-клавіші ).

Я знайшов пару тем навколо цієї проблеми, але їхні рішення не допомогли мені:

  • Перевірити / зняти прапорець із пункту "Використовувати клавіші fn як стандарт" на панелі налаштувань клавіатури - це те, чого я хочу досягти при натисканні / розтисненні caps lockклавіші.
  • Інші рішення, як-от програма Functionflip або перекомпоновані інструменти клавіатури, такі як Karabiner , не здаються пропозиціями для вирішення моєї проблеми.

Чи знаєте ви програми чи рішення, які можуть цього досягти?

Якщо ні:

  • Чи можу я призначити програму caps lockключу? Як?
  • Чи можна переключити параметр на панелі налаштувань клавіатури зі сценарієм?

Відповіді:


2

Щоб вирішити останню точку у вашому дописі, " Чи можна переключити параметр на панелі налаштувань клавіатури зі сценарієм? ", Ось код AppleScript, який буде перемикати стан клавіш "Використовувати всі стандартні клавіші F1, F2 тощо" як стандартні функціональні клавіші "на вкладці Клавіатура Налаштування системи клавіатури.

tell application "System Preferences"
    activate
    set the current pane to pane id "com.apple.preference.keyboard"
    reveal anchor "keyboardTab" of pane id "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"

Примітка: Цей код був протестований під ОС X 10.8.5. Може знадобитися коригування для пізніших версій ОС X.

Ви можете використовувати цей код у програмі AppleScript, яка може бути розміщена в док-станції або в робочому процесі служби автоматизації, якому може бути призначений ярлик клавіатури тощо. Якщо вам потрібна допомога, просто запитайте.


0

Насправді, якщо ви все одно використовуєте Карабінер Елементи , є простіший спосіб досягти цього:

Хоча це досить суміш "світів" (Karabiner / shell / GUI), його принадність полягає в тому, що вам не потрібні інші додатки, щоб отримати "ярлик" ;-)

{ "parameters": {
          "basic.to_delayed_action_delay_milliseconds": 1000},
"from": {
          "key_code": "return_or_enter",
          "modifiers": {
                "mandatory": ["control", "shift" ] }
        },
 "to": [{"shell_command": "open -g /System/Library/¬ 
                           PreferencePanes/Keyboard.prefPane/"
                              }],
 "to_delayed_action": {
       "to_if_invoked": [                     ___
            {"key_code": "tab"},                 |   These key-codes
            {"key_code": "tab"},                 |   can be replaced
            {"key_code": "tab"},                 |   by a single osa-
            {"key_code": "tab"},                 |   script, more ele-
            {"key_code": "tab"},                 |   gantly, listed
            {"key_code": "spacebar"},            |   below !         *)
            {"key_code": "q",                    |   
             "modifiers": ["command"]},       ___| < (Easier to handle)
            {"key_code": "escape"}] },
 "type": "basic"
}
 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

(* 'tell application \"System Events\" to tell process ¬
    \"System Preferences\"\n click checkbox 1 of tab group 1 ¬
    of window 1\n end tell\n quit application \"System Preferences\"'

Як бачите, клавіатура системних налаштувань відкривається командою shell, яка вимагає «часу очікування» для наступних клавішних кодів (мілісекунд: 1000).

Я не знайшов ярлик клавіш, щоб потрапити у прапорець, тому він переходить до 5 "вкладок", однієї "пробілу" (= клацання), закриває попередню панель і встановлює остаточне "втечу" (без цього моя система реагує на затримка).
(Я додав додаткову, фактично частину AppleScript 1-ї відповіді, але адаптовану: \nдля розривів рядків, \"для спеціальних ключів.)

Я встановив ярлик "Ctrl-Shift-Enter", ви можете використовувати s.th. else…
("caps_lock" у EventViewer надсилає або key_down, або key_up - двічі натисніть, щоб змінити стани!)

Цей код можна вставити у ваш karabiner.json вручну, або імпортувати як "складну модифікацію" потребує "title:> правила:> Опис:> manipulators:" -framework (переробити існуючий).

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