Suckless 的一天

Published:

2018/10/28

(这里的 suckless 其实是 suckless 项目,包含了 dwm 和 st 这两个子项目。)

今天心血来潮,在公司电脑上使用 dwmst 进行了一天的开发。其实这两个软件很早就安装过,但之 前只是简单地体验了一下,一直没有深入使用,因为本想好好搞懂这两个软件的代码以及 配置之后,才在实际的生产环境中使用。但是渐渐发现这样学习过程还挺长的,索性今天 就先使用起来,之后再来搞懂它们吧。

之前一直用的是 i3 和 urxvt 的组合,倒也顺畅,只是有一点不太舒服,就是 firefox 在 i3 的 fullscreen mode 下会自动切换成全屏(相当于按了 F11),无法取消,这样带 来的一个问题就是,每次选择 tab 页都会有一个显示和隐藏的过渡特效,会占用一定的时 间,导致我的操作被阻塞,非常不爽。

而之前在网上看到有人用 dwm 和 st 的方案,但一直也只是心里痒痒,今天终于迈出了第 一步,发现也没有想象中的那么难。

接下来结合一天的体验,简单对 dwm & st 与 i3 & urxvt 进行比较。

首先是 dwm 与 i3 。最直观的感受就是快捷键,虽然我已经将 dwm 的 Modkey 设置成了 与 i3 一样的 win 键,但今天老是习惯性地将一些操作按成 i3 的快键键,尤其是在切换 窗口的时候(没办法,已经形成肌肉记忆,只能慢慢改了)。还有一点比较突出的就是 dwm 和 i3 的窗口管理模式,在 dwm 中是一个 master 配合任意多个 stack 的模式,新 建的窗口替换当前的 master,并将当前 master 置入 stack 中,基本上就是左边一个 master 窗口,右边 n 个 stack 窗口,不能对窗口进行任意布局(例如:左边 m 个窗口 ,右边 m 个窗口,甚至对每个窗口再进行切分),这一点的话还是 i3 比较好。最后一点 ,因为想使屏幕最大化地被利用,在 i3 中我是将 status bar 默认隐藏起来的,每次按 win 键其会自动呼出,但在 dwm 中不知是否也可以这样配置。总的来说,从 i3 切换到 dwm ,没有那么突兀,风格基本相同,毕竟都是 tiling window manager,但 dwm 相对 i3 来说功能更加简单且实用。

接下来是 st 与 urxvt。目前 st 下无法切换输入法,看起来像是个 BUG,还需要再研究 。另外,原生的 st 缺少了一些小功能,例如:滚屏,打开链接等,不过好在它的定制化 程度比较高,网上有很多魔改的 patch,花些时间折腾一下,这些功能都可以实现。

总的来说,dwm & st 这两个软件,代码简单,功能强大,非常符合我的审美,所以接下来 打算将整个工作流迁移到 dwm & st,当然这肯定是一个漫长的过程,又为自己挖了个坑呢 ,呵呵。

Updated 2021/05/13

更新下 dwm & st 一年多的使用情况。

  • st 输入法的问题,我自己(瞎)改了代码里面的 BUG 解决了,不过后来释出了官方修 复。

  • st 的滚屏的功能有官方开发的 scroll 工 具可以实现,不过不太好用。所以我一般还是通过 cmd | less 或者 tmux 来实现 滚屏。

  • 其它的功能没怎么折腾,一方面看不上别人写的 patch,另一方面自己 gtk, x11 方面 水平不够折腾不起来,所以秉承着够用就行,能忍则忍的原则,继续这么用着,呵呵。

Thanks for reading :)