Macos AppleSymbolicHotKeys plist dict中的参数值代表什么? tl;博士

Macos AppleSymbolicHotKeys plist dict中的参数值代表什么? tl;博士,macos,plist,hotkeys,Macos,Plist,Hotkeys,com.apple.symbolichotkeys:AppleSymbolicHotKeys中的第一个参数值代表什么 细节 AppleSymbolicHotKeys结构 OS X符号热键plist文件位于 ~/Library/Preferences/com.apple.symbolichotkeys.plist 将热键存储在名为“AppleSymbolicHotKeys”的dict中,其条目如下所示 <action:int> = Dict { enabled = <e

com.apple.symbolichotkeys:AppleSymbolicHotKeys
中的第一个
参数值代表什么

细节

AppleSymbolicHotKeys结构 OS X符号热键plist文件位于

~/Library/Preferences/com.apple.symbolichotkeys.plist
将热键存储在名为“AppleSymbolicHotKeys”的dict中,其条目如下所示

<action:int> = Dict {
    enabled = <enabled:bool>
    value = Dict {
        type = <type:string>
        parameters = Array {
            <param_1:int>
            <param_2:int>
            <param_3:int>
        }
    }
}
专业提示:您可以用

/usr/libexec/PlistBuddy -c "Print :AppleSymbolicHotKeys" ~/Library/Preferences/com.apple.symbolichotkeys.plist
价值观
操作:int
这是热键将执行的操作的id。网上有相当完整的列表,做一些谷歌搜索,因为我没有足够的点数来发布链接或其他什么

已启用:bool
是否启用热键

类型:字符串
似乎总是“标准”

param_1:int
这是一个我无法获取的参数。它似乎不一定与参数2和3相连,尽管它经常在其他参数更改时更改。例如

我可以点击
系统首选项->键盘->快捷键->任务控制
视图中的
恢复默认值
,它会将“切换到桌面1”设置为“ctrl+1”。读取该操作的值(编号118),我看到
param_1
设置为
65535
。如果我在UI中将组合键手动设置为“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

参数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"
所以
如果您有任何见解,我们将不胜感激,并希望这可以作为我向其他接近该主题的人提供的信息的参考。

这是钥匙上字母的ascii码,如果没有ascii码,则为-1(65535)。注意,字母是小写的,所以D是100(小写的D)

有时,通常使用ascii码的键使用65535。当使用“控制键”修改器时,例如使用特定空间的热键时,会出现这种情况

这里有一个很好的2011年的键和值列表,以及其他一些很好的细节:


以十六进制形式查看时,nrser答案中的数值更有意义:

0x000000 => "No modifier",
0x020000 => "Shift",
0x040000 => "Control",
0x080000 => "Option",
0x100000 => "Command",
其他值只是上述值的按位OR,例如:

0x060000 => "Shift + Control",
0x180000 => "Command + Option",

提示链接现在已断开,但可以通过archive.org访问:您能否提供指向此操作列表的链接。我无法在“键盘快捷键首选项”窗格中解析哪个操作id对应哪个操作:(它如何连接到函数CopySymbolicChotKeys())?对于修饰符,请在中搜索
NX\u SHIFTMASK
。对于操作(“参数2”),我认为可能会有所帮助。键代码似乎来自。
0x060000 => "Shift + Control",
0x180000 => "Command + Option",