是否可以为应用程序包标识符创建一个 Karabiner 过滤器
Is it possible to create a Karabiner filter for Application Bundle Identifiers
我查看了 Karabiner 的示例代码,您可以在其中创建适用于 window 名称的过滤器,但我想在创建新电子邮件时应用该过滤器。由于 window 名称更改,我想改为在应用程序包标识符上进行过滤。有人有XML过滤应用程序包标识符的例子吗?
developer's manual 提供了确定应用程序包标识符的步骤以及使用示例。我在下面包含了我自己的一个。
您必须首先确定您感兴趣的应用程序是否由 Karabiner 预定义。检查 appdef.xml 并在该页面中搜索您的应用标识符。
如果在现有定义中找不到它,您将需要为稍后将在 <item>
块中使用的应用程序定义一个名称。 (这些都不是很好的例子,因为它们都在 appdef.xml 中预定义,分别用于 WORD
和 GOOGLE_CHROME
。)
<?xml version="1.0"?>
<root>
<appdef>
<appname>MWORD</appname>
<equal>com.microsoft.Word</equal>
</appdef>
<appdef>
<appname>CHROME</appname>
<equal>com.google.Chrome</equal>
</appdef>
不使用 <equal>
,顾名思义,它只匹配精确的字符串(包括大小写),您可以使用 <prefix>
或 <suffix>
来匹配字符串的开头或结尾分别是应用程序包标识字符串。
完成此操作后,在创建项目时,您可以选择几个过滤选项。首先是仅限于那个特定的应用程序,我相信这是你的目标。
<item>
<identifier>private.fixscrollwheel</identifier>
<name>Always Rotate Scroll Wheel</name>
<only>CHROME</only>
<autogen>
__FlipScrollWheel__
Option::FLIPSCROLLWHEEL_ROTATE,
</autogen>
</item>
注意 <only>
标签。这将上述项目限制为仅适用于捆绑包标识符为 com.google.Chrome
的应用程序,因为这就是 CHROME
对应于顶部 <appdef>
标记的内容。
您只需在 <only>
标签中包含更多 appname
即可定义要匹配的多个应用程序,例如:
<only>CHROME, MWORD, MAIL</only>
您也可以反过来,即所有 除了 列出的应用程序,将 <only>
更改为 <not>
。
我查看了 Karabiner 的示例代码,您可以在其中创建适用于 window 名称的过滤器,但我想在创建新电子邮件时应用该过滤器。由于 window 名称更改,我想改为在应用程序包标识符上进行过滤。有人有XML过滤应用程序包标识符的例子吗?
developer's manual 提供了确定应用程序包标识符的步骤以及使用示例。我在下面包含了我自己的一个。
您必须首先确定您感兴趣的应用程序是否由 Karabiner 预定义。检查 appdef.xml 并在该页面中搜索您的应用标识符。
如果在现有定义中找不到它,您将需要为稍后将在 <item>
块中使用的应用程序定义一个名称。 (这些都不是很好的例子,因为它们都在 appdef.xml 中预定义,分别用于 WORD
和 GOOGLE_CHROME
。)
<?xml version="1.0"?>
<root>
<appdef>
<appname>MWORD</appname>
<equal>com.microsoft.Word</equal>
</appdef>
<appdef>
<appname>CHROME</appname>
<equal>com.google.Chrome</equal>
</appdef>
不使用 <equal>
,顾名思义,它只匹配精确的字符串(包括大小写),您可以使用 <prefix>
或 <suffix>
来匹配字符串的开头或结尾分别是应用程序包标识字符串。
完成此操作后,在创建项目时,您可以选择几个过滤选项。首先是仅限于那个特定的应用程序,我相信这是你的目标。
<item>
<identifier>private.fixscrollwheel</identifier>
<name>Always Rotate Scroll Wheel</name>
<only>CHROME</only>
<autogen>
__FlipScrollWheel__
Option::FLIPSCROLLWHEEL_ROTATE,
</autogen>
</item>
注意 <only>
标签。这将上述项目限制为仅适用于捆绑包标识符为 com.google.Chrome
的应用程序,因为这就是 CHROME
对应于顶部 <appdef>
标记的内容。
您只需在 <only>
标签中包含更多 appname
即可定义要匹配的多个应用程序,例如:
<only>CHROME, MWORD, MAIL</only>
您也可以反过来,即所有 除了 列出的应用程序,将 <only>
更改为 <not>
。