holo-layer: 一种全新的Emacs增强图层插件

出现原因有什么头绪吗?

安装了之后,也设置了 holo-layer-enable-cursor-animation t, M-X 能出现 holo-layer 相关的命令 咋一点果冻的效果也没看到…

holo-layer-restart-process 之后还是错位的

请说明环境, 版本等信息。

This process is not trusted! Input event monitoring will not be possible until it is added to accessibility clients.

Python和emacs已经放在信任列表中了,心态有些崩~ emacs-mac 29.1 & spacemacs develop

  • 软件:macOS: 13.4.1; Emacs: 29.1
  • 硬件:16 寸 MBP

请多补充一些信息,比如安装的依赖,holo-layer的log,是否全屏使用等,这样有助于帮你定位。

我这边holo-layer在mac上非全屏是可以正常使用的,arm平台,你可以检查一下Readme看看依赖有无遗漏。

1 个赞

估计也是遇到和我一样的问题了…

  1. 依赖已经全部安装,Python版本是3.11.5
  2. macOS 13.5.1 ,emacs-mac 29.1 , spacemacs develop 分支 holo-layer-buffer提示:“This process is not trusted! Input event monitoring will not be possible until it is added to accessibility clients.”
  3. 然后将Python.app和Emacs.app添加进系统的输入监视清单和辅助功能清单,没有任何反应,上诉错误依旧存在。关键系统不提示谁需要什么权限,全再猜 :joy:

这个应该是emacs-mac的关系,在m1的emacs-mac 29.1下python epc好像都没法用(包括holo-layer和lsp-bridge)。

但是自己编译或者用其他的emacs客户端,都不会有这个问题。

说起来holo-layer是不是也能解决emacs indent guides 性能差的问题 :thinking:

更换emacs-plus后可运行,但是发现很多诡异的情况,比如,光标动画实在光标上一行开始的。窗口红框也向上偏移差不多两行。

可以的,zsbd

去掉title bar,完美适配。后续希望能够解决 mac 全屏的问题。感谢大佬

因为 holo-layer 是用Qt技术绘制在最上层的, 所以遇到补全菜单的场景, 会出现 holo-layer 绘制的窗口边框会覆盖到补全菜单上。

今天写了个补丁, 利用Qt本身的蒙版功能, 在绘制窗口边框的时候排除了弹出菜单的区域。

目前 lsp-bridge 的acm菜单已经被支持了, 其他补全菜单的支持, 欢迎修改 holo-layer-get-menu-info 函数。

2 个赞

搞定了没?我也遇到这个问题了

那个问题呀?是不能运行还是红框错位? 不能运行的问题,根据@kongds大佬的说法,直接emacs-mac换emacsplus@29可以解决。

提了个 pull request,修复了在 windows 下非全屏显示位置不正常问题,windows 下窗口模式也能使用了

GIF 2023-9-16 18-06-17

4 个赞

补丁已经合并, 感谢。

holo-layer 对 sort-tab 提供了渲染支持, 以后可以利用Qt技术绘制现代标签栏, 比如 VSCode、 Chrome、 Firefox 具备的标签栏细节, Emacs都可以具备。

holo-layer 这个绘制技术具备以下几个细节:

  1. 直接绘制图标: 性能杠杠的
  2. 绘制任意曲线: Qt可以绘制的都可以绘制, Emacs要绘制异形图案, 要做很多 xpm 内存对象的hacking
  3. 绝对的像素对齐: 文字和图标的绘制可以做到像素严格对齐, 以前用的 all-the-icons 等方案, 实际绘制到Emacs时, 大的大, 小的小, 歪歪扭扭, 看着非常不舒服
  4. 兼容性好: 对Emacs版本不挑剔, 只要可以跑 holo-layer 的地方都可以直接渲染

直接更新 sort-tab 和 holo-layer 到最新版就, 打开选项 holo-layer-sort-tab-ui 就可以用了。

以后可能会有的增强功能:

  1. 标签形状: 可以绘制成 Chrome 那样的梯形样子
  2. 增加动画: 标签切换的时候, 可以增加横向滚动动画, 或者标签本身的果冻动画
  3. 彩色标签栏: 根据不同的文件, 标签显示不同的颜色
  4. 标签提醒: 比如后台终端命令运行完成后, 标签显示成黄色

现在标签栏的体验也终于不差VSCode了, 还剩一个开箱即用的调试器。

8 个赞

今天更新了标签栏滚动算法, 在左右滚动的时候更加顺滑, 同时也加了大量代码注释, 方便大家理解Qt版标签栏的代码逻辑, 200多行PyQt的图形化实现要清晰的很多, 同样功能用Elisp实现, 大部分都是 text hacking way.

6 个赞