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


#435

了解,感谢说明,另外我最近在看xwidget是怎么实现的,发现你前面有评论过

能讲讲为什么Emacs X11的代码和架构不适合多媒体渲染吗?我发现emacs到现在还在使用一个非常老的图形库lwlib (一开始的开发公司Lucid都已经倒了),这两者之间有关系吗?


#436

图形渲染的要求:

  1. Cairo, Qt, Gtk 这些图形库可以自己绘制任意图像, 字体, 视频并处理输入法, 其中视频必须是可以GPU加速的, X11如果要做到这些, 几乎还要自己造类似Gtk/Qt的代码
  2. 多线程处理一定要好, 如果不支持多线程, 图形渲染就会把主线程卡主.

#437

那这样感觉Emacs要从自己本身去强化对GUI的支援根本无解…

就算第一点之后有办法用上完整的GTK, QT,可是第二点要让Emacs支持多线程感觉不太可能(Emacs 26说的多线程其实也只是随时在不同线程之间切换而已),我记得Emacs的buffer设计本身就会对实现多线程造成很大的困难(很早以前在EmacsWiki上看来的,不知道这个说法对不对)

如果要同时满足这两点除了从根本上重写Emacs的 window/buffer架构之外,感觉没有其他办法了。如果之后Wayland取代X11的话不知道那些开发Emacs的大老们有们有可能考虑重写这一部份 (但真的重写的话现在Melpa上的那堆插件估计就都不相容了)

话说学习X, Xlib的话有推荐的资料吗?


#438

x11的文档没有一个可以看的,都是api手册

只有自己写窗口管理器或者桌面环境才能真正学会x11


#439

O’Reilly 的 XLIB Programming Manual, X Window System user’s guide,会 Common Lisp 可以用 Common LISP X Interface


Wayland 对这个问題几于无用


#440

老王好像在这里推荐过


#441

刚刚看到这篇issue,里面说eaf用到很复杂的技术所以只能用在一般的WM上,没法用在tiling WM,请问具体上是因为一般的tiling WM缺少什么机制吗?

https://github.com/manateelazycat/emacs-application-framework/issues/47


#442

Titling WM 都是最小窗口管理器API的实现, Tiling WM最缺少的就是对窗口重叠和窗口图层混合的支持 (比如阴影和EAF所需要的 X11 reparent 协议).

目前我知道完备支持 X11 所有协议的桌面环境只有 Gnome2, KDE, DDE, Unity, 其他窗口管理器对 X11 Reparent 几乎没有正确支持, 导致 EAF 没法运行.


#443

EAF在Xfce和LXDE都可以基本运行的,更冷门得我就没有试过了。


突然想起来,WineQQ在单WM上似乎也是没有办法正常运行得。不知道是不是也是这个原因


#444

我有个想法是能不能把eaf中python, elisp透过dbus沟通的技术用在EXWM上。这样EXWM里就可以同时支持

  1. 用QT5写的GUI应用,而这些应用还可以透过elisp, python互相控制

  2. 其他应用(像是GTK),这些就是原本的那些程式,Emacs没办法控制他们的行为

这样的话也不用所有程式都自己写,像是浏览器就可以用chrome, firefox,pdf reader就可以用eaf里的,这样的想法可行吗?


#445

感觉在某些支持浮动的窗口管理器,如 i3、awesomewm 等,都是可以正常运行的。之前在 manjaro i3 上折腾 astroidmail 时,内嵌编辑器就能做到这一点。


#446

你没有明白一个问题, 很多应用不是你想控制就可以控制的, 比如 chrome, firefox 这种鼠标导向设计的软件, 就不可能全键盘操作, 当然你可以发送伪造事件通过按键虚拟映射技术去骗这些应用, 但是本质还是没法做到全键盘操作.

如果没法做到全键盘操作, 费那么大劲折腾,效果还不是和不用EAF一样, 浏览器和Emacs来回切换.

当然我不是强调所有应用都要自己写, 我觉得EAF再怎么发展, 也很难去写一个和Chrome/Firefox竞争的浏览器(根本就写不赢), 最多就是一个套壳的键盘操作浏览器.


#447

我不是要透过EXWM来去运行这些鼠标导向的程序,而是希望透过EXWM去运行那些一样是键盘导向但是非QT的程式,像是浏览器可以试试看这个 next browser

而如果没办法找到键盘导向的程序的话,再透过eaf的python elisp沟通技术用QT自己造一个

我只是想通过EXWM那样可以让各种程式运行的优点来填补eaf里很多应用都要自己从头写的缺点,希望你不要介意,本质上我还是希望所有程序都是键盘导向的


#448

其实寻寻觅觅, 最后还是Emacs内部完美结合的好, 只是精力有限, 大家一起加油吧.


#449

我现在都是eaf browser, eww, dash一块用的,在emacs里看文档和blog感觉非常不错 :grinning:


#450

打开markdown文件白屏

 * using personal access token
 * serving flask app "grip.app" (lazy loading)
 * environment: production
e warning: do not use the development server in a production environment.e
e use a production wsgi server instead.e
 * debug mode: off
 * running on http://localhost:52431/ (press ctrl+c to quit)

系统: Manjaro 18.0.4

Emacs: 26.2


#451

可能你用的窗口管理器不支持


#452

我用的是KDE,而且org文件没问题。


#453

安装 grip 然后设置你自己的 token


#456

找到原因了,是http代理的问题。