dwm - 动态窗口管理器
dwm
是为X Window系统开发得一个极简主义动态窗口管理器,深刻影响了 xmonad
和 awesome
等窗口管理器。 dwm
非常类似 vmii
,但是其内部更为简单。使用纯c语言开发,性能和安全性由于其极简的结构得到保障,并且特别的是, dwm
不提供任何配置接口,所有调整需要编辑源代码,然后重新编译。
dwm
开源项目的指南解释了这个开源软件计划永远不超过2000行SLOC(Source lines of code),并且用户配置选项全部包含在一个单一头文件中。
如 Suckless极简桌面简介 所述, suckless
系列软件可以构建一个极简的 平铺
窗口管理桌面。例如以下案例

安装
suckless
系列软件安装需要从源代码编译
下载源代码:
mkdir ~/suckless cd ~/suckless git clone https://git.suckless.org/dwm git clone https://git.suckless.org/st git clone https://git.suckless.org/dmenu
安装需要的依赖:
sudo apt install libx11-dev libxft-dev libxinerama-dev
备注
suckless
使用 config.mk
中的 Xinerama
库可以实现自动配置屏幕输出(例如显示器,投影仪等),并且设置分辨率并准确绘制输出区域。
编译:
cd ~/suckless/st sudo make clean install cd ~/suckless/dmenu sudo make clean install cd ~/suckless/dwm sudo make clean install
安装
xinit
sudo apt install xinit
配置
~/.xinitrc
exec dwm
然后执行:
startx
此时会看到一个完全精简的黑白屏幕,干净漂亮
快速起步
基本快捷键:
快捷键 |
说明 |
---|---|
[Shift]+[Alt]+[Enter] |
启动终端(st) |
[Alt]+[p] |
dmenu输入运行程序 |
默认可以看到有9个 tag
(在屏幕上方导航栏)
窗口模式
使用 [Shift]+[Alt]+[Enter]
启动一些终端以后,可以看到 dwm
平铺窗口到 master
和 stack
。最新的终端位于 master
部分,其他的终端则 堆
(stack) 在屏幕右方。
+------+----------------------------------+--------+
| tags | title | status +
+------+---------------------+------------+--------+
| | |
| | |
| | |
| | |
| master | stack |
| | |
| | |
| | |
| | |
+----------------------------+---------------------+
使用 [Alt]+[Enter]
则窗口会在 master
和 stack
区域切换 - 左右互换
移动
移动到另外一个终端
使用快捷键:
快捷键 |
说明 |
---|---|
[Alt]+[j] |
顺时针移动聚焦窗口 |
[Alt]+[k] |
逆时针移动聚焦窗口 |
移动终端到另一个tag
使用快捷键:
快捷键 |
说明 |
---|---|
[Shift]+[Alt]+[2] |
将窗口移动到tag 2中 |
[Alt]+[2] |
聚焦到tag 2上 |
增加和减少
master
区域的窗口数量: 默认master
区域只有1个窗口,通过以下快捷键可以增加或减少窗口数量:
快捷键 |
说明 |
---|---|
[Alt]+[i] |
增加(increase)master区域窗口数量 |
[Alt]+[d] |
减少(decrease)master区域窗口数量 |
在master和stack之间切换移动终端
使用快捷键:
快捷键 |
说明 |
---|---|
[Alt]+[Enter] |
在master和stack区域之间切换移动终端 |
杀死窗口
使用快捷键:
快捷键 |
说明 |
---|---|
[Shift]+[Alt]+[c] |
杀死窗口 |
退出dwm
使用快捷键:[Shift]+[Alt]+[q]
状态栏
使用 X.org 工具设置状态栏:
xsetroot -name "Some Text"
有大量的工具提供了状态栏设置,方便获取系统信息可以使用 dwmstatus
参考
Arch Linux 下安装 dwm (平铺式窗口管理器)
GIN-18
的blog,有不少dwm的使用经验,后续再参考实践