晴れときどき崩壊ブログ

Xremap の設定修正 & Mac 風キーバインド

Xremap とは

Mac でいうと Linux 版 Karabinar-Elements です。キーバインドを柔軟にカスタマイズでき、 修飾キーとして組み合わせたときと、単押しのときで違うキー入力となる所謂モッドタップの設定もできます。

X11 も Wayland も対応しています。

Xremap の設定修正

今までは xremap の nix flake を使い、Nix のみで設定を書いていましたが、想定通りの挙動にならないことが多く、 しょっちゅうバグらせていました。

Xremap の公式通り yaml で設定を書きたかったため、systemd-user で管理することにします。 xremap ディレクトリを作成し、config.yml 公式に乗っ取った設定を書き、 このファイルをdefault.nix で読み込み、デーモンの管理を書きます。

xremap/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;
};
};
}
xremap/config.yml
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 についてですが、何をしてるかは読みとれると思うので、経緯を書きます。

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 といい、リマップ系は難しい……


Next Post
ブログが崩壊したので作りなおした