这几天看到很多人在Reddit讨论EAF vs EXWM.
今天重写更新了README文档,把和EXWM的区别简单易懂的写出来。
- EAF和EXWM的共同点都是:“提升Emacs和别的程序的协作效率“
- EXWM本身是一个X11窗口管理器,通过X11协议来控制Emacs和其他程序,但是EXWM只是管理其他程序,但是它并不会修改别的程序,比如它没法修改Chrome, PDF阅读器等GUI程序内在的行为
- EAF本身不是一个窗口管理器,EAF只是依赖Emacs自身的窗口管理功能显示自己
- EAF的目标是通过PyQt创造新的应用来扩展Emacs的多媒体能力,从Emacs本身的Buffer/Mode设计上看, 它和你平常用的 xx-mode 插件没有啥区别,只是它用Qt来绘制内容,而不是Emacs自身的文本库来绘制内容
- EAF通过造轮子的方式,把大多数程序员常用的应用写出来以后,达到Live in Emacs的最终目标
- 基于EAF的架构设计,我们可以通过Elisp来控制Python,JavaScript和其他命令行工具,实现多语言扩展Emacs的编程模型,在坚持Emacs黑客文化和Elisp社区兼容性的前提下,让Emacs的多媒体能力能够跟上时代的发展
EAF和EXWM在设计上是两个完全不同的项目,所以请大家多多学习X11和Qt的区别,理解技术的本质,避免无意义的比较和争论。
14 个赞
我认为主要是两者能做很多类似的事情,所以才有很多人来比较
同时因为很多人不了解EAF和Tile WM到底有啥区别,导致大家在没有搞明白的时候,看着大家歪楼,觉得没有必要比较。
可能少了一个比较重要的点:EAF 和 EXWM (理论上)可以一起用。
可不可以集成 qtile (www.qtile.org),exwm 作为窗口管理很多地方受emacs的限制,比如虚拟机就支持不好,有些软件也不支持。EAF感觉要强大一些,能支持窗口管理就完美啦。
1 个赞
很多时候是平铺窗口管理器本身对焦点的处理不够完善导致的。
正确的方式是,平铺窗口管理器完善X11协议去支持这些软件,而不是EAF反过来去支持窗口管理器。
不想解释了,主要大多数开发者根本就搞不懂什么是X11协议,什么是窗口管理器,什么是XReparent。
2 个赞
EAF能不能做一个窗口管理器呢?感觉exwm表明用户需要一个基于emacs的窗口管理器
EXWM这种强迫用户换窗口管理器的做法,一旦某个软件的X11细节EXWM支持不了,用户就没法用特定的软件。
而EAF没有这种问题,EAF专注程序员用的大部分效率软件,剩余的所有软件都可以在KDE里面运行。
我不会做窗口管理器,EXWM能做的EAF都可以,而且KDE在所有软件的兼容性上有保障,偶尔用一下鼠标,不逼迫用户。
1 个赞
o2o
10
之前粗略得看了eaf的原理图。理论上eaf是通过dbus和程序进行通信,应该是任何语言编写并且支持dbus的程序,都可以用eaf玩吧?
QiangF
12
感觉像 exwm 这种基于 emacs 的窗口管理器的好处在于:
-
里里外外共享一个输入法 pyim ,如果你用rime, 如果 emacs 单独用一个 rime, 其他非 emacs 软件用另一个 rime, 老是要同步很别扭
-
省快捷键,如一个 C-x b 切换窗口 (buffer),所有软件窗口都一样, emacs 里面的窗口包如 ace-window 也能用,
这种一统天下的感觉非常好。
怎么可能统一天下?你应用内部的按键呢?
你只解决了切换到应用的快捷键,这个任何窗口管理器都可以做得到。
但是应用之间的行为没法统一,这才是真正的效率差别。
1 个赞
x11? wayland是不是就用不了? 之前sway下试了下PDF, 新开了窗口, 没有在Emacs 窗口下感觉