aboutsummaryrefslogtreecommitdiffstats
path: root/config/hypr/initial-boot.sh
diff options
context:
space:
mode:
Diffstat (limited to 'config/hypr/initial-boot.sh')
-rwxr-xr-xconfig/hypr/initial-boot.sh55
1 files changed, 40 insertions, 15 deletions
diff --git a/config/hypr/initial-boot.sh b/config/hypr/initial-boot.sh
index 8ccda640..b45c31aa 100755
--- a/config/hypr/initial-boot.sh
+++ b/config/hypr/initial-boot.sh
@@ -16,6 +16,32 @@ color_scheme="prefer-dark"
gtk_theme="Flat-Remix-GTK-Blue-Dark"
icon_theme="Flat-Remix-Blue-Dark"
cursor_theme="Bibata-Modern-Ice"
+wallust_args=()
+# shellcheck source=/dev/null
+if [ -f "$scriptsDir/WallustConfig.sh" ]; then
+ . "$scriptsDir/WallustConfig.sh"
+fi
+
+set_interface_pref_with_retry() {
+ local key="$1"
+ local value="$2"
+ local expected="$3"
+ local current=""
+ local attempt=0
+ local max_attempts=6
+
+ while [ "$attempt" -lt "$max_attempts" ]; do
+ gsettings set org.gnome.desktop.interface "$key" "$value" > /dev/null 2>&1 || true
+ current="$(gsettings get org.gnome.desktop.interface "$key" 2>/dev/null || true)"
+ if [ "$current" = "$expected" ]; then
+ return 0
+ fi
+ attempt=$((attempt + 1))
+ sleep 0.25
+ done
+
+ return 1
+}
if command -v awww >/dev/null 2>&1; then
WWW="awww"
@@ -29,28 +55,27 @@ effect="--transition-bezier .43,1.19,1,.4 --transition-fps 30 --transition-type
# Check if a marker file exists.
if [ ! -f "$HOME/.config/hypr/.initial_startup_done" ]; then
- sleep 1
+ # Apply appearance preferences early and synchronously to avoid startup races
+ # where Flatpak/libadwaita apps can default to light mode.
+ set_interface_pref_with_retry color-scheme "'$color_scheme'" "'$color_scheme'" || true
+ set_interface_pref_with_retry gtk-theme "'$gtk_theme'" "'$gtk_theme'" || true
+ set_interface_pref_with_retry icon-theme "'$icon_theme'" "'$icon_theme'" || true
+ set_interface_pref_with_retry cursor-theme "'$cursor_theme'" "'$cursor_theme'" || true
+ gsettings set org.gnome.desktop.interface cursor-size 24 > /dev/null 2>&1 || true
# Initialize wallust and wallpaper
if [ -f "$wallpaper" ]; then
- wallust run -s $wallpaper > /dev/null
+ wallust "${wallust_args[@]}" run -s "$wallpaper" > /dev/null
$WWW query || $DAEMON && $swww $wallpaper $effect
"$scriptsDir/WallustSwww.sh" > /dev/null 2>&1 &
fi
-
- # initiate GTK dark mode and apply icon and cursor theme
- gsettings set org.gnome.desktop.interface color-scheme $color_scheme > /dev/null 2>&1 &
- gsettings set org.gnome.desktop.interface gtk-theme $gtk_theme > /dev/null 2>&1 &
- gsettings set org.gnome.desktop.interface icon-theme $icon_theme > /dev/null 2>&1 &
- gsettings set org.gnome.desktop.interface cursor-theme $cursor_theme > /dev/null 2>&1 &
- gsettings set org.gnome.desktop.interface cursor-size 24 > /dev/null 2>&1 &
# NIXOS initiate GTK dark mode and apply icon and cursor theme
- if [ -n "$(grep -i nixos < /etc/os-release)" ]; then
- gsettings set org.gnome.desktop.interface color-scheme "'$color_scheme'" > /dev/null 2>&1 &
- dconf write /org/gnome/desktop/interface/gtk-theme "'$gtk_theme'" > /dev/null 2>&1 &
- dconf write /org/gnome/desktop/interface/icon-theme "'$icon_theme'" > /dev/null 2>&1 &
- dconf write /org/gnome/desktop/interface/cursor-theme "'$cursor_theme'" > /dev/null 2>&1 &
- dconf write /org/gnome/desktop/interface/cursor-size "24" > /dev/null 2>&1 &
+ if grep -qi nixos /etc/os-release; then
+ dconf write /org/gnome/desktop/interface/color-scheme "'$color_scheme'" > /dev/null 2>&1 || true
+ dconf write /org/gnome/desktop/interface/gtk-theme "'$gtk_theme'" > /dev/null 2>&1 || true
+ dconf write /org/gnome/desktop/interface/icon-theme "'$icon_theme'" > /dev/null 2>&1 || true
+ dconf write /org/gnome/desktop/interface/cursor-theme "'$cursor_theme'" > /dev/null 2>&1 || true
+ dconf write /org/gnome/desktop/interface/cursor-size "24" > /dev/null 2>&1 || true
fi
# initiate kvantum theme
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage