1

ウィンドウ名に適用するフィルターを作成できる Karabiner のサンプル コードを見てきましたが、新しいメールを作成するときにフィルターを適用したいと思います。ウィンドウ名が変更されたため、代わりに Application Bundle Identifier でフィルタリングしたいと思います。Application Bundle Identifier でフィルタリングする XML の例はありますか?

4

1 に答える 1

1

デベロッパー マニュアルには、アプリ バンドル ID を特定する手順と使用例が記載されています。私は自分のものを以下に含めました。

まず、関心のあるアプリがカラビナによって事前定義されているかどうかを判断する必要があります。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>タグに注意してください。これにより、バンドル ID が であるアプリでのみ機能するように上記の項目が制限さcom.google.ChromeCHROMEます<appdef>

appname次のように、<only>タグにを追加するだけで、一致する複数のアプリケーションを定義できます。

<only>CHROME, MWORD, MAIL</only>

に変更することにより、逆のこと、つまり、リストされているものを除くすべてのアプリケーションを実行することもできます。<only><not>

于 2016-09-09T08:20:04.973 に答える