---
title: DWMの良いところ
date: 2026/01/24 04:30
category: Linux
excerpt: DWMの個人的に良いと思うところまとめ
---

<center>
dwm は、Xウィンドウマネージャのためのダイナミック（動的）なウィンドウマネージャです。
ウィンドウを「タイル型」「モノクル（全画面）型」「フローティング（浮遊）型」の各レイアウトで管理します。
すべてのレイアウトは動的に適用することができ、使用中のアプリケーションや実行するタスクに合わせて環境を最適化します。
</center>

#

上記の文は[DWM](https://dwm.suckless.org/)の公式サイトにある説明です。\
これだとただのタイリングウィンドウマネージャと変わらないと思ってしまうので特徴をまとめます。

## 1. コンフィグはC言語のヘッダファイル

![DWM screenshot](/posts/dwm1_1.png)

こちらの項目は人によってはデメリットになります。
`niri`や`Hyprland`のようなコンフィグファイル形式との違いは下記のようになります。

- コンフィグで定義されてる変数を`dwm.c`で検索すればどう使われてるかわかる
- 自分で定義したものを組み込みやすい
- 変更を適応するのに再コンパイルが必要

## 2. モニター毎でワークスペースが別れている

これは`niri`でも同じような感じになっていますね。
`Hyprland`のようなタイリングだと存在するワークスペースをどのモニターに割り当てるか決める必要がありますが、
**DWMではモニターごとに1~9のワークスペースが存在しています**。

デフォルトのキーでは下記のようにモニター間での切り替えを行います。

- `Mod + >`: 右のモニターに移動
- `Mod + <`: 右のモニターに移動

私がDWMを使用している一番の理由がこれです。\
どのワークスペースがどのモニターに割り当てられているのか考える必要がないのはとても楽です。

## 3. X11

DWMはWaylandではなくX11のウィンドウマネージャです。
X11とWaylandで使用していて気づいた違いをまとめます。

- マウス感度などはコンフィグファイルに書く(`/etc/X11/xorg.conf.d`)
- Picture in pictureなど特定のウィンドウが決まった位置でオープンされる
  - Picture in pictureを有効にしたとき、画面の右下に表示される
- picomなどでDWMとは別のアプリからでもウィンドウのblurやopacityなどを設定できる

## 4. パッチ

DWMは最小構成で最低限の機能しかありません。\
ですが公式サイトの[patches](https://dwm.suckless.org/patches/)から好きなパッチを当てることで、機能を簡単に拡張できます。\
なくてもちゃんと使えますが、不便などころがあればパッチで解決したり、\
パッチプログラムの一部の文をいじったりして好みの機能に修正することもできます。

私は`alwayscenter`パッチにif文を1つ追加して、ウィンドウの起動位置がデフォルトで設定されていないもののみを中央にスポーンするように修正しました。\
その他は`fullscreen`や`systray`、`movestack`などのパッチを当てています。

## 総評

DWMは玄人向けではありますが、**モニター毎でワークスペースが別れているタイリングウィンドウマネージャ**を求めている人には最適になり得ます。

私がDWMを使う一番の理由はこれです。Picture in pictureが勝手に画面の右下に出てきてくれるのもかなり気に入っています。
DWL(wayland版dwm)を使っていたときは、Picture in pictureが画面のどまんなかに出てきたりして邪魔でしたが、
**X11ではブラウザが勝手に制御して位置を決めて表示してくれるので楽です**。

`niri`や`Hyprland`のようにアニメーションやデザインなどに力が入っているモダンなものが好きな場合でも、
`picom`を使えばアニメーション・Blur・ウィンドウ透過などを設定できます。

私はタイリングの使用感が良く、使っていて困っていることもないです。\
以前は古くて難しいイメージを持っていましたがそんなことはなく、むしろ他のものより使用感が良くシンプルながらも洗練されていると感じています。\
Youtubeのガイドなどを参考に使ってみるのがおすすめです。

## リンク

- [dwm](https://dwm.suckless.org/)
- [patches](https://dwm.suckless.org/patches/)
