前言
当你使用git克隆下dwm源代码后进行简单配置修改然后编译安装,在.xinitrc添加exec dwm后启动dwm,你可能会发现这dwm也太干净了,输入确实可以使用,但是可能有一些地方不太喜欢,所以我们可以使用补丁来增强或改善dwm的功能体验,本篇博文将会推荐7个dwm补丁来改善你的dwm体验,你也可以看看我的dwm配置:
https://github.com/Aidens-fox/dwm
补丁介绍
1.pertag
当你打开2个以上的tag时,如果你在其中一个tag使用mod+j等来调整布局,那么在切换到下一个tag时你会发现这个tag的布局和上一个的tag一样,这样的话,如果下一个tag打开浏览器然后一个终端,本来是默认相同宽度的,但因为上一个tag调整了布局,让这个tag失去了刚才的布局,这就有点一些体验了,而pertag可以让tag相互独立,而不是同步更改,由此来提升使用体验
2.restartsig
当你修改完配置编译完成之后,你需要退出重新进入,如果只是偶然修改一些还好,但是如果是需要多次修改就有的麻烦了,退出进入要花时间,而且之前打开的窗口也没用了,也要重新打开,这就和麻烦了,而restartsig可以让你在不退出进入的情况下刷新配置,不过在编译安装之前需要指定快捷键不然可能会报错,像我就是绑定mod+ctrl+q
{ MODKEY|ControlMask, XK_q, quit, {1} },
3.attachaside
我们在打开新窗口时,它会自动抢占“主窗口(Master)”的位置,而原来的主窗口会被挤到右侧的“堆栈区(Stack),如果我们是使用浏览器,然后在打开终端后又打开几个窗口,主窗口早就不在浏览器了,这就很影响使用了,而attachaside可以让新窗口自动到堆栈区,保持当前主窗口不变,如果需要改变主窗口只需要mod+enter就可以切换了
默认:新窗口(N)抢占左侧,原窗口(P)被挤到右侧
+-----------------+-------+
| | |
| | P |
| N +-------+
| | |
| | |
+-----------------+-------+
使用补丁:主窗口(P)不动,新窗口(N)出现在右侧堆栈区的顶部
+-----------------+-------+
| | N |
| | |
| P +-------+
| | |
| | |
+-----------------+-------+
4.actualfullscreen
dwm 默认的全屏模式(例如某些浏览器触发的全屏)有时会保留状态栏,或者只是简单地平铺充满。actualfullscreen 可以让当前窗口会真正遮盖住状态栏,并填满整个显示器,而不改变原有的窗口平铺布局,但是在编译之前还是有先设置一些快捷键,不然可能报错
{ MODKEY|ShiftMask, XK_f, togglefullscr, {0} },
5.alwayscenter
在默认的 dwm 中,当你打开一个设置为“浮动”的窗口(比如确认弹窗、或者简单的文件选择框)时,它们通常会出现在屏幕的左上角,十分的反直觉,需要移动鼠标到左上角才可以操作,十分不便,而alwayscenter可以让所有新创建的浮动窗口自动显示在屏幕正中央
6.tagshift
在默认的dwm中只有使用mod+数字来切换tag,有点无聊,而tagshift可以使用方向键或其他来切换tag,但需要绑定快捷键:
/* 移动视图(切换当前显示的标签组) */
{ MODKEY, XK_Left, shiftview, {.i = -1 } },
{ MODKEY, XK_Right, shiftview, {.i = +1 } },
/* 移动窗口(改变当前窗口的归属标签) */
{ MODKEY|ShiftMask, XK_Left, shifttag, {.i = -1 } },
{ MODKEY|ShiftMask, XK_Right, shifttag, {.i = +1 } },
在默认的 dwm 中,调整浮动窗口大小只能通过点击窗口的右下角来拖拽。这在现代大屏幕或者多窗口操作时显得非常笨拙,resizecorners 补丁打破了这个限制,让你从四个角都能进行缩放