Xを実行するときは、.xmodmaprcを使用して特定のキーを次のように再マップします。
! Make it so that both Caps Lock and Escape do Escape
clear Lock
keysym Caps_Lock = Escape
! Remap the menu key as Compose
keysym Menu = Multi_key
コンソールで同じことをどのように達成できますか?
私の答えで与えられた部分的な解決策に加えて、私はコンソールがCTRL -.
を作成にマップすることを学びました。だから私はそれに慣れることができるかもしれません。メニューキーを作成として設定するのはそれほど簡単ではありません。nulが割り当てられたキーコードがたくさんあり、メニューの代替名の明白な候補がないためです。
また、作成バインディング自体は、Xで使用していたものよりもはるかに制限されており、私が頻繁に使用する特殊文字のほとんどはそこにないことにも気づきました。おそらく、X構文の構成バインディングをloadkeys
が読み取れるものに変換するユーティリティがありますか?
コンソールのキーマップを編集する必要があります。コンソールで、EscapeをCaps Lockに、CapsLockをEscapeにマップしました。仕組みは次のとおりです。
/usr/share/keymaps/i386/qwerty/us.map.gz
の下にあります。us-nocaps.map.gz
などの新しい名前でファイルのコピーを作成します。gunzip us-nocaps.map.gz && vim us-nocaps.map
keycode 58 = Caps_Lock
をkeycode 58 = Escape
に変更しました。gzip us-nocaps.map && loadkeys us-nocaps
。もう1つ、新しいキーマップが常に起動時にロードされるように、何らかの方法でディストリビューションを構成する必要があります。そうしないと、常にloadkeys
を使用してキーマップを手動でロードする必要があります。それをどのように行うかは、使用しているディストリビューションによって異なります。
新しいDebianディストリビューションの場合、これはもう必要ありません。
キーボードファイルには、キーボードのプロパティが記述されています。コンソールでキーボードを構成するために、
setupcon(1)
によって読み取られます。 Debianシステムでは、デフォルトのキーボードレイアウトは/etc/default/keyboard
で記述されており、Xとコンソールの間で共有されます。 (マンキーボード)
/etc/default/keyboard
でXKBOPTIONS="caps:escape"
を設定し、次の手順を実行します。
~$ Sudo setupcon
使用可能なすべてのキーボードモデル、レイアウト、バリアント、およびオプションの説明は、
/usr/share/X11/xkb/rules/xorg.lst
で入手できます。 "(マンキーボード)
Cedricの助けを借りて、Ubuntuが$ man loadkeys
が想定しているキーマップ(/usr/share/keymaps
)をインストールしていないことを発見しました。これはまったく新しいインストールなので、インストール時に選択したもの以外のキーマップを取得するために、パッケージをインストールする必要があるかもしれません。
その角度を追求する代わりに、そしてソリューションをもう少し堅牢で便利にするために、私はこれを行っています:
$ Sudo dumpkeys | sed 's/CtrlL_Lock/Escape/' | Sudo loadkeys
CedricのシステムがCapsLockにCaps_Lock
を使用し、私のシステムがCtrlL_Lock
を使用する理由については少し混乱していますが、それでも機能しています。