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

可以哇,qt都有记录

应该是api,调用方式我没改,还是原来的。

单纯在Windows上面使用,不跨系统调用eaf的话效果好一些,应该和Linux上面是一样的。我觉得时间花销跟Linux上面比起来多在了要通过python获取Emacs的hwnd。这个ID本来应该是Emacs自己获取的,会更快一点。我把这个时间我降到了几十毫秒。一时也没想到是么更好的办法了。

现在我用起来其实问题已经解决得差不多了。就想着既然闪屏避免不了,做点小的微调,提高一下用户体验。统一eaf buffer和app的背景、关掉eaf buffer的光标,上面提到的延迟和闪屏应该就不是问题了。

闪屏的问题似乎在Linux上也存在吧,我从eaf readme上面的gif动画里面也看到了屏幕闪烁的问题。目前这个reparent方案还没办法彻底解决闪烁的问题?

linux不会闪,那是gif录制软件的问题

我好久没遇到这个问题了,包括emacsconf当时的录屏也没闪

不闪就好。我这边主要是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 个赞