Kali Linux Xfce 切换浅色模式

Kali Linux Xfce 切换浅色模式
狂犬主子
一开始,我以为这应该是一件很简单的事情。Kali Linux 用的是 Xfce,我想把整个桌面从深色切换成浅色。按照正常理解,无非就是打开 Settings → Appearance → Style,选一个 Kali-Light,事情应该到此结束。

结果现实告诉我:没那么简单。Xfce 是浅色的,QTerminal 还是黑的;Firefox 的 Automatic 还是黑的;后来装了 Chrome,发现 Chrome 默认也是深色。

这时候问题就变得有意思了:到底是我哪里没设置好,还是 Linux 的“浅色模式”根本就不是一个统一的东西?最后一路排查下来,答案是后者。
折腾过程
第一关:Kali-Light 明明已经选上了
首先检查 Xfce:
1 | xfconf-query -c xsettings -p /Net/ThemeName |
返回:
1 | Kali-Light |
这说明 Xfce 自己认为当前主题就是浅色。于是我最开始的判断是:
那应该只是某些软件没有跟随 Xfce。
这个判断其实没错,但还不完整。因为接下来发现,问题并不只是 Qt。
第二关:QTerminal 为什么还在黑着?
QTerminal 是 Qt 应用,而 Xfce 的 Appearance 主要解决的是 GTK/Xfconf 这一套。
检查环境变量:
1 | echo $QT_QPA_PLATFORMTHEME |
结果是:
1 | qt5ct |
这就解释了 QTerminal 为什么不听 Xfce 的话——Qt 被 qt5ct 接管了。
所以我打开:
1 | qt5ct qt6ct |
再到里面选择浅色配色。QTerminal是 Qt6 编写的,所以调整 qt6ct 才生效。

到这里其实已经能看出 Linux 桌面主题系统的一个特点:
GTK 是一套,Qt 又是一套。
Xfce 选了 Light,不代表 Qt 就必须 Light。事情开始变复杂了。
第三关:Firefox 也不对劲
然后我发现 Firefox 的 Website appearance → Automatic 还是深色。这时候很自然会怀疑 Firefox。于是去 about:config 搜索:
1 | ui.systemUsesDarkTheme |
结果发现这个设置根本不存在。于是又检查:
1 | layout.css.prefers-color-scheme.content-override |
结果是:2,也就是跟随系统。
看起来 Firefox 的配置并没有明显问题。这时候我开始怀疑:
会不会根本不是 Firefox 的问题?
第四关:Chrome 出现以后,事情突然变简单了
后来安装了 Chrome。结果发现:Chrome 默认也是 Dark。这一刻反而是个好消息。因为如果只有 Firefox 出问题,还可以继续怀疑 Firefox。
但现在:
- Xfce:Light
- QTerminal:Dark
- Firefox:Dark
- Chrome:Dark
多个完全不同的软件都出现类似现象。这已经不像某一个应用的 Bug 了。于是开始往“系统到底告诉应用自己是什么颜色”这个方向查。
第五关:检查 GTK
先看看有没有 GTK 自己的配置:
1 | cat ~/.config/gtk-3.0/settings.ini |
结果:
1 | 没有那个文件或目录 |
GTK 4 也是一样。
然后检查有没有强制 Dark:
1 | grep -Rni "prefer-dark\|dark-theme\|color-scheme" \ ~/.config/gtk-3.0 \ ~/.config/gtk-4.0 \ 2>/dev/null |
没有任何结果。
这反而是个好消息。
说明至少没有发现一个类似:
1 | gtk-application-prefer-dark-theme=true |
这样的东西在背后搞鬼。
第六关:Xfce 本身真的没问题
再看 Xfce 的完整配置:
1 | xfconf-query -c xsettings -lv |
其中最关键的是:
1 | /Net/ThemeName Kali-Light |
所以 Xfce 这一层可以基本排除。但这时候我突然意识到:
Xfce 说自己是 Light,并不代表所有程序都会去问 Xfce。
现代 Linux 应用还有另外一条路。
第七关:GSettings 才是真正的坑
于是检查:
1 | gsettings get org.gnome.desktop.interface gtk-theme |
得到:
1 | 'Kali-Light' |
看起来一切正常。但是再检查:
1 | gsettings get org.gnome.desktop.interface color-scheme |
结果却是:
1 | 'prefer-dark' |
这一下问题基本浮出水面了。
注意,这两个东西不是一回事:
- gtk-theme -> Kali-Light
而:
- color-scheme -> prefer-dark
也就是说,我的系统实际上处于一种很奇怪的状态:
主题是 Light,但系统颜色偏好却是 Dark。
这就像把房子的墙刷成白色,然后在门口挂了一个牌子:
“本屋偏好黑色。”
第八关:XDG Desktop Portal 终于把证据补齐
为了确认现代应用到底拿到了什么信息,又检查了:
1 | dbus-send --session --print-reply \ --dest=org.freedesktop.portal.Desktop \ /org/freedesktop/portal/desktop \ org.freedesktop.portal.Settings.Read \ string:org.freedesktop.appearance \ string:color-scheme |
结果是:
1 | uint32 1 |
这里我还踩了一个坑。一开始我把 1 错误地理解成了 Light。后来查了 XDG Desktop Portal 的规范才发现,正确的定义是:
1 | 0 = No preference 1 = Prefer dark 2 = Prefer light |
所以uint32 1实际上是在告诉应用:
我偏好 Dark。
这一下所有事情突然串起来了。
真正的问题
整个系统当时实际上是:
- Xfce
- ThemeName = Kali‑Light ✅
- GSettings
- gtk‑theme = Kali‑Light ✅
- color‑scheme = prefer‑dark ❌
- XDG Desktop Portal
- color‑scheme = 1 ❌ Dark
- Chrome
- 看到系统偏好 Dark ❌
- Firefox
- 看到系统 / 主题偏好 Dark ❌
所以之前一直在折腾 Firefox、Chrome、GTK,其实有点走偏了。
真正的问题在更下面一层:
Xfce 的主题已经切成 Light,但是 GSettings 的系统颜色偏好仍然停留在 Dark。
最后的解决办法反而非常简单
执行:
1 | gsettings set org.gnome.desktop.interface color-scheme 'prefer-light' |
然后检查:
1 | gsettings get org.gnome.desktop.interface color-scheme |
变成:
1 | 'prefer-light' |
再重新打开 Chrome,结果正常了,Firefox 也恢复正常。这时候才真正意识到,前面折腾了那么久,其实只差这一行。
最终配置
以后在 Kali Xfce 上切换浅色,我会按照下面这个顺序来。
① Xfce
Settings 设置 → Appearance 外观 → Style 样式
选择:Kali-Light
Appearance 外观 → Icons 图标
选择:Flat-Remix-Blue-Light
Settings 设置 → LightDM桌面管理器(GTK界面):设置 → 界面
选择:Kali-Light
② 系统颜色偏好
执行:
1 | gsettings set org.gnome.desktop.interface color-scheme 'prefer-light' |
检查:
1 | gsettings get org.gnome.desktop.interface color-scheme |
应该是:'prefer-light'。
③ Qt
1 | qt5ct qt6ct |
(也可以在设置中打开)
选择 Kali-Light。
④ QTerminal
QTerminal 的终端配色在 会话 → 参数配置 → 界面设置 → 终端颜色 里单独调整。

⑤ Firefox / Chrome
保持 系统/Automatic 即可。
总结
这次踩坑最大的收获是终于理解了为什么这件事会这么绕:Linux 桌面里的“主题”和“颜色偏好”不是一回事,而 Xfce、GTK、Qt、GSettings、XDG Portal、Firefox、Chromium 又各自可能读取不同的东西。
所以看到“Xfce 明明已经 Light,但 Chrome/Firefox 还是 Dark”,第一反应不应该是继续换主题,而应该开始检查:
1 | gsettings get org.gnome.desktop.interface color-scheme |
如果它还是:'prefer-dark',那基本就找到方向了。




