o que os valores de parâmetro no ditado plist AppleSymbolicHotKeys representam?

tl; dr

o que faz o primeiroparameters valor emcom.apple.symbolichotkeys:AppleSymbolicHotKeys representar?

detalhes ...

a estrutura AppleSymbolicHotKeys

as teclas de atalho simbólicas do OS X

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

armazena teclas de atalho em um ditado chamado 'AppleSymbolicHotKeys' com entradas parecidas com

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

exemplo:

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

dica profissional: você pode dar uma olhada com

/usr/libexec/PlistBuddy -c "Print :AppleSymbolicHotKeys" ~/Library/Preferences/com.apple.symbolichotkeys.plist
os valoresaction:int

esse é o ID da ação que a tecla de atalho executará. existem listas razoavelmente completas na rede, pesquise no google porque não tenho pontos suficientes para postar links ou o que for.

enabled:bool

se a tecla de atalho está ativada.

type:string

sempre parece ser 'padrão'.

param_1:int

este é o que eu não consigo entender. não parece necessariamente conectado aos parâmetros 2 e 3, embora mude frequentemente quando os outros parâmetros são alterados. por exemplo...

eu posso clicarRestore Defaults noSystem Preferences -> Keyboard -> Shortcuts -> Mission Control modo de exibição, e definirá "Alternar para a área de trabalho 1" como "ctrl + 1". lendo o valor dessa ação (número 118), vejo queparam_1 está configurado para65535. se eu definir manualmente a combinação de teclas como "ctrl + 1" na interface do usuário, eu receboparam_1 definido como49. os valores deparam_2 eparam_3 continue o mesmo por toda parte.

param_2:int

isso parece ser códigos-chave de

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

para que a tecla não modificadora seja pressionada, exceto pelo valor65535, o que é muito comum emparam_1e aparece emparam_2 na minha máquina local para as ações 160, 163 e 175.

param_3:int

parece indicar que a tecla modificadora está pressionada, conforme

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",
}

onde você notará que os números que representam vários modificadores são a soma dos modificadores que eles representam, por exemplo,

"Shift + Control" = 393216 = 131072 + 262144 = "Shift" + "Control"
tão...

qualquer insight seria muito apreciado e espero que isso possa servir de referência para as informações que descobri sobre qualquer outra pessoa que se aproxime do assunto.

questionAnswers(2)

yourAnswerToTheQuestion