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

大佬,提个bug,这个补丁会导致 eaf-wm-focus-fix-wms 中的桌面管理器无法移动鼠标。只要把鼠标滑到 eaf-browser 的范围内,就会重新定位到右下角

更新吧, 已经修复了。

1 个赞

刚刚又试了一下,貌似问题还存在?

还得辛苦大佬了 :grin:

再更新试一下吧, 我不用 Tile Window Manager, 盲修的。

这次好了,大佬效率就是高,感谢感谢 :smiling_face_with_three_hearts:

今天写了一个补丁, 现在EAF浏览器, 可以按住 Ctrl 移动鼠标, 自动获取光标处的单词并翻译了。

感谢 ChatGPT 帮我提供获取光标处单词的原理函数。

3 个赞

请问现在安装Gnome版本的Manjaro是不是体验EAF的较好方式呀?

xwayland,不要用 wayland native

1 个赞

eaf-org-previewer 打开org文件预览,似乎是暗黑模式的。可能和我的主题有关。

参考readme.md, 发现 M-d toggle_dark_mode,但是按下去M-d没有反应。

提issue吧, 最近忙, 有空的时候我看看。

1 个赞

给 EAF Browser 增加了沉静式双语翻译, 以后在Emacs里面也可以快速研究英文资料啦。

更新 EAF, 打开浏览器, 查看英文网站, 然后按 Alt + i 就可以体验了。

6 个赞

EAF Browser 通过 JavaScript 的 document.activeElement 来探测网页是否正在输入, 在输入状态则发送字符事件给网页, 如果在非输入状态(比如浏览Google)则进入单按键命令模式(类似 vimium)。

但是EAF Browser这种探测方法在以下几个地方会失效:

  1. 网站安全防护, 比如QQ邮箱登录时 activeElement 会失效
  2. 云服务后台, 比如 Google 云里用 iframe 来嵌入终端模拟器
  3. 各种带 overlay 的网站, 比如 Reddit 登录的时候会有一个隐藏悬浮窗口来抢夺 activeElement

为了应对这些非标准的应用场景, 今天增加了一个 switch_to_input_mode 命令(Alt + z), 强制 EAF Browser进行输入模式。

每天都在用沉浸式翻译插件阅读外文材料,怎么从零写一个呢?

下面这篇文章以EAF Browser代码为例, 分享沉浸式双语翻译插件的原理, 核心代码只有90多行。

https://manateelazycat.github.io/emacs/eaf/2023/05/06/the-principle-of-immersive-translation.html

今天晚上在看 EAF Browser 一个 issue 时, 研究了一下为什么 QtWebEngine 可以播放 YouTube 视频而无法播放 B 站视频:

  1. QtWebEngine 默认使用 Chromium 内核, Chromium 内核并不能像 Chrome 那样默认就带一些视频的解码器, 比如 MP4
  2. Qt 默认编译没有带 -webengine-proprietary-codecs 参数, 所以编译出来的 QtWebEngine 没法利用 Linux 下 FFmpeg 的视频解码能力
  3. Qt 本身没法解码 HTML5 视频, 基于 Qt 开发的 PyQt 当然也不行

如果只是根据上面的信息, 最直接的方法就是自己编译 Qt 和 PyQt, 但是 Qt、 Chromium 本身都是大部头, 单机编译没有几天的时间根本编译不完, 这还不算修复编译报错后反复编译的时间。

作为 Arch 粉丝, 最简单的方法就是问肥猫大佬, 大佬告诉我三个重要信息:

  1. Arch 里 KDE 的基于 qt5-webengine 的 aura-browser 和基于 pyqt5-webengine 的 qutebrowser, 都能正常放 B 站视频
  2. Arch 里的 Qt 默认就开了 proprietary_codecs 编译参数: svntogit-packages/PKGBUILD at packages/qt6-webengine · archlinux/svntogit-packages · GitHub
  3. pip 安装 PyQt 是不靠谱的, 因为不确定是怎么实现的, 因为没人保证

知道这些信息就简单了, 就是删除 pip 安装的 PyQt6, 用 pacman 来安装 Qt6 和 PyQt6:

rm -rf ~/.local/lib/python3.10/site-packages/PyQt6*
sudo rm -rf /usr/lib/python3.10/site-packages/PyQt6*
sudo pacman -S python-pyqt6-webengine python-pyqt6 python-pyqt6-sip

为什么要执行前面两个删除命令呢? 因为如果你已经用 pip 安装了 PyQt 再用 pacman 安装后, PyQt6 目录下的文件会被两个工具同时写入, 导致 PyQt 程序启动时各种报错。

最后

给 EAF 打了一个补丁, EAF 在 Arch 下会自动用 pacman 安装 PyQt 来解决 EAF Browser 无法看 B 站视频的问题。 其他 Linux 发行版要确保 Qt 编译参数里面有 -webengine-proprietary-codecs , 同时保证软件仓库里的 PyQt 和 Qt 版本是匹配的。

当然, 如果你用的 Linux 发行版不支持这些, 最简单的方法就是换 Arch Linux 吧。 :wink:

7 个赞

在使用 chrome 的 zotero 插件的时候,遇到好的博客可以截取 snapshot 保存到后台运行的zotero 中。

实际使用的时候发现这个功能很好,因为 zotero 插件对于网页的截取效果很好。几乎是原汁原味地保留了网页的内容。

不知道 eaf-browser 能否实现这一点。期待有一天也能够在 Emacs 中搞定这件事。

已经有这样的插件了呀,你看一下这个浏览器的快捷键

音乐播放器最近有一个bug,暂停音乐后会改变播放速度,最后调试发现是 vue-audio-visual 这个组件的问题。

换成 audioMotion-analyzer 这个组件后,修复了播放速度改变的问题, 同时发现 audioMotion-analyzer 的效果和性能都要好很多。

3 个赞

SCHeng 大佬加的歌词界面, 太牛逼了。

6 个赞

今天修复了好几个偶然崩溃的问题, 建议大家都更新一下 EAF 。

这是使用eaf-open-browser打开网页的效果,请问这是正常的吗?之前没使用过EAF,不是很清楚。 使用 emacs -Q 测试了,也是一样。 我使用的 wm 是 hyprland-nvidia-hidpi-git,编译 Emacs 时开启了 pgtk,版本信息是 30.05 。以下是 EAF 的配置信息。

(add-to-list 'load-path "~/.emacs.d/site-lisp/emacs-application-framework")
(load "~/.emacs.d/site-lisp/Autoloads/eaf-loaddefs.el" nil t)  ;; Autoload
(require 'eaf)
;; (require 'eaf-browser)
(with-eval-after-load 'eaf-browser
  (setq eaf-browser-continue-where-left-off t
        eaf-browser-enable-adblocker t
        browse-url-browser-function 'eaf-open-browser
        eaf-browser-blank-page-url "https://www.baidu.com")
  (defalias 'browse-web #'eaf-open-browser))