システムが暗いまたは明るいデスクトップテーマを使用しているかどうかを検出するコマンド?

システムが暗いまたは明るいデスクトップテーマを使用しているかどうかを検出するコマンド?

持つブラウザの方法ウェブサイト開発者がユーザーの好みに応じてウェブサイトの色を調整できるように、ユーザーが暗いテーマを好むか明るいテーマを好むかを問い合わせます。

コマンドラインでこれを検出する方法もありますか?出力するコマンドはありますかlightdarkまたは、明るいまたは暗いことを示す同等のブール出力がありますか?

答え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'

関連情報