システム全体のカスタムキーボードショートカット/マクロを強制する方法は?

システム全体のカスタムキーボードショートカット/マクロを強制する方法は?

テキストエディタで使用するのと同じカスタムキーバインディングとショートカットをデスクトップ環境全体に適用できるようにしたいです。

基本的に、特定のアプリケーションウィンドウ内だけでなく、システム全体にキーボードを再マップしたいと思います。つまり、再マップするときは、デスクトップ環境に関する限り、alt + j = Down「下」キーを押すのと同じように押すことを望みます。alt + j

私が使用するショートカットは、常に手をホーム行に近い自然な位置に保つように最適化されています。

# Note how
# system-wide remapping of *single* keys is possible with xmodmap.
Caps Lock           --> Escape
Escape              --> Caps Lock    # Switch caps lock with
                                     # the more useful escape key.
                                     # As far as *all* applications 
                                     # are concerned, pressing caps lock 
                                     # is actually pressing Escape. 

# However, I've not found a good way do the same for multiple keys:
alt + space         --> Right Arrow
alt + Escape        --> Enter
shift + alt + h     --> Backspace
alt + x             --> Delete
shift + alt + l     --> Delete

ctrl + alt          --> Alt           # Default alt functionalities 
                                      # remapped to ctrl + alt

これは私のテキストエディタの正確さとスピードに驚くべき効果をもたらしました。

ほぼ成功した最初の解決策を試してください。

xbindkeysを使用してxvkbd(x仮想キーボード)を呼び出します。私の例は次のとおりです.xbindkeysrc

# h-j-k-l Movement
###################
    "xvkbd -xsendevent -text "\[Down]""
        alt + j

    "xvkbd -xsendevent -text "\[Up]""
        alt + k

    "xvkbd -xsendevent -text "\[Left]""
        alt + h

    "xvkbd -xsendevent -text "\[Right]""
        alt + l

質問:

このaltキーは通常、アプリケーションメニューを呼び出すための主キーです(たとえば、alt + Fほとんどのアプリケーションで* F * ileドロップダウンメニューを呼び出す)。

また、これは一部のアプリでは機能しているようですが、他のアプリではこれを無視しているようです。

xbindkeys は、実際にキーボードを再マッピングせずに、単に xvkbd にシグナルを送信するように指示します。これは時々アクティブなアプリケーションと競合することがあります(実際にはキーボードを再マッピングするxmodmapとは異なり)。

ターゲット

簡単に移植可能な方法(rcファイルまたは同様の方法)で実装されたマイキーボードのシステム全体の再マッピング。

altctrlアプリケーションでよく使用され、modキーは私のWindows管理者(Xmonad)が占めるので、最良の選択キーです。

私の設定

Xmonadデスクトップ環境でUbuntu 12.10を実行しています。


これは可能ですか?私はまだOSレベルの内容と入力を処理する方法をよく理解していません。

答え1

私が見る唯一の機会は整理することですxkbこれに応じてキーをマップします。ゲームなどの一部のアプリケーションは実際のキー押下を直接受け取ることができますが、通常、他のすべてのアプリケーションはxkbマッピングを使用します。

2つの設定ツールがあります:setxkbmapxmodmap。理論的にはxmodmapは廃止され、setxkbmapで置き換える必要がありますが、時々古いxmodmapが役に立つことがあります。

xkbが提供する機能のみを使用できますが、xmodmapも制限された修飾子セットを提供します。各キーには4つのキーシンボルを指定できます。マニュアルページを引用すると、次のようになります。

The first keysym is used when
no modifier key is pressed in conjunction with  this  key,  the
second  with  Shift, the third when the Mode_switch key is used
with this key and the fourth  when  both  the  Mode_switch  and
Shift keys are used.

おそらく、システムの詳細についてもっと読むことをお勧めします。私は読書をお勧めしますここまたはここ何が可能かを調べてください。

関連情報