从今天开始,Emacs里面可以运行任何你想要的程序 (Linux & Windows & Mac & BSD)

Emacs 29 无法识别 frame

我在manjaro xfce和i3上面都一切正常。不过emacs用的是archlinuxcn的emacs-git包,是打开pgtk之前的版本。现在的版本我没试过,不得而知。

什么叫无法识别 frame ?

Symbol’s value as variable is void: frame

不好意思,试一下 (frame-parameter nil 'window-id)

“94312896905888”

暂时不清楚 Emacs29 的情况, Emacs29 在我电脑上各种卡死, strace 追踪的话电脑就完全没反应了,再过段时间我再看, 你先用 Emacs 27 吧。

2 个赞

估计是你开了 pgtk

1 个赞

我下载的是emacs-git,是开启pgtk的版本,有什么方法手动关上呢

自己编译Еmacs

如果是你用yourt或者paru安装的emacs-git,去~/.cache/yourt或者~/.cache/paru/clone下面找emacs-git的目录,修改emacs-git目录里面的PKGBUILD文件,把PGTK= "yes"这一行的"yes"去掉,然后执行makepkg -si重新编译就行。

你可以把对PGTK="yes"的修改commit一下,这样yourt或者paru在下次升级emacs-git的PKGBUILD文件的时候,会自动merge你对PKGBUILD文件的修改。

1 个赞

通过补丁EAF正式支持Wayland native环境, 以前EAF只支持XWayland, 我已经在Emacs 29环境下测试过了。

在Wayland native环境下,EAF会采取和macOS同等的策略,Emacs获得焦点时显示EAF窗口,Emacs失去焦点时隐藏EAF窗口,以绕过Wayland native下窗口管理器不允许XReparent这种跨进程粘贴技术。

目前还有点小问题是,Wayland native环境下放弃XReparent跨进程粘贴技术后,EAF窗口的坐标只有在Emacs全屏的时候是正常的,原因是我还没有找到怎么获取Emacs窗口在屏幕范围的绝对坐标,找到对应的方法就可以修复这个小问题。

更新到EAF最新版, emacs29 pgtk版本也可以直接使用了,当然 emacs27 XWayland 也可以使用。

1 个赞

最新版emacs29 开了pgtk后,在dwm上 打开eaf 页面时会打开一个新的dwm窗口,而不是在原dwm窗口打开eaf页面。这个有什么方法解决么

eaf buffer 的输出是

(python3:565024): Gtk-e[1;33mWARNINGe[0m **: e[34m13:57:34.000e[0m: Unable to locate theme engine in module_path: "murrine",
QXcbConnection: XCB error: 3 (BadWindow), sequence: 589, resource id: -1430535584, major code: 7 (ReparentWindow), minor code: 0
QXcbConnection: XCB error: 3 (BadWindow), sequence: 663, resource id: -1430535584, major code: 7 (ReparentWindow), minor code: 0
QXcbConnection: XCB error: 3 (BadWindow), sequence: 715, resource id: -1430535584, major code: 7 (ReparentWindow), minor code: 0
[EAF] Browser https://www.google.com/ loading time: 0.7739334106445312s
QXcbConnection: XCB error: 3 (BadWindow), sequence: 893, resource id: -1430535584, major code: 7 (ReparentWindow), minor code: 0
QXcbConnection: XCB error: 3 (BadWindow), sequence: 1016, resource id: -1430535584, major code: 7 (ReparentWindow), minor code: 0
QXcbConnection: XCB error: 3 (BadWindow), sequence: 1151, resource id: -1430535584, major code: 7 (ReparentWindow), minor code: 0

dwm应该是x11窗口管理器,x11窗口管理器就不要用pgtk的版本吧。

不晓得为啥emacs主分支要默认pgtk,还有很多用户不是wayland环境。

那我还是自己编译emacs,去掉pgtk好了

嗯,目前只能自己编译了

主分支没有默认 pgtk 吧

默认了,我这边arch确认了,装了就是pgtk版本,emacs29 git版本