欢迎发送补丁,谢谢
pass emacs_frame_info to IndentLine.draw function. by tickscn · Pull Request #34 · manateelazycat/holo-layer (github.com) 按照我对变量的理解提了一个 pr。
合并了,感谢感谢
更新到最新版本,可以看到效果了,酷炫。
猫大,在我按照readme更改了 hyprland.conf
后,启用 holo-layer,虽然holo-layer的窗口全屏了,但是它显示的是桌面的背景图片而非emacs,使得看不见emacs窗口了,且 holo-layer 无响应
*holo-layer*
不断重复:(**** 为递增的数字)
[New Thread 0x7fffabfff6c0 (LWP ****)]
[Thread 0x7fffabfff6c0 (LWP ****) exited]
*holo-layer-epc con 35*
无错误输出
- hyprland version:
v0.33.1
- Emacs version:
GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.17.8)
开启前
开启后
我不用 hyprland,不晓得哇。
holo-layer 其实可以做一个 org-mode 的多媒体实时预览插件, 思路如下:
- Overlay 插件: 写一个 elisp 插件, 解析连接和多媒体的文本内容, 创建 overlay 提前占好空白位置
- 多媒体渲染: 根据内容的属性, 根据视频、SVG、数学公式等, 用Qt绘制置顶的控件, 这样就可以多媒体显示 org-mode 的多媒体内容, 又不用对 emacs 和 org-mode 的代码进行修改, 保持 org-mode 强大的生态
- 滚动支持: 根据窗口的边界和org-mode的offset, 传输矩形给 Qt 那边用 setClipPath 函数裁剪掉超出 org-mode window 以外的内容
我不用 org-mode, 但是我想这种功能识别出来以后, org-mode 几乎就是完美了, 分享一下我的思路, 如果哪位大佬有兴趣, 我下班后可以提供Qt关键函数的技术指导。
经过尝试,可以不修改 holo-layer 的代码,在 hyprland 的 配置文件中再加一个规则
windowrulev2 = nofullscreenrequest, title:(holo_layer.py)
;; 启动时窗口全屏 ;(add-to-list 'default-frame-alist '(fullscreen . maximized))
可能要把这一行注释掉, M2 Mac, emacs-plus 可以使用 cursor-animation
但是 indent line 会报错:
/Users/xiudi/.emacs.d/site-lisp/holo-layer/holo_layer.py:223: DeprecationWarning: sipPyTypeDict() is deprecated, the extension module should use sipPyTypeDictRef() instead
super().__init__()
Traceback (most recent call last):
File "/Users/xiudi/.emacs.d/site-lisp/holo-layer/holo_layer.py", line 297, in paintEvent
self.indent_line.draw(painter, self.emacs_indent_infos, self.emacs_frame_info)
File "/Users/xiudi/.emacs.d/site-lisp/holo-layer/plugin/indent_line.py", line 25, in draw
indents = [int(i) for i in indents.split(',')]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/xiudi/.emacs.d/site-lisp/holo-layer/plugin/indent_line.py", line 25, in <listcomp>
indents = [int(i) for i in indents.split(',')]
^^^^^^
ValueError: invalid literal for int() with base 10: ''
Process *holo-layer* abort trap: 6
今天把holo-layer重新捣鼓了一遍,终于配好了。非常好用,非常丝滑
就是 lsp-bridge 在holo-layer下好像会有点轻微闪烁?猫大能不能帮忙看看:
环境:
- Hyprland
- GNU Emacs 29.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.40, cairo version 1.18.0)
- holo-layer 与 lsp-bridge 均为最新版
已用 emacs -Q 复现
光标是 bar 的时候,indent_line 都缩到了最左边,看了一下代码,好像是光标类型是 bar 就会把宽度设置为 1,这是为了什么考虑的呢?
使用 indent_line 的时候发现,cursor-type 是 bar 的时候线都缩到了左边。看代码是因为 cursor-type 是 bar 的时候 indent width 就被设置成了 1. 这是基于什么考虑的呢?
我感觉是不是你的Emacs没有设置 tab 转换成空格的问题呀?
这个肯定不是这样设计的。
tab 格式化后都会转为 4 个空格,应该不是这个问题
evil-mode 插入的模式 cursor-type 会从 box 变成 bar, 然后宽度就不对了
这问题大佬已经修了
这个是不是也能用在 popweb 上?
感谢大佬,Mac上终于看到了和linux一样完美的效果了!
应该行的, 都应该是一个问题。