さて、皆さまは英語キーボードをお使いでしょうか。私はそこまでこだわりはありませんが、エンジニア界隈だとコーディングに適しているなどどいう噂もあったりします。MacBookなどではUSキーボードだと見た目がすっきりしていてきれいです。積極的に買わなくともジャンクPCに搭載されていたり仕事で割り当てられたりすることがあります。
英語キーボードを使った場合に困ることの一つとして、日本語切り替えがあります。半角/全角キーがないので、そちらでのトグルはできません。Macのかな・英数のような専用キーもないため当然使えません。このためCtrl+スペースといったキーコンビネーションでトグルすることになり非常に不便です。
そもそも、日本語・英語の入力システムを一つのキーやキーコンビでトグルするというのが良くないのです。トグルするためには現在のモードがどちらかを人間が覚えている必要があり、非常に無駄です。よく間違いも発生します。これがMac流の、日本語なら「かな」英語なら「英数」を押すだけの方式であれば、今から打ちたい言語に合わせてボタンを押せば良いので非常に効率的です。
MacだとKarabinerという最強のキーリマップアプリがあります。これによって、USキーボードmacのスペースキー左右にあるコマンドキーを利用し、これを単独で1回押した場合には英数orかなキーとして認識させるという便利な設定が簡単に行えます。
しかし、これまでWindowsやLinuxではキーをリマップするソフトは数あれど、この単独押しのみを別のキーとして扱うという機能があるものがほとんど見つかりませんでした。今回ついに、Linux環境でこれを行えるプログラムを発見したので、お知らせいたします。
ダウンロード
以下から最新のパッケージをダウンロードします。
https://github.com/xremap/xremap
variantがたくさんありますが、ウィンドウシステムがX11ならx11、Waylandならgnomeなどデスクトップ環境の名前を選ぶといった感じのようです。
私の場合は xremap-linux-x86_64-gnome.zip を選びました。
config.yaml
適当な場所で設定ファイルを作成します。今回の場合は左右のALTキーを長押しの場合にはそのまま、単独押しの場合にはそれぞれMuhenkan、Henkanに割り当たるようにしました。
これによって、スペースキー左右のALTキーによってかな・英数を一発で切り替えられるMac式の日本語切り替えができることになります。
例: 左右Altキーを利用する場合
modmap:
- remap:
Alt_L:
held: Alt_L
alone: Muhenkan
Alt_R:
held: Alt_R
alone: Henkan
例: 左右Commandキーを利用する場合(Mac)
modmap:
- remap:
Super_L:
held: Super_L
alone: Muhenkan
Super_R:
held: Super_R
alone: Henkan
無変換、変換をIME OFF/ONに割り当てる設定はMozcのダイアログなどで別途行う必要があります。
詳しい解説は省略しますが、Mozcのキー設定で、Henkan、Muhenkanに割り当てられているデフォルトの設定を削除し、以下の設定を追加します。
xremap.service
次に、自動起動のための設定ファイルを用意します。
[Unit]
Description=xremap
After=graphical.target
[Service]
KillMode=process
ExecStart=/usr/local/bin/xremap /usr/local/etc/xremap/config.yaml
ExecStop=/usr/bin/killall xremap
Restart=always
[Install]
WantedBy=graphical.target
インストール
とりあえずダウンロードはDownloadディレクトリ、設定ファイルはDesktopに作成してあるものとします。
# ダウンロードしたものをインストール
cd ~/Download
unzip xremap-linux-x86_64-gnome.zip
sudo cp xremap /usr/local/bin
# 設定ファイルを設置
cd ~/Desktop
sudo mkdir /usr/local/etc/xremap
sudo cp config.yaml /usr/local/etc/xremap/
# systemdサービスを登録
sudo cp xremap.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl start xremap.service
sudo systemctl enable xremap.service
「Linux+英語キーボードでMac流の快適な日本語切り替えを実現する(Karabiner風)」への1件のフィードバック