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

我的setup之前用 holo-layer 一直有点问题,主frame主显示器可以使用,make-frame 新的frame,或者换到旁边的显示器就都不工作了。

这几周看见坛子里mac上的光标动画这些帖子,心里痒得不行,我又不用mac。

遂花了几天时间重新把holo-layer翻出来debug一下子,终于发现问题出在哪里了,修复后一高兴给光标旁边又加了个 QMovie 让我家鸽鸽天天陪我一起写代码。

Peek 2026-01-12 10-05


发一下我定位到的问题和解法,看看有没有别的小伙伴也遇到了同样的问题

环境:

  • ArchLinux X11
  • Emacs 30.1
  • Spacemacs develop长期不更新
  1. 只有主frame才满足 get_active_window_id() == get_emacs_id(),改成了查询 frame-focus-state 后就能保证在任何frame返回True,不在emacs就返回False
  2. 我的环境下,display-monitor-attributes-list 返回格式不太一样,所以 cdar 拿不到 screen idx,导致 screen idx 永远是0, 在我的环境下只需要改成 cdadr 就可以了 (Edit: PR里改成了 alist-get 'geometry 就通用了)
  3. 我的环境下,需要手动 (setq holo-layer-emacs-frame (window-frame) 维护状态,否则下面的 when 条件不满足

所以,像gif里那样修改代码后,我的holo-layer基本上就完全表现正常了,哈皮~

@manateelazycat 也麻烦猫大抽空看看这个解法可以不,问题不大的话我就去PR

2 个赞