Files
nearxos 25bf710c67 Remove deprecated one-shot scripts and update first-boot configuration for improved provisioning</message>
<message>Delete obsolete one-shot scripts for setting screen rotation and wallpaper, as well as related Python and shell scripts. Update the first-boot configuration to streamline the provisioning process by removing references to these scripts. This cleanup enhances maintainability and focuses on the essential steps required for the first boot experience, ensuring a more efficient setup for users.
2026-02-23 16:15:47 +02:00

49 lines
2.0 KiB
Bash

#!/bin/bash
# Step 08: Dark theme (GTK3 settings, GTK CSS, taskbar theme)
step_08_dark_theme() {
local theme_name="$GTK_THEME_NAME"
[[ ! -d "/usr/share/themes/$theme_name" ]] && [[ -d /usr/share/themes/Adwaita-dark ]] \
&& theme_name="Adwaita-dark" && log "Using Adwaita-dark (PiXnoir not found)"
local icon_theme=""
[[ -d /usr/share/icons/PiXtrix ]] && icon_theme="PiXtrix"
# GTK3 settings
local gtk_ini="$PI_HOME/.config/gtk-3.0/settings.ini"
mkdir -p "$(dirname "$gtk_ini")"
if [[ ! -f "$gtk_ini" ]]; then
{ printf '%s\n' '[Settings]' 'gtk-application-prefer-dark-theme=1' "gtk-theme-name=$theme_name"
[[ -n "$icon_theme" ]] && echo "gtk-icon-theme-name=$icon_theme"
} > "$gtk_ini"
else
_set_ini() { grep -q "^$1=" "$gtk_ini" && sed -i "s/^$1=.*/$1=$2/" "$gtk_ini" || echo "$1=$2" >> "$gtk_ini"; }
_set_ini gtk-application-prefer-dark-theme 1
_set_ini gtk-theme-name "$theme_name"
[[ -n "$icon_theme" ]] && _set_ini gtk-icon-theme-name "$icon_theme"
fi
log "GTK theme: $theme_name" && [[ -n "$icon_theme" ]] && log "Icon theme: $icon_theme"
# GTK4/Libadwaita dark preference
if [[ -f "$PI_HOME/.profile" ]] && ! grep -q 'ADW_DEBUG_COLOR_SCHEME' "$PI_HOME/.profile" 2>/dev/null; then
printf '\n%s\n' 'export ADW_DEBUG_COLOR_SCHEME=prefer-dark' >> "$PI_HOME/.profile"
chown "$PI_USER:$PI_USER" "$PI_HOME/.profile"
log "Added prefer-dark to .profile"
fi
# Custom GTK CSS (dark menus/popovers)
curl -fsSL "${FILE_SERVER}/gtk.css" -o "$PI_HOME/.config/gtk-3.0/gtk.css" 2>/dev/null \
&& log "gtk.css installed" || true
# Taskbar theme
local panel_dir="$PI_HOME/.config/wf-panel-pi"
mkdir -p "$panel_dir"
if curl -fsSL "${FILE_SERVER}/wf-panel-pi.ini" -o "$panel_dir/wf-panel-pi.ini" 2>/dev/null; then
sed -i "s|/home/pi|$PI_HOME|g" "$panel_dir/wf-panel-pi.ini"
curl -fsSL "${FILE_SERVER}/panel-theme.css" -o "$panel_dir/panel-theme.css" 2>/dev/null || true
log "Taskbar theme installed"
fi
chown -R "$PI_USER:$PI_USER" "$PI_HOME/.config"
}