что представляют собой значения параметров в plist dict AppleSymbolicHotKeys?

ТЛ; др

что делает первыйparameters значение вcom.apple.symbolichotkeys:AppleSymbolicHotKeys представлять?

подробности...

структура AppleSymbolicHotKeys

OSX символьный файл списка горячих клавиш в

~/Library/Preferences/com.apple.symbolichotkeys.plist

хранит горячие клавиши в формате, называемом «AppleSymbolicHotKeys» с записями, которые выглядят как

<action:int> = Dict {
    enabled = <enabled:bool>
    value = Dict {
        type = <type:string>
        parameters = Array {
            <param_1:int>
            <param_2:int>
            <param_3:int>
        }
    }
}

пример:

10 = Dict {
    enabled = true
    value = Dict {
        type = standard
        parameters = Array {
            56
            28
            1572864
        }
    }
}

профессиональный совет: Вы можете посмотреть с

/usr/libexec/PlistBuddy -c "Print :AppleSymbolicHotKeys" ~/Library/Preferences/com.apple.symbolichotkeys.plist
ценностиaction:int

это идентификатор действия, которое предпримет горячая клавиша. Есть достаточно полные списки по сети, попробуйте поискать в Google, потому что у меня недостаточно очков для публикации ссылок или чего-то еще.

enabled:bool

включена ли горячая клавиша

type:string

всегда кажется «стандартным».

param_1:int

это тот, который я не могу получить. он не обязательно связан с параграфами 2 и 3, хотя часто меняется при изменении других параграфов. например...

я могу нажатьRestore Defaults вSystem Preferences -> Keyboard -> Shortcuts -> Mission Control вид, и он установит «Переключиться на рабочий стол 1» на «Ctrl + 1». читая значение для этого действия (номер 118), я вижу, чтоparam_1 установлен в65535, если я вручную установил комбинацию клавиш на "Ctrl + 1" в пользовательском интерфейсе, я получуparam_1 установлен в49, значенияparam_2 а такжеparam_3 оставайся таким же повсюду.

param_2:int

кажется, это ключевые коды от

/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h

для клавиши без модификатора, которая должна быть нажата, кроме значения65535что очень распространено вparam_1и появляется вparam_2 на моей локальной машине для действий 160, 163 и 175.

param_3:int

кажется, указывает на клавишу модификатора, которая должна быть нажата, как в соответствии с

MODS = {
  0=>"No modifier",
  131072=>"Shift",
  262144=>"Control",
  524288=>"Option",
  1048576=>"Command",
  393216=>"Shift + Control",
  655360=>"Shift + Option",
  1179648=>"Shift + Command",
  786432=>"Control + Option",
  1310720=>"Control + Command",
  1572864=>"Option + Command",
  917504=>"Shift + Control + Option",
  1441792=>"Shift + Control + Command",
  1703936=>"Shift + Option + Command",
  1835008=>"Control + Option + Command",
  1966080=>"Shift + Control + Option + Command",
}

где вы заметите, что числа, представляющие несколько модификаторов, являются суммой модификаторов, которые они представляют, например,

"Shift + Control" = 393216 = 131072 + 262144 = "Shift" + "Control"
так...

Любое понимание будет высоко ценится, и надеюсь, что это может послужить справочным материалом для информации, которую я выкопал для любого другого, подходящего к теме.

Ответы на вопрос(2)

Ваш ответ на вопрос