回答:
仮想コンソールのキーボードレイアウトを操作するツールはloadkeys
、dumpkeys
およびshowkey
です。彼らのマンページを読んで、彼らの複雑さについて自分自身に知らせてください。
これらのツールは仮想コンソールでのみ機能し、gnomeのようなグラフィカル環境のターミナルエミュレータでは機能しないことに注意してください。違いについて学ぶには、この質問と回答を読んでください:https : //askubuntu.com/questions/14284/why-is-a-virtual-terminal-virtual-and-what-why-where-is-the-real-terminal。
あなたがしたいことをするための短いガイドがあります:
現在のキーボードレイアウトを保存します。
$ dumpkeys > backup.kmap
問題が発生した場合は、次のコマンドを使用してキーマップを復元できる場合があります。
$ sudo loadkeys backup.kmap
キーボードがめちゃくちゃになっていて、これすらできない場合は、リブートするしかありません。
キーに割り当てられているキーコードを確認します。
$ showkey
次に、ESCキーとCAPSLOCKキーを押します。キーコードが画面に表示されるはずです。キーコードに注意してください。私のシステムでは、ESCにはキーコード1があり、CAPSLOCKにはキーコード58 showkey
があります。10秒間の非アクティブ後に終了します(少なくとも、ubuntu 10.04ではそうです)。
ダンプキーのESCキーとCAPSLOCKキーの名前に注意してください。
$ dumpkeys | grep 1
...
keycode 1 = Escape
...
$ dumpkeys | grep 58
...
keycode 58 = CtrlL_Lock
...
dumpkeysのキーマップ行に注意してください。
$ dumpkeys | head -1
keymaps 0-127
ESCとCAPSLOCKを切り替えるキーマップファイルを作成します。
keymaps 0-127
keycode 1 = CtrlL_Lock
keycode 58 = Escape
キーマップをロードします。
$ sudo loadkeys swap_esc_capslock.kmap
テスト:CAPSLOCKキーのテストは明らかです。CAPSLOCKキーを押して、他のキーが大文字で表示されるかどうかを確認します。ESCキーをテストするには、CTRL + Vに続いてESCを使用できます。印刷するはず^[
です。Ctrlキーを押しながらVキーを押すと、シェルは解釈せずに、次のキーをそのまま出力します。
再起動のたびにこの変更をロードするには、/etc/rc.local
ファイルに次の行を追加します。
/usr/bin/loadkeys /path/to/swap_esc_capslock.kmap
以下を含むがこれらに限定されないさまざまなページから収集された情報:
/usr/bin/loadkeys
に/etc/rc.local
パス環境変数がこの段階で設定することが保証されていないため。でsudo
必要ありませんrc.local
。
rc.local
システムが起動するたびにコマンドが実行されます。@ bukzorのはsudo setupcon
ありませんでrc.local
、それは任意の実行時のスタートアップコードを追加することなく、システムのデフォルトのキーマップを置き換えるワンタイムセットアップコマンド、です、。に追加するloadkeys
とrc.local
、追加の起動コードが追加され、システムのデフォルトのロードキーで既に実行されていたものが複製されます。このrc.local
メソッドは、キーマップへの非標準のパスに依存するため、実際には安全性が低下する可能性があります。
setupcon
メソッドを詳しく説明してください。独自の回答を追加するか、必要に応じて編集します。
setupcon
。8月は、私が思うに入らないsudo setupcon --save
だろうという仮定をしrc.local
たようですが、もしそうなら、あなたはを必要とsudo
しません rc.local
。回答を更新する前に、さらに情報が必要だと思います。主な質問は、「変更されたキーマップをインストールして、ブートプロセス中に自動的にロードされるようにする方法」です。どちらがより良い方法なのrc.local
か、キーマップをインストールするのか、キーマップのインストールが機能するのかさえ、私は本当に知りません。私は最近これを調査しており、ここで確認します。
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
sudo setupcon --save
rc.localを編集するのではなく、変更を永続的にするためにも使用できます。それは本質的に同じですdumpkeys < /dev/tty1 | gzip > /etc/console-setup/cached.kmap.gz