web-dev-qa-db-ja.com

単独で押されて離された場合にCtrlをエスケープに再マップする方法

コントロールを再マップしたいので:

  1. 他のキーなしで押して離すと、 Esc
  2. 別のキーと一緒に押したままにすると、次のように機能します Ctrl (この場合、動作に変更はありません)。

特定のキーまたはデバイスをどのように再マップしますか? を知っているので、xmodmapを使用して行うことができると思います。しかし、その答えは、修飾キーをマップする方法を説明していません。 xmodmapのマンページの例と文法セクションを調べましたが、それらは説明していません。 Caps LockをControl and Escapeに再マッピングする(通常の方法ではない) の答えは、 Caps Lock、これはロックキーですが、これがmodキーであるControlで実行できることを願っています。 xmodmapとは異なるソリューションも受け入れられます。 (XmonadをUbuntu 12.04で実行しているので、おそらくxmonad.hsでこれを設定する方法がありますか?)

編集:私が得ることができる最も近いものは:

xmodmap -e 'remove Control = Control_L'
xmodmap -e 'keysym Control_L = Escape'
xmodmap -e 'add Control = Escape'

これを押すと、エスケープを取得します Left Ctrl キーだけで、しかし、取得するには、言う、 Ctrl+A 私は押さなければなりません Left Ctrl キーを2回: Ctrl、 Ctrl+A (ただではなく Ctrl+A)-なぜ2回押す必要があるのか​​わかりません。

5
psvm

Caps LockをControl and Escapeに再マッピングする(通常の方法ではない) への最新の返信は、このユーティリティがあなたが望むことを行うと言っています: https://github.com/alols/xcape =

3
ashleyh

これはxmodmapで実行できますが、setxkbmapで設定を行った場合、後者のプログラムがxmodmapの設定をオーバーライドしてクリアすることに注意してください。

ただし、xmodmapで必要なことを正確に行うには、次のように入力できます。

xmodmap -e "keysym Control_L control = Escape Control_L" 

ここで、xmodmap -pmを見ると、コントロール修飾子にエスケープが追加されています。これは、左のコントロールが押されると、代わりにエスケープが結果になることを意味しますが、別のキーでコントロールが押されると( Ctrl+C)、それでも以前と同じ結果が得られます。

端末にman xmodmapと入力してテストし、マンページを見ながらctrlを押すと「esc」がエコーされますが、 Ctrl+Z ページが中断されます。

xmodmapを使用して実験をリセットする場合は、ログアウトして再度ログインし、上記のxmodmapコマンドをスタートアップ項目として設定する場合は、こちらの回答を参照してください。

1
user76204