オープンボックスに「Fn」+「Control」キーのキーバインディングを追加する

オープンボックスに「Fn」+「Control」キーのキーバインディングを追加する

Fn+をキーの組み合わせとして使用する必要がありますが、CTRLopenboxでは機能しません(XFCE / KDE4`では機能します)。

<keybind key="Fn-C">
  <action name="ToggleMaximize">
      </action>
</keybind>

ジョブ名は正しいです。たとえば、他のキーの組み合わせで使用できますW-3

では、どう思いますか?

ベストアンサー1

さまざまなウィンドウマネージャはさまざまなキーマップを使用でき、キーマップはFnキーストロークの認識方法を定義します。これがXFCEで動作することが必ずしもOpenboxでは動作しない可能性がある理由です。

X(およびOpenbox)がキーを解釈する方法を確認するにはFnこのガイド

結果に応じて、適切なキー記号をrc.xml代わりに使用できますFn
Fnたとえば、Thinkpadで認識されている場合ですXF86WakeUp。シンボルが割り当てられていない場合は、次のようにxmodmapを使用して手動でシンボルを割り当てることができます。このガイド次に、対応する記号を使用しますrc.xml

さらなる調査によると、Fnは一部のノートブック(IBM / Lenovo Thinkpadsなど)の特殊キーであることがわかりました。その理由は、KeypressイベントKeyrelease(またはMicrosoftKeydownというKeyup用語)がキーを離したときにのみ同時に生成されるためです。押しながらキーを押すとFn記録されません*。そしてシフ、システムでもこれが起こるかどうかを簡単に確認できます。

Fnこれは、修飾キーとして使用できないことを意味します(Altまたは他のCtrlような他のキーと組み合わせてShift)。ただし、個別にショートカットとして指定することはできます。結合するオープンボックスキーホルダー、これは修飾子として使用するのと同じくらい良いです。結合されたキーを押す前に手を離してください。

*なければならない一部FnFnLenovoの独自のWindowsツールは他のキーを押すことに反応するため、少なくともこれがThinkpadにキーを登録する方法です。しかし、これは非常に低いレベルで起こるようです。 WindowsホストのVMWareゲストにいるときにプラスFnキーを押すと、ゲストOSではなくWindowsホストでそのツールが開きます。 LinuxでThinkpadなどのツールの実装を研究し、それを処理する方法を確認してくださいFn

ここFn+Fxキーの組み合わせがACPIイベントを生成する方法(Thinkpadツールがどのように反応するか)に関する詳細なThinkpad関連情報を見つけることができます。ただし、これらのイベントは特定のキーの組み合わせに対してのみ生成され、他のキーの組み合わせに対しては生成されないようですFx

このページでは、ACPI イベントにキーイベントをトリガーさせる方法も説明します。しかし、keydownとkeyupが別々のイベントを生成しないと、これ以上役に立ちませんFn(Thinkpadでは発生しないと思います)。

おすすめ記事