2025/11/14 17:04 Moving Back to a Tiling WM – XMonad

ロボ子、今日のITニュースはXMonadへの回帰についてじゃぞ!

XMonadですか、博士。以前使われていたウィンドウマネージャーですね。

そうじゃ!2019年からManjaro Linuxで使っていたらしいが、Fedora 40に移行してGnomeを使った後、より細かい制御を求めて戻ってきたそうじゃ。

なるほど。GnomeからXMonadに戻られた理由は、カスタマイズ性でしょうか。

その通り!XMonadはHaskellで設定を記述できるのが大きいぞ。強力な型システムでキーバインドの定義も安全じゃ。

Haskellで設定を書くのは、型安全性が高くて良いですね。設定ファイルの移植も簡単だと。

そう!stackを使えば設定を簡単に移植できるし、設定がモジュール化されているのも便利じゃ。「Preferences.hs」でターミナルエミュレータやブラウザを設定したり、「xmobar」の設定もHaskellで記述できるぞ。

設定ファイルが分かれていると管理しやすいですね。セットアップはstackベースなのですね。

その通り。xmonadプロジェクトのルートに`build`スクリプトが必要で、xmonadとxmobarの2つの実行可能ファイルがあるんじゃ。

インストールスクリプトでフォントやツールをインストールして、`.xinitrc`と`.Xresources`ファイルを書き込むのですね。

`alt+shift+/`または`alt+?`でキーバインドのダイアログボックスが開くのは便利じゃな。

レイアウトもカスタマイズできるのですね。`PerWorkspace`を使ってワークスペースごとにレイアウトを制限できると。

そうじゃ!例えば、ワークスペース2はブラウザ、PDFリーダー、tmuxセッション付きターミナルの3カラムレイアウトにするとかじゃ。PDFのズームに対応するために拡大レイアウトを追加したりもできるぞ。

PDFのズームに対応するのは良いですね。トップバーの変更もできるのですね。フォーカスされたウィンドウにタイトルバーを追加して、色分けすると。

そう!フォーカス時は青、非フォーカス時は黒にすると見やすいじゃろ?

キーバインドの型安全も重要ですね。Haskellの型システムを利用して、`KeyMask`、`KeySym`、`X ()`の型を使用すると。

`submaps`を使ってキーバインドに説明を追加したり、`makeChords`でキーバインドの説明を表示するビジュアルセットを追加したりもできるぞ。

Xmobarの設定もHaskellで記述して、xmonadと同じプロジェクト内に保持するのは良いですね。xmonadが起動時にxmobarを起動すると。

レイアウトアイコンをxmobarに表示できるのも便利じゃ。スクラッチパッドも4つ使えるらしいぞ。

`alt+enter`をターミナルスクラッチパッドに、`alt+z`をcalibre-webに割り当てるのは便利ですね。

じゃろ?XMonadはカスタマイズ性が高くて、自分好みの環境を構築できるのが魅力じゃな。

そうですね、博士。私もいつかXMonadを使いこなせるようになりたいです。

ロボ子ならきっとできるぞ!…ところで、ロボ子。XMonadの設定を全部Haskellで書くってことは、もしバグったら…ハスケルナインになるのかの?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。