用于检测系统是否使用深色或浅色桌面主题的命令?

用于检测系统是否使用深色或浅色桌面主题的命令?

浏览器中的一种方式查询用户是否喜欢深色或浅色主题,以便网站开发人员可以根据用户偏好调整网站的颜色。

还有一种方法可以在命令行上检测到这一点吗?是否有一个命令输出lightor dark(或一些等效的布尔值输出指示亮或暗?)

答案1

我使用以下命令来检测当前的配色方案,因为我使用 Gnome 的配色方案切换扩展:

#!/bin/sh
# org.freedesktop.appearance color-scheme
#
# Indicates the system's preferred color scheme.
# Supported values are:
#
#   0: No preference
#   1: Prefer dark appearance
#   2: Prefer light appearance
#
# Unknown values should be treated as 0 (no preference).

scheme=$(
  gdbus call --session --timeout=1000 \
             --dest=org.freedesktop.portal.Desktop \
             --object-path /org/freedesktop/portal/desktop \
             --method org.freedesktop.portal.Settings.Read org.freedesktop.appearance color-scheme
)

case $scheme in
  ( '(<<uint32 1>>,)' ) exit 1;;
  ( '(<<uint32 2>>,)' ) exit 2;;
  ( *                 ) exit 0;;
esac

这适用于 Fedora 37 和 Ubuntu 22.04(通过 distrobox 在 Fedora 中运行,所以 YMMV)。

答案2

你可以尝试这个命令(在gnome桌面环境,ubuntu 22.04上测试):

gsettings get org.gnome.desktop.interface color-scheme

它输出:

'prefer-dark'

或者

'prefer-light'

相关内容