前提
私が試した環境は以下の通り
- Windows Subsystem for Linux version 2 (WSL2) on Windows 11 24H2
- Ubuntu 24.04 LTS
cat /etc/os-release PRETTY_NAME="Ubuntu 24.04.2 LTS" NAME="Ubuntu" VERSION_ID="24.04" VERSION="24.04.2 LTS (Noble Numbat)" VERSION_CODENAME=noble ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=noble LOGO=ubuntu-logo
- インプットメソッド: FCITX5
- 漢字変換サーバ: Mozc
どういう状況の話なのか
結論からいうと、Emacs上で「半角/全角キー」を押してもインプットメソッドが反応しないようにしたい。
Ubuntu 24.04LTSではGUIを動かすのにX Server SystemよりもWaylandの使用が推奨されている。Emacsはバージョン29から、これまでのX Server SystemのアプリケーションとしてのemacsとWaylandネイティブのemacs(pgtk)の2種類が使える。
また、Emacsは漢字変換をするときにインプットメソッド(今回はFCITX5)を利用することもできるし、Emacsが直接漢字変換サーバ(今回はMozc)を利用することもできる。
私は Emacsが直接漢字変換サーバを利用できる方が好みなので、そちらを利用している。このとき、Emacsでインプットメソッドが呼び出されてしまう、具体的には「半角/全角キー」を押したときに直接入力と日本語入力モードに切り替わるのが困る。
このため、Emacs上で「半角/全角キー」を押してもインプットメソッドが反応しないようにしたい。
emacs をインストールしている場合
以下のコマンドでemacsをインストールしている場合は、Emacs.useXIM: false という値をXサーバに引き渡してやる必要がある。
% sudo apt install -y emacs
従来は ~/.Xresources に「Emacs.useXIM: false」を記載しておけばよかったが、Debian Wiki: Wayland "Xresources won't load"によると最近は.Xresourcesの自動読み込みはしないようになったとのこと。
このため、ログイン時に毎回読み込ませる必要がある。
まず、設定ファイルを作成する。
% echo "Emacs.useXIM: false" > ~/.Xresources % cat ~/.Xresources (ちゃんと書き込めているか確認する)
続いて、起動時に設定ファイルを読み込ませる。~/.profileの末尾にコマンドを追加する。
% touch ~/.profile % echo "xrdb -load ~/.Xresources" >> ~/.profile
Ubuntuを再起動し、以下のコマンドで"Emacs.useXIM: false"が設定されていることを確認する。
% xrdb -query Emacs.useXIM: false
emacsを起動し、emacs上で半角/全角キーを押してもFCITX5が動作せず、emacsのミニバッファに「
emacs-pgtkををインストールしている場合
以下のコマンドでemacsをインストールしている場合は、init.elに設定を追記する(参考:WSL2 + Emacs pgtk + mozc.el で日本語入力する - インゲージ開発者ブログ)
% sudo apt install -y emacs-pgtk
お好きなエディタで ~/.emacs.d/init.el を開き、以下の行を追加する。
(setq pgtk-use-im-context-on-new-connection nil)
emacsを起動し、emacs上で半角/全角キーを押してもFCITX5が動作せず、emacsのミニバッファに「