技術/Linux/CentOS/VirtualBoxにインストールメモ(CentOS6, 2014-01版) でちらと書いた、CapsLockがおかしい件、色々調べたけどGNOMEの"Keyboard Layout Options"で"Caps Lock key behaviour"を "Default" から "Caps Lock toggles normal capitalization of alphabetic characters" にしたら直った。・・・何が悪かったのか・・・。
現象としてはこんな感じだったのです。
環境:
物理マシン : Win7 Pro SP1 日本語版 64bit版 キーボード : USB接続 FILCO Majestictouch テンキーレス ※特に物理マシン側でキーのmappingは変更してない VirtualBox : 4.3.6 VM : CentOS 6.5 x64版, GNOME
まず、runlevel=3のコマンドラインコンソールモードであればCapsLockについて全く問題はありませんでした。
runlevel=5で、GNOMEのX環境になると、以下の様な謎の挙動になりました。
また、GNOME上でも、CapsLockの切り替え後、1秒ほど待ってから入力を開始すればちゃんとCapsLockのON/OFFが反映されました。
取りこぼし(?)らしき現象が発生するのは、CapsLock切り替え後1秒未満の間に続けて入力を行う場合です。
一応、CapsLock切り替えで1秒以上待ってから入力を開始すれば問題は発生しないのですが、プログラミングをする上ではCapsLock切り替えでいちいち1秒以上またされるのはキツイです。
で、なかなか問題の切り分けが出来なかったのです。最初はVirtualBox側の問題かと思ったのですが、それらしき記事も見つからず、なによりrunlevel=3のCUIモードであれば全く問題は発生していなかったので、原因はX WindowsかGNOME側にアリそうでした。
試しにキーボードレイアウト設定でCapsLockのモード設定があったので、"Default"になってたのを、いくつか設定を切り替えてみたら、"Caps Lock toggles normal capitalization of alphabetic characters" で正常になった次第です。
他にもCapsLockの切り替えモードが色々用意されてるんですが、全部は試せておらず、とりあえずいくつか試してみて、通常使用時と同等で問題が解決できたのがたまたま上記の設定でした。
ちなみに、VMware Fusion でCapsLockの取りこぼしがある、というVMwareのKBが見つかったのですが、VirtualBoxですし、runlevel=3のCUIなら問題は発生しないので、違うようでした。