CLFSWM -- 你的下一个 Lisp 桌面管理器

我现在用了一会 Sawfish ,但是觉得作为一个单独的桌面管理器使用 Sawfish 还是欠缺点好看的功能,比如平铺窗口,透明特效,Exposé (OS X 四个手指向上扫出现的界面)

然后我从 Sawfish Wiki 上面看到了 CLFSWM。

它有相当独特的窗口概念,默认一个全屏的 root frame ,所有窗口动态生成,形成一个树状结构,一个窗口可以同时在多个 frame 出现,这样就不需要 workspace 和 tab 功能。

全部使用 Common Lisp 写成,完全可定义。特效可以通过复合 xcompmgr 实现。可以只用键盘或只用鼠标操作。

教程也很丰富。可以在主页上找到。

https://common-lisp.net/project/clfswm/#screenshot

6 个赞

秀一下。

透明化以后的效果。

1 个赞

只是看这个项目的changelog,这个项目2012年之后,就维护不积极了

讲道理,xterm 早就宣布不维护了,照样不少发行版默认预装,开发活跃程度并不能直接代表能不能用。我一直都是先用了再说。

@LdBeth 你可以写文章介绍下,科普下

我说的不再维护,主要是考虑到以下问题

1 这个东西出来很长时间了,一直没有火起来,也算是事实证明,其价值,推广,发展不是很乐观

2 2012就不再发布新的版本,现在再用,随着各个linux发行版本的变更,需要有不少的适配工作.对使用者来说,是个挑战,没有积极的开发,缺少社区支持,这个工作量会很大.

3 归根到底,还是我自己的技术水平有限,担心自己搞不定.linux太复杂,从最初的原始ios,然后按照网上的说明设置,到能用,自己做了操作,没有能力去理解,学习,背后复杂的一套体系.

唔,第一点相当无奈,事实上讲 Linux 桌面本身不算流行,然后 Linux 桌面的主流也就是 GNOME 和 KDE,接下来从接受程度上才是各种小众和轻量的 DE 和捆绑的 WM,最后才轮到单独用的 WM。像是和 CLFSWM 设计上相似的 dwm 也算不上流行,不过好歹也是国内有人写过介绍的。由于 CL 不比 C 流行的因素,所以非常尴尬,但是好歹有个 STUMPWM 也是同样流行。和 CL 一样“臭名昭著”的 Haskell 写的 Xmonad 据说在性能上比 STUMPWM 还有一定优势。

说了这么多,归根到底我也不知道为什么 CLFSWM 不流行,就和我之前安利的 Wanderlust 邮件客户端一样,明明各个方面比 Gnus 强不少,就连现在比较流行的 mu4e 作者也曾经是它的用户,并因为觉得用不到那么多功能,以此为启发 写了 mu4e。但是用户,尤其是国内用户很少(我可以确定还是有几个人用过),中文说明几乎没有(我自己写了唯一的一份)。可能是宣传不到位吧,WL 是日本人写的,有很多编码相关的功能对日语用户很重要,但是对拉丁语系用户很多余,所以很少有英文用户总这个,而国内用户主要是根据英文资料来的,所以会忽视这个,而且它的很多功能都要自己摸索一下。

至于我为什么会开始用这个,其实我一开始知道的 CL 窗口管理器也就 STUMPWM,然而我用最新版本的 STUMPWM 启动以后完全无法识别按键,只能强制关机。然后我从 Sawfish 的 Wiki 上面看到了 CLFSWM ,各方面功能都胜出,本身也是基于 STUMPWM,我试了试,能正常使用,目前用了三天没有出现无法响应或者严重的性能问题,而且我也很喜欢那种源自 OS X 的 Exposé 功能。

至于 12 年以后没有更新的事情,你没有仔细读 ChangLog:

    	* ChangeLog are now reported in git history. 

最近一次更新是 9 个月前,而且是很小的改变量名。我觉得这是好事,代表它趋于稳定。

至于适配性,因为 Common Lisp 的特性,包括主要依赖的解释器仍在活跃开发,Common Lisp 语言标准很稳定,完全不用担心。按照 CL 开发者向来孤军作战的传统,维护其实不是难事。

Linux 复杂吗?我承认是的,然而它也是从简单到复杂的。你可以看看 suckless.org 的 Static Linux,它是个极简主义的操作系统,宗旨是用尽量少的代码,完全使用 C,完全静态链接,核心部分按照传统操作系统做精简设计,而不是现在日趋复杂的 systemd 和 udev 等服务,有助于从头开始了解一个系统。

至于介绍什么的,我可以考虑在×乎写个专栏

5 个赞

谢谢回复,我好好看下

感谢分享!我一直以为CL已经变成纯精神层面的东西了,然而看到sbcl等解释器还在持续更新。Wanderlust一直没找到合适的文档,gnus和mu4e又各有缺陷,没有一个好用的邮件客户端还是挺烦的……

CL 主要还是靠信仰和习惯持续下去的,毕竟是比较老派的语言标准,优势对于其他语言也不能说明显。想学函数式出门右转找 Haskell,想搞网络左转 Clojure,搞 DSL 上天整 Racket。留下来的主要是被语言本身的魅力所吸引的。

文档问题,除了自带的内容有限的手册,我主要是靠读代码和看 docstring。不过它用了不少面向对象结构,而且用的实现还不是比较常见的 eieio.el。 你应该看过我写的那篇随记吧。有了这篇结合自带手册基本上可以正常用起来了。

有疑问可以随时私信我或者在论坛发贴,有时候我也会去看 GitHub issue。

嗯,这篇随记在看,还没看完……CL真的是完全靠信仰,国内Clojure也发展不起来,而且感觉对Lisp的继承方面,语法之外的部分Scala甚至要比Clojure更完整一点。而且大概是因为Emacs-Lisp里含有Lisp的关系?感觉国内用Emacs的人都比较少,比如目前公司我知道的就只有三四个人。我下周抓紧把Wanderlust配置一下,有问题再请教您!

纯粹出于好奇,CLFSWM支持EAF (emacs application framework)吗?

eaf和窗口管理器没关系,支持x协议的都能用

谢谢。我想试试看。

@LdBeth 还有在用clfswm嘛?想入坑,不知道坑深不深。

用呗,我自己用得太顺手都不想改新功能了。

之前调研 tiling wm,stumpwm 也是启动不了,看了一圈,i3 最棒,其次 awesome。

em,但我其实不太想要纯 tiling,所以选了同时支持堆叠式的 CLFSWM

赞!这周周末就试试!可以换掉 dwm 了。

Sway也算一个不错的选择。

有没有鼠跟随功能? mouse follow focus