Macのキーマップ変えてみた
いい感じに設定できて嬉しいのでkarabinerについてだけ記事を書いたなのです。Macのカスタマイズまとめはまた後日書くなのです。
Karabiner 最強なのです
JSONを直接書くのはしんどいのでkarabiner.ts
というライブラリを用いてTypeScriptで設定を書き、ビルドしてコンフィグを生成します。
あらかじめGUIで権限周りの許可や、キーボードタイプを内部的にANSIにする必要があります。まだ途中ですが、かなりいい感じです。
ちなみにyabai
というタイル型ウィンドウマネージャーを使用しています(ヤバい)。
- かな → IME切替
- 英数 + hjkl → ウィンドウのフォーカス移動
- 英数 + shift + hjkl → ウィンドウの移動
- 英数 + q → ウィンドウを閉じる
- 英数 + 任意のキー → 任意のアプリケーション起動
- 英数単押し → ランチャー起動(Raycast)
- Capslock → Command
また、Chrome限定で
- Ctrl + w → Command + w
- Ctrl + t → Command + t
- Ctrl + l → Command + l
を当てています。TypeScriptはこんな感じです。
const yabai = "/run/current-system/sw/bin/yabai ";
writeToProfile("Default profile", [ rule("IME-toggle").manipulators([ map("japanese_kana") .to("japanese_eisuu") .condition(ifInputSource({ language: "ja" })), ]), rule("Modifiers").manipulators([ map("caps_lock").to("left_command"), map("left_control").to("left_control").toIfAlone("escape"), ]),
// Disable system shortcuts rule("Disable-system").manipulators([map("q", "command").toNone()]),
layer("japanese_eisuu", "super") .configKey((v) => v.toIfAlone("spacebar", "command"), true) .manipulators([ // focus window map("h").to$(yabai + "-m window --focus west"), map("j").to$(yabai + "-m window --focus south"), map("k").to$(yabai + "-m window --focus north"), map("l").to$(yabai + "-m window --focus east"), // move wndow map("h", "shift").to$(yabai + "-m window --warp west"), map("j", "shift").to$(yabai + "-m window --warp south"), map("k", "shift").to$(yabai + "-m window --warp north"), map("l", "shift").to$(yabai + "-m window --warp east"),
// other window operations map("tab").to$(yabai + "-m window --focus recent"), map("q").to$(yabai + "-m window --close"), // applications map("f", "shift").to$( yabai + "-m window --toggle float --grid 4:4:1:1:2:2", ), map("w").to$( yabai + "-m window --toggle float;" + yabai + "-m window --grid 1:1:0:0:1:1", ), map("return_or_enter").to$("/usr/bin/open -a kitty ~"), map("o").to$( "$HOME/.nix-profile/bin/google-chrome-stable --profile-directory=Default", ), ]), ...
おわりに
既存の修飾キーを一切潰すことなく「英数」で修飾キーを増やせたような形になるなので、Hyprland時代よりもキーマップの自由度が高くなったなのです!
あとはSIP(Security Integration Protection)を一部無効化しないとワークスペース(デスクトップ)をまたぐ操作ができないのが悩みどころなのです……。