1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ubuntu 22.04 LTS】xremapでMozcのCapsLockキーと全角・半角のキーマッピングを行う

Last updated at Posted at 2024-04-28

一年前に中古で購入したwin11のゲーミングPCが常時ディスク使用率100%状態で、色々設定をいじっても治らず、SSDの交換も金がかかるし、基盤をぶっ壊したら悲惨なことになるので、思いっきってOSをwinから動作の軽いubuntuに変えた結果、ディスク使用率の問題は解決したが、キーボードの日本語・英語の切り替えキー云々で3日ぐらい手こずったので、備忘録も兼ねて記事を書いていく。

目的

winを使うとき、いつもCapsLockでIMEの無効化・有効化(英語・ひらがな入力の切り替え)をしていて、それが手に馴染んでいるため、ubuntuでも同様に、CapsLockで切り替えができるようにする。

試してうまく行かなかったこと

  1. Mozcの設定上で、CapsLockの動きを全角・半角キーと同じ動きにする
    → 設定がなぜか反映されずに失敗
  2. xmodmapでCapsLockと全角・半角キーを交換する
    → うまく反映されたが、特定のウィンドウははぜか適応されない
  3. 同様にXKBでCapsLockと全角・半角キーを交換する
    → 設定コンフィグがエラーになり、うまく行かずに断念

色々調べたら、Ubuntu 22.04ではxkbはWaylandでは動かないのでxremap使ったほうがいいという記事があったので、それを使ってキーバインドをして行きます。なんでUbuntu 22.04ではxkbはWaylandでは動かないとか、Waylandとはなんなのかとはについては、私はインフラエンジニアじゃないし、興味がないので、そういうものだと思っておきます、目的はCapsLockで日本語・英語の切り替えをできるようにすることなので、その過程の知識は必要ないです。

手順

  1. Cargoのインストール
  2. xremapのインストール
  3. キーマッピング設定ファイルの作成
  4. xremapで設定ファイルを読み込み

Cargoのインストール

xremapはCragoでインストールする必要があるので、Cragoをインストールする。

sudo apt install cargo

インストールできるてるか確認。

sudo cargo -V

cargo 1.75.0 などのバージョンナンバーを表示されればインストール完了。

xremapのインストール

公式ドキュメントからインストールコマンドを参照し、以下のコマンドでインストールする

#xremapでコンフィグファイルを読み込む際、sudoコマンドで実行する必要があるため、sudoでインストールを行う
sudo cargo install xremap 

同様にインストールできてるか確認する、なお、環境変数の設定はめんどくさいので、ディレクトリの記載が必要。

Untitled.png

この場合、/root/.cargo/binのディレクトリにインストールされているので、下記のコマンドで確認。

sudo /root/.cargo/bin/xremap -V

xremap 0.8.18 などのバージョンナンバーを表示されればインストール完了

キーマッピング設定ファイルの作成

最難関です、というのも公式ドキュメントを見ても、全角・半角キーのキーシンボル(コンフィグファイルで記載するキーの名前)の記載例がないのでかなり困りました。

Ubuntu 22.04 + Wayland Xremapで変換キーとの組み合わせをリマップ

上記記事によりますと、xevで確認したキーコードに8を引いた値を、https://github.com/emberian/evdev/blob/1d020f11b283b0648427a2844b6b980f1a268221/src/scancodes.rs#L26-L572 のコードで探すとそのキーシンボルがわかるとのこと。8引くとかなんでやねん

今回交換する、CapsLockと全角・半角キーのキーコードをxevコマンドで調べる。

xev

それぞれ2回表示されるのは、おそらくキーを押して、離してで2回判定があるものかと思われる
それぞれ2回表示されるのは、おそらくキーを押して、離してで2回判定があるものかと思われる。

CapsLockのキーコードは66、全角半角は49なので、それぞれに8引いて、58と41だね。8引くとかなんでやねん(二回目)

https://github.com/emberian/evdev/blob/1d020f11b283b0648427a2844b6b980f1a268221/src/scancodes.rs#L26-L572 を見ると、それぞれのキーシンボルは、KEY_CAPSLOCKKEY_GRAVEKEY_ は省略可能なので、CAPSLOCKGRAVE はキーシンボルになる。

それらを踏まえて、以下のファイルを作成、ファイル名はxremap.yml とし、ホームディレクトリに保存。

keymap:
  - name: Swap CapsLock and Zenkaku_Hankaku
    remap:
      CapsLock: Grave
      Grave: CapsLock

xremapで設定ファイルを読み込み

下記コマンドをホームディレクトリで実行する。

sudo /root/.cargo/bin/xremap xremap.yml

あとは自動で、xremapが自動的に接続機器を読み込んで、実行状態となる、下の画像が表示されれば設定が適応された状態となる。

Untitled2.png

なお、この状態では、ターミナルを閉じると、プロセスが中断されるため、nohup で実行する。

nohup sudo /root/.cargo/bin/xremap xremap.yml

ゲームなどをする際は、めんどくさいがpgrep コマンドでプロセスIDを特定し、sudo killでプロセスを終了する

Untitled3.png

いちいちコマンド打つのがめんどくさいなら、GUIアプリケーションを作成しよう!気が向いたら、そのうちGUIアプリケーションを作成して、配布するかもしれません。

最後に

軽い気持ちでubuntuを使ったが、winと比べていろんなことを自分でやらないと行けないっていう大変さを知って、winとmacの素晴らしさを再認識した、まぁ、有料だから当たり前っちゃ当たり前かもしれないが、、

それでもwinはバージョンを重ねるごとに、要求リソースが高くなるため、古いPCを使うのであれば、ubuntuがよいのかもしれません。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?