不具合の内容
Ubuntu を TigerVNC 経由でリモート操作しているとき、「Caps Lock をオフにしているのに入力が全部大文字になる!」という現象に遭遇しました。
このときの原因と解決方法をまとめておきます。
症状
- Caps Lock ランプは消えている(つまりオフのはず)。
- それでも 入力がすべて大文字になる。
- ローカルでは問題ないが、TigerVNC 経由で接続した Ubuntu 側だけおかしい。
状態の確認
まず、X サーバー(Ubuntu 側)が Caps Lock をどう認識しているかを確認します。
xset q | grep LED
出力の最後に表示される LED mask がカギです。
| LED mask | 状態 |
|---|---|
00000000 |
Caps Lock OFF |
00000001 |
Caps Lock ON |
自分の環境では 00000001 になっており、
Ubuntu 側が Caps Lock が押されたままと誤認識していました。
通常の解除方法
まずは Caps Lock をリセットしてみます。
xset led off
xset -led 3
このあと再度確認します:
xset q | grep LED
LED mask: 00000000 になれば解除成功です。
それでも直らないとき
もし上記で解除されない場合は、
X サーバー側で Caps Lock 状態が固定化(ロック)されている 可能性があります。
その場合は、仮想的に Caps Lock キーを押すコマンドでリセットできます。
xdotool key Caps_Lock
xset q | grep LED
これで 00000000 になれば成功です。
xdotool が入っていない場合は以下でインストール:
sudo apt install xdotool
まとめ
| 状況 | 対処コマンド |
|---|---|
| Caps Lock 固定を解除したい |
xset led off xset -led 3
|
| 上記でダメな場合 | xdotool key Caps_Lock |
| 状態確認 | `xset q |
補足
TigerVNC 経由や SSH 経由では、 ローカルとリモート間で Caps Lock の状態がズレる ことがあります。 セッション再接続でも直る場合がありますが、 記コマンドを覚えておくとすぐに復旧できます。