Emacs最近实现了真·背景透明

可能吧, 我没试过. 我的做法 差不多 是在 custom-file 里给 server 的 hook 加 custom 函数.

至少我遇到的四五个问这个问题的人都是这样

我是用的blur my shell做的,感觉效果能接收,就是有时候窗口阴影稍微有点糊,动一动就好了,这个gnome 插件的效果是不影响emacs本身的速度的。

但是:

  1. 在X11下工作良好(nvidia, 2x4k display),wayland至少我在家2个不同分辨率屏幕的情况下基本不能用(amd rx480, 4k + 1080p)。
  2. 如果不喜欢/不使用gnome这个方案就是废的。
1 个赞

今天找时间在 Linux 中试了一下换成 xpm 格式的图标,确实可以实现透明了!而且启动速度挺快的,几乎和之前区别不大!

Arch + emacs 29.1


感谢告知! :blush: :hugs:

1 个赞

关于启动时间那块,确实是我搞错了,我当时可能是设置了什么别的东西 :sunglasses:

1 个赞

我用的是 Mac,使用 Emacs Mac Port,请问该如何设置“仅仅背景透明呢”?

我使用(set-frame-parameter nil 'alpha-background 80)没有效果呀,必须要29版本的emacs吗?

1 个赞

试了下:(MacOS with Emacs-plus@29)

(set-frame-parameter nil 'alpha 0.9)

2 个赞

这个是窗口整体的透明,如果透明程度高的话,连文字内容都会看不清楚。

而我要的是类似 alpha-background 的功能,即本贴的主题 “真·背景透明”

我知道 emacs 29 加入了 alpha-background。

我想知道在 29 版本之前,Emacs Mac Port 有没有自己的实现?

已经升级到29了,不太清楚之前的版本。确实如你所说,这么设,透明度高的话,字体本身也受影响。

这么设:

(set-frame-parameter nil 'alpha-background 80)

Emacs-plus@29 也不起作用。

好的,感谢反馈~

macOS 的真透明有眉目了:

  1. 邮件组讨论:macOS (Cocoa) alpha-background
  2. 红迪讨论: https://www.reddit.com/r/emacs/comments/19ev3ur
  3. 作者的 ns-alpha-background 分支:GitHub - jonrubens/emacs at ns-alpha-background
  4. 我从 3 提取的 patch (对应分支里的 9b436cc): ns-alpha-background-2024-1-25-9b436cc .patch - Pastebin.com

作者的贴图:

可以配合jcs大佬的transwin 进行连续调整透明度:

(use-package transwin
  :config
  (setq transwin-delta-alpha 5)
  (setq transwin-parameter-alpha 'alpha-background)
  :bind
  ("C-M-=" . transwin-inc)
  ("C-M--" . transwin-dec)
  ("C-M-0" . transwin-toggle))
12 个赞

不错,已用上

1 个赞

这个合并到上游了吗?或者有没有合并的计划?

还没有。目前老风扇提了修改意见(签FSF + 代码风格),可以看上面邮件组链接。我觉得老风扇是欢迎这个贡献的。

看了下邮件细节,果然如此。可以好好修改下合入上游

建议看他的 repo (链接也在上边),比邮件里已经提到的三个版本 patch 都要更新。

已经用上了,非常感谢作者,作者是边学边做的。希望后面毛玻璃效果也加入

1 个赞

最新的 master 好像不能正确应用这个 patch 了

我修改了下,最新的 emacs 30 可以用 .emacs.d/patches/ns-alpha-background.patch at main · LuciusChen/.emacs.d · GitHub

2 个赞

想请教一下道友们,在透明后有没有什么办法让 Emacs 透出壁纸来,我目前使用 KDE ,只要 Emacs 下有其他窗口,就无法透过 Emacs 看壁纸了。

那是

那是“其他窗口”不透明导致看不到壁纸,这个问题跟emacs无关吧