超级棒!之前就看过你的webkit浏览器,不知道这种框架效率如何?
1 个赞
webkit-mode 那个当时只是实验想法。
今天这个Emacs Application Framework是一个框架,可以支持任何程序的编写,不仅仅是浏览器。
主要Python-Xlib里面对 XComposite 的支持不好,所以窗口内容同步是在 XClient 做的,但是效率已经非常非常高了,一般用户察觉不出来。
3 个赞
肯定会有人问这个问题,我先问了算了,请问这个和 exwm 的主要区别是什么?
exwm 只是一个 Tile WM, 把其他程序平铺进来,而且必须要求用户使用 exwm 窗口管理器。
Emacs Application Framework 是按照Emacs的 Window/Buffer 窗口设计原理来做的图形混合器,有以下优点:
- 开发的PyQt程序可以任意分屏,但是buffer只有一个,想象一下Emacs分屏一个视频网页,只是View变成两份,但是后台的QWebView只有一份,最大化的和Emacs的其他插件集成
- 所有插件都是由Emacs控制的,意味着可以像传统Elisp插件那样对PyQt程序进行操作
- 可以通过DBus IPC来进行编程式的扩展, Elisp <-> Python双方可以互相调用,而不仅仅使 Tile WM 那种只是把窗口弄在一起
- 这个框架使非侵入式的,不论你使用的是 Tile WM还是Gnome/KDE/DDE, 都可以享受集成的功能,不需要强迫用户学习 Tile WM 的配置和用法
最终达到的效果是,一批PyQt程序都是按照Emacs的窗口管理风格集成的,达到最高的效率和专注,不被那些鼠标导向设计的普通应用程序打断。
14 个赞
刚提的需求就被你实现了,图片浏览,视频播放,一直期待的功能,我先看下
只是实现一个框架和基本的功能,希望大家一起贡献,我一个人力量太小。
1 个赞
大佬就是大佬!
想知道既然是pyqt是不是也能够在其他平台上运行呢?兼容需要特殊处理吗?还是只要装pyqt和emacs都可以直接用?
任意支持DBus的Emacs版本加上PyQt5就可以了。
现在只是0.1版本,所以兼容性没有怎么考虑,一般兼容性都是操作系统路径的问题,发现了也好修复。
1 个赞
Windows平台估计要windows emacser 帮助写补丁,我从来不用windows
1 个赞
很棒啊!个人觉得如果可以同时支持elisp和python对推广有很大用处。要知道,emacs离不开lisp。
1 个赞
Python 开发 Qt 插件,Emacs Application Framework 的Elisp部分自动集成,几乎不需要开发者了解Elisp编程。
1 个赞
et2010
14
可以在 reddit emacs 上推广一下,让更多人知道,如果能吸引大牛加入,应该能加快开发进程。
et2010
17
能不能将 jupyter 绘制的图形的 qt 窗口直接弹出到 emacs 中呢?如果能的话就太赞了
1 个赞
因为Emacs有 Window/Buffer 的概念,要支持Emacs这种设计,只有两种方法:
1、像Emacs Application Framework 设计框架,优点是完美集成,缺点是每个Python程序都要自己写
2、利用 Xlib XComposite 扩展专门为Emacs开发一个类似 Emacs Application Framework 架构的 X 窗口管理器,理论上可以嵌入任何程序,比如 chrome
第二条路需要写一个完整的窗口管理器,理论上可行,工作量太大,而且不是所有人都喜欢这种专用的窗口管理器。
只不过你的问题,可以变成 jupyter 保存图形到文件,然后开发一个 EAF 插件,读取图片并嵌入Emacs
1 个赞
其实昨天你们讨论的sdcv.el的问题,可以写一个新的QtWebKit程序,读取有道词典的API, 然后弹出,光标移动后消失。
取词部分用 Elisp 写,窗口和网络页面渲染用 Python Qt 写
1 个赞
前几天试用xwidget, 窗口闪烁的厉害, 随便按一些按键就容易闪烁, 而且窗口内容偶尔会消失, 只剩下emacs背景色, 不知道这个有没有这个问题