在基于 GNOME 的环境中,在 X11 下,可以使用以下方法获取壁纸的平均背景颜色
xprop -root | grep _GNOME_BACKGROUND_REPRESENTATIVE_COLORS
它给出如下输出
_GNOME_BACKGROUND_REPRESENTATIVE_COLORS(STRING) = "rgb(65,70,61)"
这是Unity 用来使仪表板和启动器具有与壁纸相同颜色的方法。
但是,xprop
在 Wayland 中可能不起作用,_GNOME_BACKGROUND_REPRESENTATIVE_COLORS
在 KDE 中也不起作用。如何在所有环境中获得这种颜色?
如何在现代 GNOME 版本中获得强调色?如何在 KDE 和其他桌面环境中做到这一点?
我想用这种颜色让应用程序具有“变色龙”的背景颜色。
您可以使用以下命令获取壁纸的路径
gsettings get org.gnome.desktop.background picture-uri
(cinnamon 和 mate 有类似的命令 - 请查看下面的 bash 脚本)。对于 KDE,壁纸路径在文件中编码
$HOME/.config/plasma-org.kde.plasma.desktop-appletsrc
为Image=/path/to/wallpaper/top/directory
或Image=/path/to/wallpaper/file
。一旦知道文件位置,就使用 imagemagick 将其转换为调整大小的像素图像,并获取该像素的颜色。
以下 bash 脚本完成该作业。
声明:我在 chatgpt 的帮助下将所有内容整合到 bash 脚本中(使用我上面描述的想法),但我已经对其进行了测试并阅读了代码以确保它可以正常工作。