Linuxコンソールでcaps-lockを再マッピングしてエスケープし、メニューを作成して作成する


9

XIを実行するときは、.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- .をComposeにマップすることを学びました。だから、それに慣れることができるかもしれません。メニューキーをComposeとして設定するのは簡単ではありません。nulが割り当てられたキーコードが大量にあり、Menuの別名の明確な候補がないためです。

また、作成バインディング自体は、Xで使用されているものよりもはるかに制限されており、頻繁に使用する特殊文字のほとんどはそこにはないことにも気付きました。おそらく、X構文の構成バインディングをloadkeys読み取り可能なものに変換するユーティリティがあるでしょうか。


1
伝統的に:でloadkeys。最近はLinuxコンソールでX設定を読み取れると思いますが、これがどのように機能するのかはわかりません。
Gilles「SO-邪悪なことをやめ

回答:


8

コンソールのキーマップを編集する必要があります。コンソールで、EscapeをCaps Lockに、Caps LockをEscapeにマッピングしました。これがどのように機能するかです。

  1. まず、キーマップを見つける必要があります。標準のUSレイアウトを使用します。私のシステムでは、にあります/usr/share/keymaps/i386/qwerty/us.map.gz
  2. 新しい名前でファイルのコピーを作成します(例:)us-nocaps.map.gz
  3. ファイルを解凍し、テキストエディターで開きます。 gunzip us-nocaps.map.gz && vim us-nocaps.map
  4. ファイル内のマッピングを好みkeycode 58 = Caps_Lockに変更しkeycode 58 = Escapeます。たとえば、私が変更したものをに変更します。
  5. ファイルをgzipしてロードしますgzip us-nocaps.map && loadkeys us-nocaps

もう1つ:おそらく何らかの方法でディストリビューションを設定して、新しいキーマップが常にブート時にロードされるようにする必要があります。そうでない場合は、キーマップをloadkeys常に手動でロードする必要があります。その方法は、使用しているディストリビューションによって異なります。


1
gunzipのステップは、ここでは実際には必要ではない-のほとんどのバージョンではvim、あなただけのことができるはずvim us-nocaps.map.gz
glittershark

3

新しいDebianディストリビューションの場合、これ以上は必要ありません。

キーボードファイルには、キーボードのプロパティが記述されています。setupcon(1)コンソールでキーボードを設定するために読み込まれます。Debianシステムでは、デフォルトのキーボードレイアウトはで説明されて/etc/default/keyboardおり、Xとコンソールの間で共有されます。(男のキーボード)

/etc/default/keyboardセットXKBOPTIONS="caps:escape"後、および実行します。

~$ sudo setupcon

使用可能なすべてのキーボードモデル、レイアウト、バリアント、およびオプションの説明は、/usr/share/X11/xkb/rules/xorg.lst「」にあります(manキーボード)。


1

Cedricの助けを借りて、Ubuntu $ man loadkeysが本来あるはずの場所にキーマップをインストールしていないことを発見しました(/usr/share/keymaps)。これはまったく新しいインストールなので、インストール中に選択したキーマップ以外のキーマップを取得するために、パッケージをインストールする必要があるだけかもしれません。

その角度を追求する代わりに、そしてソリューションをもう少し堅牢で便利にするために、私はこれを行っています:

    $ sudo dumpkeys | sed 's/CtrlL_Lock/Escape/' | sudo loadkeys

CedricのシステムがCaps_LockCaps Lockに使用する理由と私がに使用する理由について少し混乱していますがCtrlL_Lock、それは関係なく機能しています。


興味深いことに、これらのキーマップを使用したディストリビューション間の違いがどこにあるかは知りませんでした。個人的に私はGentooを使用していますが、キーマップはsys-apps / kbd-1.15パッケージのものです。
セドリック

2
Ubuntu 10.04以降、キーマップはconsole-dataパッケージに含まれています。デフォルトではインストールされません。を/usr/share/keymaps実行すると、どのパッケージにファイルがインストールされるかを確認できますapt-file search /usr/share/keymaps
Gilles 'SO-悪をやめる'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.