gnome 桌面环境下 窗口深色边框

现在这样emacs的边框是浅色的,有办法把这个窗口边框变成深色的吗,最好是可以和桌面环境保持一致。

我的环境是:

emacs 应该还是 gtk3,应该可以用 GTK_THEME=Adwaita:dark emacs 。不过我没有试,不清楚有没有用。

https://wiki.archlinux.org/title/GTK#Themes

1 个赞

找到一个帖子

https://unix.stackexchange.com/questions/14129/gtk-enable-set-dark-theme-on-a-per-application-basis

总结下,两种方法。

  1. 像 slbtty提到的,在终端 下或者在 .desktop 文件里设置环境变量
GTK_THEME=Adwaita:dark emacs

Exec=env GTK_THEME=Adwaita:dark eog %U
  1. 另一种方法就是使用 GtkSettings 的 settings.ini 强制使用深色主题变体
只设置emacs
$: cat $HOME/.config/emacs/gtk-3.0/settings.ini
=>
[Settings]
gtk-application-prefer-dark-theme=true

或者所有应用
$: cat $HOME/.config/gtk-3.0/settings.ini
=>
[Settings]
gtk-application-prefer-dark-theme=true


这个问题之前我在alacritty上遇到过,但是现在gnome上貌似没有了,至少我是这样的。涉及到wayland,参考链接如下:

我之前用的是这个配置……现在看起来 gnome 有一个正经的解决方案了,可喜可贺

(call-process-shell-command (concat "xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT dark -name \""
				    (cdr (assoc 'name (frame-parameters)))
				    "\""))

上边帖子有提到,这个设置对non-gtk+应用有用

动态切换也有用,改配置似乎是要重启程序

对,你这个方法可以在emacs配置文件里控制,这点很好。我之前也用的这种,然后我今天自己编译了emacs29之后,用了–with-pgtk之后这个方法就失效了。这个方法应该对pure gtk window system 不起作用了。