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

不闪就好。我这边主要是Emacs没能直接获取xserver的window handle(hwnd)。我现在的获取方式不够高效。这个问题解决了,应该也不会闪。我这个情况太特殊了,我再看看。

顺便报个issue吧。eaf.el里面197行的(setq-local cursor-type nil)没起效,仍然能看到光标。我在stackoverflow上面看到这似乎是evil造成的(我用evil)。不用evil的用户应该没这个问题。可以用internal-show-cursor代替。

刚才用了一下helm-posframe,很好用。可是被eaf给遮住了。 :joy:有人遇到这种情况吗?

更新

在论坛里搜索了一下,原来是个老问题。也就是说,不能用helm-posframe和eaf共用?

用snails,同样配方,更轻量,fd backend尤其好用

嗯。我也意识到应该这么做了。我之前提到的屏幕闪烁问题就是helm、which key这些插件频繁改变窗口布局造成的。既然posframe这样的方案用不了,那就只能切换到snails。刚好我也被helm的卡顿、启动速度问题折磨了那么久,这下可以换下口味了。

我这两天优化了window id的获取方法,应该达到或者超过了Linux上面的获取xid的速度,但是仍然有闪烁。现在只能归结到eaf-monitor-configuration-change太耗时了。我这里有些时候会莫名其妙reparent失败,eaf先出现再隐藏,所以我会在chang_title之前运行一次eaf-monitor-configuration-change,强制reparent一次。这也加剧了闪烁。

当加入 darkreader.js 这个插件时,最开始会发生加载页面的过程中,会出现白色闪烁的问题,为了避免这个问题,EAF会在加载过程中对页面顶部绘制一个蒙板避免闪烁

但是又引入新的问题,很多Javascript库向下滚动的时候也会触发URL变化(比如Emacs China和那种左边带书签导航的页面),向下滚动就会导致EAF反复绘制蒙板,也会影响用户体验。

今天这个补丁彻底修复 darkreader.js 在页面加载中闪烁白色背景的问题,同时也去掉EAF的蒙板workaround,整个体验就和Chrome + Darkreader.js插件的体验一模一样了。

更新后要执行一下 install-eaf.sh

4 个赞

每次打开 Emacs 之后 EAF 会自动调用 epc 生成一个 buffer,有时会误在那个 buffer 输入。
建议将其改为隐藏 buffer


因为就是一个小改动,所以就直接来这里回复了。

暗色模式可以在页面加载之后再打开或关闭吗?

可以,toggle_dark_mode

所有按键可以在 Home · emacs-eaf/emacs-application-framework Wiki · GitHub 看到

1 个赞

最新版修正了4k屏 + Gnome3/Wayland缩放的问题,同时添加了硬件加速的参数,EAF网页会全部用GPU渲染。

建议Gnome3/Wayland的用户升级。

GPU渲染在Windows平台可用吗?

更新

我看了下源码,看样子是支持的。

有没有人遇到像我这样,在windows下,忽然字体就没显示出来,刚刚还好好的。

今天开始打开网页还是好好的,然后页面的字体就变成了全部白色。打开黑暗模式就可以看到。

看来是最新的硬件加速补丁引起的,Windows平台暂时禁用GPU硬件加速,Linux默认使用GPU硬件加速。

今天基于Mozilla的 readability.js 这个库写了一个补丁 Add reader mode. · emacs-eaf/emacs-application-framework@ae64dda · GitHub

按逗号这个快捷键,可以直接把EAF浏览器的网页转换成纯文本的方式进行阅读(没有复杂UI、广告和图片干扰)

相当于支持基本样式和表格的W3m

更新EAF需要在根目录执行 npm install

1 个赞

Add export_text function. · emacs-eaf/emacs-application-framework@262c9c8 · GitHub 增加了 export_text 命令。

可以快速把网页的文本拷贝出来供Emacs其他模块使用,比如 Org-Mode.

1 个赞

最新版EAF增加了一个vue-demo的app,方便大家基于Vue.js给Emacs开发多媒体应用。

更新EAF后,在根目录执行 ./install-eaf.sh 脚本,EAF会自动安装Vue依赖并自动运行npm run build来构建Vue应用。

安装完成后使用 eaf-open-vue-demo命令来打开Vue演示应用。

目前为止,EAF具备的协同开发能力有:

  1. Elisp <-> EPC <-> Python 之间互相调用,通过PyQt5来利用Python和Qt5的生态软件包
  2. Elisp <-> EAF Browser <-> JavaScript 之间互相调用,通过浏览器来利用NodeJS生态软件包
  3. Elisp <-> EAF Browser <-> Vue.js 之间互相调用,通过浏览器来利用Vue.js生态软件包

EAF现在可以联合Python和JavaScript两种编程语言进行协同编程,同时可以通过Qt5、NodeJS、Vue.js三种方式来扩展Emacs的多媒体能力,欢迎大家提交新的应用!

7 个赞

刚才在Windows 10 上安装 EAF,安装依赖很方便。但是在 预览 Markdown buffer 时,编辑的内容更新 eaf buffer 时会失去焦点。不知道有人遇到同样的问题吗?ALT+Tab 可以恢复。

@yqu212 帮忙打个补丁?

我没看明白他是怎么失焦的。我私下跟他沟通看看。

@yqu212 是这样的,在Emacs 中打开一个 Markdown 文件,然后执行 eaf-open-this-buffer,这时会打开一个buffer 预览当前的 Markdown 文件。只要我一编辑 Markdown 文件,C-x,C-s 保存, 就会失去焦点。