Emacs Webrender

现在macOS也能用了。

有Rust小伙伴一起来改进么。现存的issues Issues · emacs-ng/emacs-ng · GitHub

这边提供 nix flake/guix channel

还有 macOS built script GitHub - declantsien/build-emacs-webrender: A fork to build Emacs Webrender on macOS 和macOS 编译的二进制文件

4 个赞

这个的意思是整个 Emacs 的 GUI 替换成了 Webrender?

Emacs 有个 window system 概念。mac(macport), ns, pgtk, x 都是window system,现在多了webrender。

是的,整个GUI都换成了webrender

1 个赞

用的 MacOS prebuild 试用了一下,还是有挺多地方和 GNU Emacs 行为不一致。日常使用应该需要再等等。

别介,用Rust就来折腾下嘛

可惜我不会 Rust :rofl:

话说你能介绍下

  • declantsien/emacs-ng
  • emacs-ng/emacs-ng
  • declantsien/emacs-webrender

之间的关系么?
可以帮助像我这种刚听说的人理解这些项目。

  • emacs-ng/emacs-ng 是上游(Rust 部分)。像是没人维护了(冬眠的感觉)
  • declantsien/emacs-ng 我的代码更新在这边
  • declantsien/emacs-webrender 跑CI的repo。 用来自动编译发布macOS dmg 还有 nix cachix 的cache。还可以作nix flake 的overlay。 应该叫emacsng-build更合适点,不过我只关注webrender部分
1 个赞

简单试了一下

  1. 最新的 dmg release 似乎有问题,报 broken 打不开了,8 小时前的哪个 tbz 可以
  2. 同字体配置下,比原来用的字体小得多,这个应该和渲染有关系吧
  3. 上游代码似乎比较老,还不支持 tree sitter

最新的 dmg release 似乎有问题,报 broken 打不开了,8 小时前的哪个 tbz 可以

我刚下载试了下,可以的。确定有问题可以命令行看下 Emacs.app/Contents/MacOS/Emacs

同字体配置下,比原来用的字体小得多,这个应该和渲染有关系吧

字体大小改下设置就可以匹配GNU Emacs的。这个很重要的话我可以对各平台进行匹配的 我这边都是单独设置的

(when (featurep 'wr)
  (add-to-list 'default-frame-alist '(font . "Sarasa Mono CL-16")))
(when (featurep 'pgtk)
  (add-to-list 'default-frame-alist '(font . "Sarasa Mono CL-12")))
(when (featurep 'mac)
  (add-to-list 'default-frame-alist '(font . "Sarasa Mono CL-15")))

上游代码似乎比较老,还不支持 tree sitter

我这边发布的都是emacs-29 5b640f0abd3 分支的,是有tree sitter的 (treesit-available-p) https://github.com/declantsien/emacs-ng/commit/dbc15be7b2386a19d01296e1f9d17c58f4c1bc8f

这个 patch 失败了,看了下 nsterm.m 的代码和 emacs-mirror 的有差异导致的

nsterm 这边用不上的。你这个patch用在这边也不会有什么效果。 Webrender 这边的窗口用的是

Emacs.app/Contents/MacOS/Emacs 也是一样的不行,报下面的错,然后就直接被 killed 了

(when (featurep 'wr)

这个确实可以按需配置

是有tree sitter的 (treesit-available-p)

不好意思,我没描述清楚,有 treesit,但是没有后来加的几个 ts-mode,像 go-ts-mode 和 rust-ts-mode

我是直接运行的上面那个仓库脚本,是要添加什么参数么

broken 的问题可能和我系统有关,放 Downloads 下面能打开,放到 /Application 下面就会报 broken

Oh ./build-emacs-for-macos emacs-29 编译 emacs-29 分支

1 个赞

用你的这个配置也不行

(add-to-list 'default-frame-alist '(font . "Sarasa Mono CL-16"))

字体的配置似乎不生效

我是放在 early-init.el 里面的。 不知道set-face-attribute能不能放在early-init里面

Sarasa Mono CL 自带中英文等宽哈