私は普段Keyball61を使っているのですが、Ubuntu24.04で使おうと思ったときに、Lang1とLang2がWindowsやMacと同様の操作ができず困っていました。
そこで確認したところ、本来 Lang1(無変換)/ Lang2(変換)キーが
誤って Hangul(韓国語)/ Hanja(漢字変換)キーとして認識される場合があります。
この手順では、
- キーボード側の設定や
- Remap(karabiner風ツール)
を 変更せずに、
Ubuntu の XKB キーマップのみ書き換えて Lang1/Lang2 に戻す方法を解説します。
✅ 前提条件
- Ubuntu が X11 セッションで動作していること
(確認コマンド:echo $XDG_SESSION_TYPE→x11) -
xevで以下のように表示されている状況向け:
keycode 130 → Hangul
keycode 131 → Hangul_Hanja
本来はここが無変換(Muhenkan)/変換(Henkan_Mode)になっていてほしい。
🔧 1. 現在の XKB 設定をファイルに吸い出す
cd ~
xkbcomp $DISPLAY current.xkb
✏️ 2. Hangul/Hanja のキー定義を「無変換/変換」に書き換える
ファイルを開く
nano ~/current.xkb
以下のような部分を探す
alias <I130> = <HNGL>;
alias <I131> = <HJCV>;
key <HNGL> { [ Hangul ] };
key <HJCV> { [ Hangul_Hanja ] };
Ubuntu は I130 / I131 を
Hangul / Hangul_Hanja と誤解釈している状態。
これを次のように修正する:
key <HNGL> { [ Henkan_Mode ] }; // 変換キー
key <HJCV> { [ Muhenkan ] }; // 無変換キー
※ alias 行は変更しないでOK
(keycode とキー名を結びつけるだけのもの)
🚀 3. 修正した XKB 設定を反映
xkbcomp ~/current.xkb $DISPLAY
🔍 4. 本当に Lang1/Lang2(無変換/変換)として認識されたか確認
xev
キーを押して次のようになっていれば成功:
keycode 130 (keysym 0xff22, Henkan_Mode)
keycode 131 (keysym 0xff23, Muhenkan)
Ubuntu 的には 完全に Lang1/Lang2 として扱われる状態です。
🎯 5. Google 日本語入力(ibus-mozc)で IME ON/OFF に割り当てる
Ubuntu 側で Lang1/Lang2 に戻しても、
IME(Google IME)側で「入力モード切替」に紐づけないと動作しません。
Google IME 設定を開く
ibus-setup
または
「設定 → キーボード → 日本語(Mozc) → 設定」
1. 「キー設定」を開く
2. 下記の項目を編集:
-
ひらがな入力(IME ON)
- →
Henkan_Mode(変換キー)を割り当てる
- →
-
英数入力(IME OFF)
- →
Muhenkan(無変換キー)を割り当てる
- →
3. 追加方法
- 編集したい項目を選択
- 「編集」→「追加」
- キー入力欄で 無変換 / 変換キーを押す
- 保存
これで無変換を押すと IME OFF、
変換を押すと IME ON になります。
🔄 6. 再ログイン後も自動適用したい場合(任意)
~/.profile に以下を追記:
if [ -f "$HOME/current.xkb" ]; then
xkbcomp "$HOME/current.xkb" $DISPLAY
fi
再ログインすると毎回自動で反映されるようになります。