AppleSymbolicHotKeys plist dict 中的参数值代表什么?

问题描述 投票:0回答:3

tl;博士

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

详情...

AppleSymbolicHotKeys 结构

OS X 符号热键 plist 文件位于

~/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

这是热键将执行的操作的 ID。网上有相当完整的列表,请进行一些谷歌搜索,因为我没有足够的积分来发布链接或其他什么。

enabled:bool

热键是否启用。

type:string

似乎总是“标准”。

param_1:int

这是我无法得到的。它似乎不一定与参数2和3相关,尽管当其他参数改变时它经常改变。例如...

我可以在

Restore Defaults
视图中点击
System Preferences -> Keyboard -> Shortcuts -> Mission Control
,它将把“切换到桌面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
中很常见,并且在我的本地计算机上的操作 160、163 和 175 中显示在
param_2
中。

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"

所以...

任何见解将不胜感激,并希望这可以作为我为其他接近该主题的人挖掘的信息的参考。

macos plist hotkeys
3个回答
7
投票

param_1
是按键上字母的ascii 代码,如果没有ascii 代码则为-1 (65535)。 请注意,字母均为小写,因此 D 为 100(小写 d)。

有时,通常具有 ascii 代码的密钥会使用 65535。 当使用控制键修饰符时,例如使用特定空格的热键时,似乎会发生这种情况。

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

http://hintsforums.macworld.com/showthread.php?t=114785


6
投票

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

0x000000 => "No modifier",
0x020000 => "Shift",
0x040000 => "Control",
0x080000 => "Option",
0x100000 => "Command",

其他的只是上述值的按位或,例如:

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

0
投票

除了已经说过的内容之外,我还编译了所有 256 个可能的修饰符按位操作结果的 JSON 清单 - 包括功能键:

https://gist.github.com/stephancasas/74c4621e2492fb875f0f42778d432973

© www.soinside.com 2019 - 2024. All rights reserved.