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

上面这个是全屏的,这个是缩小的

有人遇到 eaf 里没法使用快捷键的问题吗?在 wayland 下 (hyprland),Emacs28/29.

我一个星期前写过对 Wayland 支持的补丁, 你按键没法输入的问题需要用 emacs -Q 测试一下。

eaf 的 wayland 支持不是依赖 GNOME Shell 插件的吗?Hyprland 基于 wlroots,用不了 GNOME 插件。

周末主要对 EAF 的各应用的 npm 依赖升级到最新, 主要包括 git, temrinal 和 music-player 三个应用。

终端应用修复上下滚屏的bug, 横向对比 libvterm, 性能比 libvterm 强, 同时没有 libvterm 强对接 buffer 的当前行不断闪烁的问题(可能是我玩 libvterm 哪里配置不对)

音乐播放器主要是通过 python 来解析 svg 文件的颜色, 这样就可以去掉 vue-svg-icon 这个插件, 修复以前升级 npm 版本导致图标无法显示的bug, 现在又可以在写代码的时候快乐听音乐了。

hyprland 我没用过, 对, 我上周主要写一个 Gnome Shell 插件, 通过 gjs 来实时获取焦点窗口和Emacs的像素大小。

那些非Gnome3的Wayland的环境, 估计都要用我gjs类似的技术来获取焦点窗口和Emacs大小, 估计要一个一个窗口管理器的适配, 不过好的是, 都不用 Gnome3 官方窗口管理器了, 好 hacking.

吐槽一下: Wayland 的开发者应该开放这些窗口属性API, 安全考虑没问题,但是要通过一个接口允许用户调用, 而不是不准用, 导致很多 X11 应用没法迁移。

目前 EAF 只通过 Gnome-Shell 支持 Gnome3 环境。

主要是

emacs-application-framework/extension.js at c23b6b22c2027f755d7c5a2024b0b5efb41f1e8a · emacs-eaf/emacs-application-framework · GitHub 接口来获取 Gnome3 激活窗口

emacs-application-framework/extension.js at c23b6b22c2027f755d7c5a2024b0b5efb41f1e8a · emacs-eaf/emacs-application-framework · GitHub 接口来获取Emacs精确的坐标

如果你全屏用Emacs, 其实第二个接口都用不上, 如果只是没法输入, 估计是焦点的原因, 请确定 wmctrl 是否安装, 具体代码在 emacs-application-framework/eaf.el at c23b6b22c2027f755d7c5a2024b0b5efb41f1e8a · emacs-eaf/emacs-application-framework · GitHub

当然 wmtrl 你也有, 很有可能是小众窗口管理器的焦点配置不对导致 Emacs 没法获取键盘焦点, 只要Emacs获取键盘焦点, EAF应用就可以响应用户输入。

谢谢,有空我研究一下

大概明白了,鼠标在底部的时候确实可以正常使用按键。

不能使用按键的情况是在 eaf 里移动了鼠标后,这个时候可以手动把鼠标移到底部;或者使用窗口管理器命令重新 focus Emacs 窗口。

在 eaf-wm-focus-fix-wms 添加 wlroots wm 后,eaf 已经可以在 hyprland 上正常使用了,感谢懒猫~

3 个赞

感谢大佬提供补丁, Enjoy EAF :wink:

今天给 google 页面增加自动翻页的功能, 一直按空格就可以持续翻页。

bing.combaidu.com 也加了自动翻页的功能。

今天加了一个新的命令 render_by_eww Add new command render_by_eww · emacs-eaf/eaf-browser@0f8b129 · GitHub

在EAF浏览器按 N 快捷键, 即可用 eww 来渲染页面, 效果如下:

这个和直接用 eww-open-file/url 的区别是, EAF执行 render_by_eww 命令之前, 先用 Mozilla 的 Readability.js 的这个JavaScript库, 先把浏览器中间文本内容提取出来, 然后再生成 html 内容传递给 eww 打开。

这样做的好处是:

  1. eww 对 CSS 的支持很差, 直接打开目标文件, 会在顶部出现太多网页控件元素, 并不是大家阅读网页主要内容所关心的
  2. 转换成 eww 渲染后, 可以直接用 Emacs 处理文本, 同时套用很多翻译插件(比如 popweb) 学习英文

正常浏览的时候就用 EAF Browser 来看, 需要提取信息或翻译时就用 render_by_eww 来处理

2 个赞

可能是因为 QtWidgets winId 会在运行时改变?

几年前的问题了,现在已经用qmediaplayer重写了。

eaf browser 不能登陆google帐户,google提示不给登,,,哈

user agent 升级吧。

Google就是这么奇怪,强制用UA逼你升级浏览器,其实就是换个高版本的UA就好了。

macOS的用户可以升级了, 社区大牛发了一个补丁 Improved macOS behavior. (#1035) · emacs-eaf/emacs-application-framework@abb5775 · GitHub

已经解决 mac 下 Emacs 移动后, EAF窗口不会跟着移动的问题, 现在也可以在任意工作区全屏使用了。

3 个赞

在 M1 上还是只能在 Desktop 选区将Emacs设置成maximized使用,不能使用fullscreen,不能移动 Emacs 到其他的工作区使用。

更新后解决的一个问题是当使用emacsclient从外部打开文件时,不会再跳转到后台。之前使用emacsclient打开文件后需要切到 emacs 使用switch-to-buffer切到最近的一个buffer。