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.
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
# Revision: 2
|
||||
# One-shot: set screen rotation via kanshi (same as Control Center), then remove self.
|
||||
# Reads video=DSI-1:rotate=N from kernel cmdline and writes ~/.config/kanshi/config.
|
||||
# Runs once as user pi at first login; deletes its autostart and this script so it never runs again.
|
||||
# Logs to /var/log/first-boot.log.
|
||||
FIRST_BOOT_LOG="/var/log/first-boot.log"
|
||||
BASE="$(basename "$0" .sh)"
|
||||
log() { echo "[$(date -Iseconds)] [$BASE] $*" >> "$FIRST_BOOT_LOG" 2>/dev/null || true; }
|
||||
|
||||
ROTATE="270"
|
||||
for f in /boot/firmware/cmdline.txt /boot/cmdline.txt; do
|
||||
if [[ -f "$f" ]]; then
|
||||
val=$(grep -o 'video=DSI-1:rotate=[0-9]*' "$f" 2>/dev/null | head -1)
|
||||
val="${val#*rotate=}"
|
||||
if [[ "$val" =~ ^(90|180|270)$ ]]; then ROTATE="$val"; break; fi
|
||||
fi
|
||||
done
|
||||
log "writing kanshi config with transform $ROTATE (from cmdline)"
|
||||
|
||||
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
|
||||
log "kanshi config written to $KANSHI_CONFIG"
|
||||
|
||||
# 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
|
||||
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
|
||||
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
|
||||
log "Set dark theme ($GTK_THEME_NAME) in gtk-3.0/settings.ini"
|
||||
|
||||
log "removing one-shot desktop and script"
|
||||
rm -f "$HOME/.config/autostart/${BASE}.desktop" "$HOME/${BASE}.sh"
|
||||
log "finished"
|
||||
Reference in New Issue
Block a user