<message>Update the cloud-init scripts to improve GTK theme settings by enforcing dark mode through gsettings and preserving the icon theme for a cohesive user experience. Additionally, enhance the first-boot script to install a Chromium kiosk launcher icon on the desktop and in the application menu, along with a five-tap close functionality for Chromium. These changes streamline the user interface and ensure a consistent dark theme across applications and the taskbar.
42 lines
2.2 KiB
Bash
42 lines
2.2 KiB
Bash
#!/bin/bash
|
|
# Revision: 2
|
|
# Set screen rotation via kanshi (same as Control Center). Reads video=DSI-1:rotate=N
|
|
# from kernel cmdline and writes ~/.config/kanshi/config. Kanshi auto-reloads when the file changes.
|
|
# Also sets GTK dark theme (PiXnoir / Adwaita-dark). Runs from autostart when user pi logs in; does not remove itself.
|
|
ROTATE="270"
|
|
for f in /boot/firmware/cmdline.txt /boot/cmdline.txt; do
|
|
[[ -f "$f" ]] || continue
|
|
val=$(grep -o 'video=DSI-1:rotate=[0-9]*' "$f" 2>/dev/null | head -1)
|
|
val="${val#*rotate=}"
|
|
[[ "$val" =~ ^(90|180|270)$ ]] && ROTATE="$val" && break
|
|
done
|
|
KANSHI_DIR="$HOME/.config/kanshi"
|
|
KANSHI_CONFIG="$KANSHI_DIR/config"
|
|
mkdir -p "$KANSHI_DIR"
|
|
cat > "$KANSHI_CONFIG" << EOF
|
|
profile {
|
|
output DSI-1 enable scale 1.000000 mode 800x1280@60.000 position 0,0 transform $ROTATE
|
|
}
|
|
EOF
|
|
|
|
# Set GTK dark theme (same as first-boot step 08) and force dark mode via gsettings
|
|
GTK_THEME_NAME="PiXnoir"
|
|
[[ -d /usr/share/themes/Adwaita-dark ]] && ! [[ -d /usr/share/themes/PiXnoir ]] && GTK_THEME_NAME="Adwaita-dark"
|
|
GTK_SETTINGS="$HOME/.config/gtk-3.0/settings.ini"
|
|
mkdir -p "$(dirname "$GTK_SETTINGS")"
|
|
if [[ ! -f "$GTK_SETTINGS" ]]; then
|
|
printf '%s\n' '[Settings]' 'gtk-application-prefer-dark-theme=1' "gtk-theme-name=$GTK_THEME_NAME" > "$GTK_SETTINGS"
|
|
else
|
|
grep -q '^gtk-application-prefer-dark-theme=' "$GTK_SETTINGS" && sed -i 's/^gtk-application-prefer-dark-theme=.*/gtk-application-prefer-dark-theme=1/' "$GTK_SETTINGS" || echo 'gtk-application-prefer-dark-theme=1' >> "$GTK_SETTINGS"
|
|
grep -q '^gtk-theme-name=' "$GTK_SETTINGS" && sed -i "s/^gtk-theme-name=.*/gtk-theme-name=$GTK_THEME_NAME/" "$GTK_SETTINGS" || echo "gtk-theme-name=$GTK_THEME_NAME" >> "$GTK_SETTINGS"
|
|
fi
|
|
# Force dark mode system-wide (GNOME/GTK apps that read gsettings)
|
|
if command -v gsettings >/dev/null 2>&1; then
|
|
gsettings set org.gnome.desktop.interface gtk-theme "$GTK_THEME_NAME" 2>/dev/null || true
|
|
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' 2>/dev/null || true
|
|
fi
|
|
# Preserve icon theme (PiXtrix = custom start-here)
|
|
if [[ -d /usr/share/icons/PiXtrix ]]; then
|
|
grep -q '^gtk-icon-theme-name=' "$GTK_SETTINGS" && sed -i 's/^gtk-icon-theme-name=.*/gtk-icon-theme-name=PiXtrix/' "$GTK_SETTINGS" || echo 'gtk-icon-theme-name=PiXtrix' >> "$GTK_SETTINGS"
|
|
fi
|