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

现在只是写一个框架, 给大家展现一种未来的可能性.

原理上也是可以在别的操作系统上跑的, 但是 windows/mac 本地窗口开发都不熟悉.

所以现在先专注开发核心框架, 任何补丁都是欢迎的.

还有 pymupdf 这种东西, 看着不错啊, 我去玩玩.

一般只读模式的插件, 我比较喜欢用 hjkl , 这样比较懒.

webkit 那个主要是 pypi 上面没有 WebKit, 只有 archlinux 源里才有。

但是 QtWebEngine 有各种bug, 等切换到 QtWebEngine 以后, 基本所有依赖都可以直接 pypi 进行安装。 那时候就很简单了。

现在还要等一等。

PyQt5以后会主推WebEngine,毕竟webkit已经被舍弃了。但现在还是有一些项目继续使用webkit,比如zeal。所以现在是个麻烦时期。。。

能用mupdf的话就好了,毕竟那个python-poppler-qt5不更新了,以后Qt升级,大概率翻车。

WebEngine 在本地打开链接死活弄不好。

mupdf 我正在移植。

IIRC, you don’t use evil?

不喜欢用, 我有我自己写的 one-key.el 就足矣。

evil的问题是被evil调教过后再用别的编辑方式就不太舒服了

已经用 mupdf 替换 poppler 重写 pdfviewer 了: Use mupdf instead poppler re-implement pdf viewer. · emacs-eaf/emacs-application-framework@bb5983b · GitHub

现在只用做 sudo pacman -S python-xlib python-pyqt5 python-pymediainfo PyMuPDF 就可以安装全部依赖了,不用自己编译。

等我把 QWebEngine 折腾好, 所有依赖都可以用 pip 搞定。

3 个赞

mupdf 果然比 poppler 快很多,现在的速度应该是 emacs 里面渲染性能最高的 pdf 阅读器了。

添加了一个补丁把 mupdf 支持的格式都加上了, 大家可以实验一下 epub 电子书能不能阅读? :wink:

大佬好速度,厉害厉害:+1::+1::+1:

所有的GUI都是通的,一通百通。

1 个赞

到目前为止,我还没有试用,guixsd的 pyqt有点问题,老是编译不了。。。。汗

加了个框架接口: Add interfaces 'send_input_message' and 'handle_input_message' in fra… · emacs-eaf/emacs-application-framework@0c36b63 · GitHub

Python 调用 send_input_message 信号,就可以调用 minibuffer 接受用户输入, 输入以后调用 python 的 handle_input_message 接口来处理用户的输入。

mupdf 是可以做快速搜索的, 哪天有空的时候做一个。

其实,你了解 poppler 和 mupdf 的API, 就会知道不会翻车,因为这两个库都是直接和GUI库不相关的,只是加载 pdf 文件到 document, 然后通过 page 输出独立的 Image 数据,都需要通过 Image 转换成 Qt 的 QPixmap 然后进行渲染。

Qt升级不会出问题的。

做了一个动态导入,防止某些插件的依赖不足导致所有的组件都没法使用: Import application plugin in runtime, not start import eaf.py · emacs-eaf/emacs-application-framework@0d934dd · GitHub

我一开始也是这么认为的。。。

可是,下午的时候,升级sip到4.19.11,升级PyQt5到5.11.2,都是手动编译的,参考了archlinux官方的PKGBUILD。

然后接着重新安装python-poppler-qt5,即先完全卸载,然后再 pip install git+https://github.com/blbalba/blabla.git 发现就报错了。报错信息是关于sip版本号,QDom,QDocument之类的(具体名字记不清了),手动改了python-poppler-qt5的里面几个.sip文件才最终编译成功,用from popplerqt5 import Poppler简单测试了下,也没问题。

后来看到你切换到mupdf,我就把这些给卸载了。