web-dev-qa-db-ja.com

Linuxでコンソールのキーマップを変更するには?

交換したい Esc そして CapsLock コンソールでは(Xではなく、xevを使用)、どうすればよいですか?

私のOSはUbuntuです。

36
Vayn

仮想コンソール でキーボードレイアウトを操作するためのツールは、loadkeysdumpkeysおよびshowkeyです。彼らのマンページを読み、彼らの複雑さについて自分に知らせてください。

これらのツールは仮想コンソールでのみ機能し、gnomeなどのグラフィカル環境のターミナルエミュレータでは機能しないことに注意してください。違いについて学ぶには、この質問と回答をお読みください: https://askubuntu.com/questions/14284/why-is-a-virtual-terminal-virtual-and-what-why-where-is-the -real-terminal

ここにあなたがしたいことをするための短いガイドがあります:

  1. 現在のキーボードレイアウトを保存します。

    $ dumpkeys > backup.kmap
    

    何か問題が発生した場合は、次のコマンドを使用してキーマップを復元できる場合があります。

    $ Sudo loadkeys backup.kmap
    

    キーボードがめちゃくちゃになっているためにこれを行うことさえできない場合、古代のカーネルマジックを含まない唯一のオプションは再起動することです。

  2. キーに割り当てられているキーコードを確認します。

    $ showkey
    

    ESCキーとCAPSLOCKキーを押します。キーコードが画面に表示されます。キーコードに注意してください。私のシステムでは、ESCのキーコードは1で、CAPSLOCKのキーコードは58です。showkeyは、非アクティブ状態が10秒続くと終了します(少なくとも、ubuntu 10.04では終了します)。

  3. DumpkeysのESCキーとCAPSLOCKキーの名前に注意してください。

    $ dumpkeys | grep 1
    ...
    keycode   1 = Escape
    ...
    $ dumpkeys | grep 58
    ...
    keycode  58 = CtrlL_Lock
    ...
    
  4. Dumpkeysのキーマップ行に注意してください。

    $ dumpkeys | head -1
    keymaps 0-127
    
  5. ESCとCAPSLOCKを切り替えるキーマップファイルを作成します。

    keymaps 0-127
    keycode   1 = CtrlL_Lock
    keycode  58 = Escape
    
  6. キーマップをロードします。

    $ Sudo loadkeys swap_esc_capslock.kmap
    
  7. テスト:CAPSLOCKキーのテストは明らかです。 CAPSLOCKキーを押して、他のキーが大文字で表示されるかどうかを確認してください。 ESCキーをテストするには、CTRL + Vに続いてESCを使用できます。 ^[と表示されます。 CTRL + Vを押すと、シェルは次のキーを解釈せずに逐語的に出力します。

再起動のたびにこの変更をロードするには、/etc/rc.localファイルに次の行を追加します。

/usr/bin/loadkeys /path/to/swap_esc_capslock.kmap

以下を含むさまざまなページから収集された情報:

60
lesmana

2つのcapslocksキーだけが必要な場合は、「ctrl:swapcaps」の代わりに「ctrl:nocaps」を使用します(別の名前のcapslockはまだ非常に役に立ちません)。

X11:(参照:/usr/share/X11/xkb/rules/base.lst

Sudo vim /etc/default/keyboard
    XKBOPTIONS="ctrl:swapcaps"
udevadm trigger --subsystem-match=input --action=change
Sudo restart lightdm

テキストコンソール:(setupconから盗まれた)

#!/bin/sh
. /etc/default/console-setup 
. /etc/default/keyboard
ckbcomp $acm_option $rules_option -model "$XKBMODEL" \
            "$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" \
            | gzip -9 2>/dev/null >/etc/console-setup/cached.kmap.gz
loadkeys /etc/console-setup/cached.kmap.gz
4
bukzor