Karabiner-ElementsでC-kのカスタマイズの対応をした

最近BYODしてたMacがかえってきてまっさらになっていたので環境つくりなおしをしていた。

まえおき

私はEmacsのような指ができているけれども、Macのショートカットを使ったりUSBトラベルキーボードを使ったりしているため、指が変になってしまっている。以前からKarabiner-Elementsを使っていたけれども、古すぎてまとまった時間も取れなかったので久々に触ってみた。
以前はKarabiner-Elementsで「[JIS]英数・かなキーを、他のキーと組み合わせて押したときはコマンドキー(88)として扱う」という設定が定番で、それ以外はアプリ(VSCodeやObsidian)でカスタマイズしていた。
今回はKarbinar側で実施。

やったこと

とにかく楽にしたかったので、
Karabiner ElementsでEmacs Mode(mark setとかC-x C-s)風なルールを作ってみた #Karabiner-Elements - Qiita を最初につかわせてもらった。

あとはここからの修正。ずらっとEnable/Disableできるので、不要なのをまずはけずった。

  • Command-V to Page-Up

  • Control+AE to Command+Left/Right

  • Command+V to PageUp

  • Command+W to Command+C

これでだいたいいい感じだったのだが、Terminalで Ctrl-K をしても後ろが消えてくれないのが困った。カーソルの後ろ全部削除したいことがよくあって、指がおぼえてるのでなんとかしないと。

色々探したら、しょっさんの記事 特定のアプリ利用時だけ Karabiner-Elements によるキーバインドの影響を除外する方法|しょっさん (note.com) がでてきた。(詳細はそちらを見てね)

Karabiner-EventViewer で確認したら、自分のつかってるターミナルソフトであるWezTermのIDとしてcom.github.wez.weztermの割当を発見。

com.github.wez.wezterm
/Applications/WezTerm.app/Contents/MacOS/wezterm-gui

そこで、以下2つをEditした。

  • [Emacs Mode] Control+K to Command+Shift+Right,Command+X

  • [Emacs Mode] Control+K to Command+Shift+Right, Forward Delete

  • [Emacs Mode] Control+Y to Command+V.  <-- 追記しました

中にある、ftontmost_application_unless のところを次のように修正。

"type": "frontmost_application_unless",
                    "bundle_identifiers":["^com\\.github\\.wez\\.wezterm$"]

今後は同じくやればこまらなそう!

追記メモ1:[Emacs Mode] Control+Y to Command+V にも同じように追加しました。

追記メモ2:Emacs key bindingsだとだめなの?

結論からいうとObsidianの中でC-kのあとのC-yでしてもPasteができなかったのでやめました。
このEmacs key bindingは結構よくできていて、たいていはすばらしいのだけども。そこがあわず。


https://x.com/haruyosh/status/1829709509809618971 「作者のtekezoさん謹製の"Emacs key bindings"を使っています」