概要
Xを使うときに、複数のキーボードを切り替えてつかうときに、
キーボードごとに、設定をするのが大変なので、一回設定してすまないかを検討している
まとめ
xinput -list
setxkbmap -device デバイスID -layout jpとかusとか -option ctrl:nocapsとか
-
xinput
は、setxkbmap
で指定するデバイスIDを探すのに使う -
setxkbmap
は、実際に設定を変更する
日本語に切り替えて、英語に戻ると、レイアウトがリセットされるとき。
ibusなどをつかっているならそれの設定を見直す。
ibusの例では、Preference で Advanced
を選び
-
Keyboard Layout
のなかの、 -
Use system keboard layout
のチェックボックスにチェックをいれる
xinput -list の出力例
xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Performance MX id=8 [slave pointer (2)]
⎜ ↳ Logitech N305/B505 id=9 [slave pointer (2)]
⎜ ↳ Logitech M545 id=10 [slave pointer (2)]
⎜ ↳ Logitech M570 id=11 [slave pointer (2)]
⎜ ↳ KINESIS FREESTYLE KB700 KB700 Kinesis Freestyle id=17 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
↳ Logitech N305/B505 id=14 [slave keyboard (3)]
↳ Logitech M545 id=15 [slave keyboard (3)]
↳ KINESIS FREESTYLE KB700 KB700 Kinesis Freestyle id=16 [slave keyboard (3)]
↳ KINESIS FREESTYLE KB700 KB700 Kinesis Freestyle id=18 [slave keyboard (3)]
↳ Topre Corporation Realforce 91 id=12 [slave keyboard (3)]
設定例
デバイスIDが、16のキーボードのCAPSをCTRLとして使う
xinput -list
setxkbmap -device 16 -layout us -option ctrl:nocaps
スクリーンロックがかかった後のKINESISのdevice id
マシンを再起動しなくても、
かわることがあるようです。
実際に自分の環境では、上にあげた xinput -list
の16と17がいれかわっていた。
このあたりは、確認するスクリプトをつくったほうがよさそう