Caps LockとEscキーをプログラムで交換する方法は?


18

私は重いVimユーザーであり、クリーンなUbuntuインストールで作業を開始するときに最初に行うことの1つは、Caps LockキーとEscキーを交換してキーボード上の手の動きを減らすことです。

これまではキーボード設定ダイアログでそれを行ってきましたが、現在、Ubuntuを好きなように設定する一連のスクリプトを書いていますが、この設定項目を変更するスクリプト可能なまたはプログラム可能な方法を見つけることができませんでした。

私はgnome自体以外のレベルでキーを交換するオプションを探していませんので、私が探しているのは、この変更をスクリプト化し、使用するキーボード構成に表示する方法を探しています将来的に手動で元に戻します。


良いアイデア!Vimでの作業中にEscで手を動かすことについていつも不満を言ってきましたが、今ではこれが解決策です!thanx仲間;-)
サザリー

1
ただし、それらを交換することに慣れると、他の誰かのキーボードで作業しなければならないときに厄介になります:)
Jacobo de Vera

2
別のオプションは、Escの代わりにCtrl-Cです。すべてのキーボードで(作品。
エリック・ウィルソン

@FarmBoy、すごい!私はそれを知りませんでした!
ジャコボデベラ

回答:


22

これを行うには、GUIからKeyboard Preferencesコントロールパネル(の下System -> Preferences)を開き、Layoutタブを選択します。Options...ボタンをクリックして、レイアウトオプションダイアログを開きます。展開Caps Lock key behaviourセクションを選択しSwap ESC and Caps Lock

この種のスクリプトを作成する方法はいくつかあります。

Xkb経由で直接

次の方法で直接変更できます。

setxkbmap -option caps:swapescape

以下を使用して、現在のレイアウトオプションをすべて無効にできます(これにより、Caps Lockがデフォルトの動作に戻ります)。

setxkbmap -option ''

GConf経由

キーボードプリファレンスコントロールパネルは、を介してその構成を保存します。gconfレイアウトは実際に適用されgnome-settings-daemonます。そのため、gnome-settings-daemongconfを自分で更新してレイアウトを調整することができます。

この場合の関連設定はであるように見えます/desktop/gnome/peripherals/keyboard/kbd/options。したがって、次のオプションを設定できます。

gconftool-2 --set /desktop/gnome/peripherals/keyboard/kbd/options \
    --type list --list-type string \
    '[caps<tab>caps:swapescape]'

上記で<tab>は、スペースではなくリテラルのタブ文字にする必要があります。gconfキーを空のリストに設定することにより、動作を再び無効にできます。


gconfオプションはまさに私が探していたものですが、あなたの設定はキャップロックをエスケープキーに、エスケープキーをタブキーに変えていました。設定を手動で再度変更し、gconf-editorの値を確認しました[caps<tab>caps:swapescape]。実際はそうでした。すべてが機能するようになりました。あなたの答えを受け入れ、今後の参考のために値を変更するように編集することをお勧めします。ありがとう。
ジャコボデヴェラ

@Jacobo将来、あなたは自分で編集を提案するかもしれません-答えの下にある編集ボタンを押すだけです。変更はすぐに誰かに承認されます。編集を行いました(正しいかどうかを確認してください)。とにかく、@ Jamesのいい答えです!+1
ステファノパラッツォ

1
@Stefano、ありがとう、編集オプションに気付いていなかった。
ジャコボデベラ

ログイン画面でGDMでこれを機能させる方法はありますか?
リンデ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.