Xremap とは
Mac でいうと Linux 版 Karabinar-Elements です。キーバインドを柔軟にカスタマイズでき、 修飾キーとして組み合わせたときと、単押しのときで違うキー入力となる所謂モッドタップの設定もできます。
X11 も Wayland も対応しています。
Xremap の設定修正
今までは xremap の nix flake を使い、Nix のみで設定を書いていましたが、想定通りの挙動にならないことが多く、 しょっちゅうバグらせていました。
Xremap の公式通り yaml で設定を書きたかったため、systemd-user
で管理することにします。
xremap
ディレクトリを作成し、config.yml
公式に乗っ取った設定を書き、 このファイルをdefault.nix
で読み込み、デーモンの管理を書きます。
{ pkgs, ... }: { systemd.user.services.xremap = { Unit = { Description = "XRemap Service"; }; Install = { WantedBy = [ "default.target" ]; }; Service = { Type = "simple"; ExecStart = "${pkgs.xremap}/bin/xremap ${./config.yml}"; Restart = "on-failure"; RestartSec = 5; }; };}
keypress_delay_ms: 20
modmap: - name: General remap: CapsLock: held: Ctrl_L alone: Esc Space: held: Alt_R alone: Space Muhenkan: held: Alt_R alone: Space Henkan: held: Alt_R alone: Space Alt_R: Henkan
上記の config.yml
についてですが、何をしてるかは読みとれると思うので、経緯を書きます。
- CapsLock: ここを Ctrl 兼 Esc にすると Vim が超快適になります。
- Space: Alt キーを Hyprland のウィンドウ操作の起点としているので、とても押しやすくなります。
- Muhenkan: Space の面積拡大です。外付けキーボードが英字配列なので、サイズ感を合わせています。
- Henkan: 同上
- Alt_R: Hyprland の設定で Henkan を 日本語入力(fcitx5)の切り替えに当てています (
bindr = , Henkan, exec, fcitx5-remote -t
)
Mac 風キーバインド
Mac の Ctrl キーのEmacsライクな挙動が好きです。Macの使用頻度も高いことだし、Linuxでもこれを使いたい。以下の記事を参考にしました。
https://apribase.net/2023/11/04/hyprland-xremap/
先ほどの config.yml
に追記します。
keymap: - name: Mac Like SUPER application: not: [org.wezfurlong.wezterm, kitty] remap: SUPER-c: Ctrl-c SUPER-x: Ctrl-x SUPER-v: Ctrl-v SUPER-s: Ctrl-s SUPER-f: Ctrl-f SUPER-z: Ctrl-z SUPER-SHIFT-z: Ctrl-SHIFT-z
- name: Line Move application: not: [org.wezfurlong.wezterm, code-url-handler, kitty] remap: SUPER-a: Ctrl-a CONTROL-a: home CONTROL-e: end
- name: Mac Like Chrome application: only: google-chrome remap: SUPER-t: Ctrl-t SUPER-l: Ctrl-l SUPER-w: Ctrl-w SUPER-SHIFT-t: Ctrl-SHIFT-t
結構いいかんじです。
まとめ
本当は Windows みたいに、Win キーをOSが占有する方針をとりたかったのです。Blender はデフォルトで Alt を多用するなのです。
しかし、Linxu と Mac しか所有しておらず、外出には Mac をよく使うので、泣く泣く Mac 仕様に統一したなのです。
Blender は Blender のキーバインドを調整する形で頑張れるといいなのです…
追記
アップデートしたらまたバグりました。どうにもならないので xremap とはおさらばします。 Karabiner-Elements といい、リマップ系は難しい……