web-dev-qa-db-ja.com

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

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

これまではキーボード設定ダイアログを使用してそれを行ってきましたが、現在、Ubuntuを好きなように設定する一連のスクリプトを作成しており、scriptableまたはプログラムを見つけることができませんでしたこの構成アイテムを変更する方法。

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

18
Jacobo de Vera

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

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

Xkb経由で直接

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

setxkbmap -option caps:swapescape

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

setxkbmap -option ''

GConf経由

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

この場合、関連する設定は/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キーを空のリストに設定することにより、動作を再び無効にできます。

22