@@ -1069,34 +1069,58 @@ if [ "${CRABBOX_DESKTOP:-0}" = "1" ]; then
10691069 chown "$user" /var/lib/crabbox/vnc.password /var/lib/crabbox/vnc.pass
10701070 chmod 0600 /var/lib/crabbox/vnc.password /var/lib/crabbox/vnc.pass
10711071 config_dir="$home_dir/.config"
1072+ gtk_theme=Adwaita-dark
1073+ for candidate in Greybird-dark Adwaita-dark Greybird; do
1074+ if [ -d "/usr/share/themes/$candidate/gtk-3.0" ]; then
1075+ gtk_theme="$candidate"
1076+ break
1077+ fi
1078+ done
1079+ xfwm_theme=Default
1080+ for candidate in Greybird-dark Daloa Greybird Default; do
1081+ if [ -d "/usr/share/themes/$candidate/xfwm4" ]; then
1082+ xfwm_theme="$candidate"
1083+ break
1084+ fi
1085+ done
10721086 install -d -m 0700 -o "$user" "$config_dir/xfce4/xfconf/xfce-perchannel-xml" "$config_dir/xfce4/terminal" "$config_dir/gtk-3.0"
1073- cat > "$config_dir/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml" <<' XML'
1087+ cat > "$config_dir/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml" <<XML
10741088<?xml version="1.0" encoding="UTF-8"?>
10751089<channel name="xsettings" version="1.0">
10761090 <property name="Net" type="empty">
1077- <property name="ThemeName" type="string" value="Adwaita-dark "/>
1091+ <property name="ThemeName" type="string" value="$gtk_theme "/>
10781092 <property name="IconThemeName" type="string" value="Adwaita"/>
10791093 </property>
10801094 <property name="Gtk" type="empty">
10811095 <property name="ApplicationPreferDarkTheme" type="bool" value="true"/>
10821096 </property>
10831097</channel>
10841098XML
1099+ if [ ! -s "$config_dir/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml" ]; then
1100+ cat > "$config_dir/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml" <<XML
1101+ <?xml version="1.0" encoding="UTF-8"?>
1102+ <channel name="xfwm4" version="1.0">
1103+ <property name="general" type="empty">
1104+ <property name="theme" type="string" value="$xfwm_theme"/>
1105+ </property>
1106+ </channel>
1107+ XML
1108+ fi
10851109 cat > "$config_dir/xfce4/terminal/terminalrc" <<'EOF'
10861110[Configuration]
10871111ColorForeground=#e5e7eb
10881112ColorBackground=#111827
10891113ColorCursor=#f3f4f6
10901114MiscBell=FALSE
10911115EOF
1092- cat > "$config_dir/gtk-3.0/settings.ini" <<' EOF'
1116+ cat > "$config_dir/gtk-3.0/settings.ini" <<EOF
10931117[Settings]
1094- gtk-theme-name=Adwaita-dark
1118+ gtk-theme-name=$gtk_theme
10951119gtk-icon-theme-name=Adwaita
10961120gtk-application-prefer-dark-theme=1
10971121EOF
1098- cat > "$home_dir/.gtkrc-2.0" <<' EOF'
1099- gtk-theme-name="Adwaita-dark "
1122+ cat > "$home_dir/.gtkrc-2.0" <<EOF
1123+ gtk-theme-name="$gtk_theme "
11001124gtk-icon-theme-name="Adwaita"
11011125gtk-application-prefer-dark-theme=1
11021126EOF
@@ -1106,6 +1130,20 @@ EOF
11061130set -eu
11071131user="${CRABBOX_SSH_USER:-crabbox}"
11081132runtime="/tmp/crabbox-runtime-$user"
1133+ gtk_theme=Adwaita-dark
1134+ for candidate in Greybird-dark Adwaita-dark Greybird; do
1135+ if [ -d "/usr/share/themes/$candidate/gtk-3.0" ]; then
1136+ gtk_theme="$candidate"
1137+ break
1138+ fi
1139+ done
1140+ xfwm_theme=Default
1141+ for candidate in Greybird-dark Daloa Greybird Default; do
1142+ if [ -d "/usr/share/themes/$candidate/xfwm4" ]; then
1143+ xfwm_theme="$candidate"
1144+ break
1145+ fi
1146+ done
11091147install -d -m 0700 -o "$user" "$runtime"
11101148if ! pgrep -u "$user" -f 'Xvfb :99' >/dev/null 2>&1; then
11111149 su "$user" -s /bin/sh -c "XDG_RUNTIME_DIR='$runtime' Xvfb :99 -screen 0 1920x1080x24 -nolisten tcp -ac >/tmp/crabbox-xvfb.log 2>&1 &"
@@ -1116,13 +1154,19 @@ if ! pgrep -u "$user" -f 'xfce4-session|startxfce4' >/dev/null 2>&1; then
11161154fi
11171155sleep 2
11181156if command -v xfconf-query >/dev/null 2>&1; then
1119- su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' xfconf-query -c xsettings -p /Net/ThemeName -n -t string -s Adwaita-dark >/dev/null 2>&1 || true"
1157+ su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' xfconf-query -c xsettings -p /Net/ThemeName -n -t string -s '$gtk_theme' >/dev/null 2>&1 || true"
11201158 su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' xfconf-query -c xsettings -p /Net/IconThemeName -n -t string -s Adwaita >/dev/null 2>&1 || true"
11211159 su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' xfconf-query -c xsettings -p /Gtk/ApplicationPreferDarkTheme -n -t bool -s true >/dev/null 2>&1 || true"
1160+ su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' xfconf-query -c xfwm4 -p /general/theme -n -t string -s '$xfwm_theme' >/dev/null 2>&1 || true"
1161+ for panel in $(su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' xfconf-query -c xfce4-panel -l 2>/dev/null" | sed -n 's#^/panels/panel-\([0-9][0-9]*\)$#\1#p; s#^/panels/panel-\([0-9][0-9]*\)/.*#\1#p' | sort -u); do
1162+ su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' xfconf-query -c xfce4-panel -p /panels/panel-$panel/background-style -n -t int -s 1 >/dev/null 2>&1 || true"
1163+ su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' xfconf-query -c xfce4-panel -p /panels/panel-$panel/background-rgba -n -t double -t double -t double -t double -s 0.06 -s 0.07 -s 0.09 -s 1.0 >/dev/null 2>&1 || true"
1164+ done
1165+ su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' xfce4-panel -r >/dev/null 2>&1 || true"
11221166fi
11231167if command -v gsettings >/dev/null 2>&1; then
11241168 su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' gsettings set org.gnome.desktop.interface color-scheme prefer-dark >/dev/null 2>&1 || true"
1125- su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' gsettings set org.gnome.desktop.interface gtk-theme Adwaita-dark >/dev/null 2>&1 || true"
1169+ su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' gsettings set org.gnome.desktop.interface gtk-theme '$gtk_theme' >/dev/null 2>&1 || true"
11261170fi
11271171if command -v xfce4-terminal >/dev/null 2>&1 && ! pgrep -u "$user" -f 'xfce4-terminal.*Crabbox Desktop' >/dev/null 2>&1; then
11281172 su "$user" -s /bin/sh -c "DISPLAY=:99 XDG_RUNTIME_DIR='$runtime' xfce4-terminal --title='Crabbox Desktop' --geometry=110x32+48+48 >/tmp/crabbox-terminal.log 2>&1 &" || true
0 commit comments