2010年代に比べるとMacOSを開発環境として利用するメリットは大分薄れてきたように感じる昨今です。 円安もあって非常にお高いので値頃感もなくなってきているというのもあります。
そんな背景もあり、VMWare Workspaceが非商用利用の個人向けに無料で提供されていることもあり、最近はVMWare上のNixOSをメイン環境として利用しています。
デスクトップ環境として一旦Cinnamonを利用していたのですが、タイル型Window Managerを検討するにあたって、EXWMを導入してみました。
EXWMとは
Emacs X Window ManagerはEmacsをウィンドウマネージャ(WM)として利用するという画期的?なプロジェクトです。
Linuxのウィンドウマネージャにはi3やXmonadなど色々種類があるのですが、これらと比較してEXWMはEmacsユーザーに対して
- 操作がEmacsベースなので学習コストが低い
- EXWM自体がElispで書かれており、configurationもElispで書ける
などのメリットがあります。
こういった点からEmacsユーザーとしては一度は試してみたいウィンドウマネージャでして、今回の導入に至りました。
インストール
Ubuntuなどへの導入については公式Wikiが参考になるかと思います。
(2023/6/9追記) NixOSでは他のディストリビューションと導入方法が異なります。以下の記事でインストール方法を紹介していますので、参考にしてください。
基本的な設定
exwm-config
というパッケージが提供されているため、こちらを利用することですぐに使い始めることができます。
|
|
exwm-config-example
は基本的なキーコンフィグやMenuBarをオフにするなどの設定しつつ (exwm-enable)
を内部で実行してくれます。
この関数は内部で ido-mode
をenableにしているため、idoを切って利用している人は意図せずenableになってしまうため注意が必要です。
|
|
これは exwm-config-example
の内部で設定される初期キーバインディングですが、 Super-&
でアプリケーション起動ができます。
ワークスペース数も設定でき、初期値は4です。 Super-[num]
で切り替えができるようになっています。
Emacs以外のWindowでは char-mode
と line-mode
があり、Windowのキー操作とEmacs側のキー操作を切り替えることができます。
それぞれ C-c C-k
と Super-r
が対応しています。
line-mode
はそのままGSettingsのEmacs key themeが使えるようなものなので便利ですし、キーバインド自体は自由に設定でき、vimっぽくするなどのカスタムも可能です。
スクリーンサイズ調整
VMWareを使っていることもあって、起動時に認識される画面サイズが実際のディスプレイと異なっていて、 xrandr
で設定する必要がありました。
EXWMではOptionalとして xrandr
がサポートされています。
まず xrandr
コマンドを実行して、出力先と解像度を確認します。(以下は1920x1200に設定した状態での出力例)
|
|
出力先と解像度のサポートを調べたら、 exwm-randr
に設定します。
|
|
公式Wikiの設定をそのまま流用して、 xrandr
の実行内容を上記のように変更するだけです。
ここでは、1920x1200としています。
日本語入力
普段Emacs上ではDDSKKを使って日本語入力をしています。EXWMであってもEmacs Bufferでは問題なく利用することができます。 ただし、残念ながらEXWMでEmacs Buffer以外のバッファではSKKを利用することはできませんでした。
EXWMでは exwm-xim
としてサポートはしており、
例えば japanese-hiragana
などでひらがなをブラウザに入力することなどはできるのですが、これをSKKにすると Shift
入力で日本語入力を開始できませんでした。
理由はわかってないのですが、どうもSKKの変換モードにうまく入ることができないようでした。
開発用途であれば日本語はほとんど不要ですし、Emacs BufferではSKKが使えることもあり、あまり困らないのでそのまま放置しています。 必要な際にはfcitx5-skkなどを導入することになりそうです。
実際使ってみた感想
とりあえず10日ほど使っていますが、思った以上に快適でした。
一度configさえしてしまえば安定してますし、
EXWMはEmacsですので、 Fully keyboard-driven operations
とあるとおりしっかりキーボード操作で完結できます。
つまりいつものEmacsの延長でストレスなく操作できます。
色々カスタマイズしながらしばらくはEXWMを使ってみようと思います。