web-dev-qa-db-ja.com

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

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

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

アクション名は完全に正しいです、それは他のキーの組み合わせで動作します、例えばW-3

それで、何かアイデアはありますか?

5
daisy

異なるウィンドウマネージャーは異なるキーボードマッピングを使用でき、キーマッピングは Fn キーが認識されました。これが、XFCEで機能するものがOpenboxで必ずしも機能するとは限らない理由です。

X(およびOpenbox)があなたをどのように解釈するかを確認するには Fn キー、従う このガイド

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

さらに調べてみると、Fnは、KeypressイベントとKeyreleaseイベント(またはKeydownKeyup(Microsoftの用語では)は、キーがリリースされたときに同時に生成されます。さらにキーを押しながら Fn 落ち込んでいるだけでは登録されません*。 xev を使用すると、これがシステムにも当てはまるかどうかを簡単に確認できます。

この意味は Fn 修飾キーとして使用できません(他のキーと組み合わせて Alt、 Ctrl または Shift)。ただし、それ自体をショートカットとして割り当てることができます。 Openboxのキーチェーン と組み合わせると、修飾子として使用するのとほぼ同じです。組み合わせるキーを押す前に放すだけです。

*と組み合わせてキーを登録するsome方法が必要です Fn ただし、少なくともThinkpadでは、Lenovo独自​​のWindowsツールが反応します。 Fn プラス他のキー。しかし、これは非常に低いレベルで発生するようです。 WindowsホストのVMWareゲストにいるときに、 Fn さらに、キーを押すと、ゲストOSではなく、Windowsホストで適切なツールが開きます。 Linuxでの同様のThinkpadツールの実装を調べて、それらがどのように対処するかを確認するのは興味深いことです。 Fn

ここ Thinkpad固有の詳細情報 Fn+Fx キーコンボはACPIイベントを生成します。これはThinkpadツールが反応するものです。ただし、これらのイベントは、との特定の組み合わせに対してのみ生成されると思います。 Fx キーであり、他のキーの組み合わせではありません。

このページでは、ACPIイベントでキーイベントをトリガーする方法についても説明します。ただし、 Fn keydownとkeyupは、独自の個別のイベントを生成しません(Thinkpadでは発生しないと思います)。

3
Endre Both

私がfluxbox/openboxなどの最小限のウィンドウマネージャを残してから久しぶりですが、ここに覚えているいくつかのヒントがあります:

  1. xev(1)を使用すると、特定のキーストロークの組み合わせがどのキーコードで発生するかを実際に確認できます

  2. Use xmodmap(1)を使用して、特定のキーコードをXイベントにバインドできます。

Xevとxmodmapのマンページを見てください;)

0
znpy