Files
arch-system-hyprland/03-user/40-defaults.sh
T
2026-07-06 16:30:06 +02:00

35 lines
1.9 KiB
Bash

# User defaults: login shell, file manager, mime handlers, user services.
# Login shell = zsh. The Hyprland autostart lives in ~/.zprofile, which only zsh
# reads at login; with the default bash shell you'd just land on a prompt.
if [ "$(getent passwd "$USER" | cut -d: -f7)" != /usr/bin/zsh ]; then
sudo chsh -s /usr/bin/zsh "$USER" && info "login shell set to zsh"
fi
# Default file manager = GNOME Files (Nautilus). Set explicitly so no other app
# that claims inode/directory (e.g. easytag) wins. (arch_notes.md)
xdg-mime default org.gnome.Nautilus.desktop inode/directory
# Default interface fonts = Adwaita (GNOME 48's default). Under a non-GNOME
# session nothing sets these, so libadwaita/GNOME apps (Nautilus, …) would fall
# back to generic Sans. gtk-*/settings.ini covers the GTK toolkit font;
# gsettings covers the document/monospace fonts read via dconf/the portal.
if command -v gsettings >/dev/null 2>&1; then
gsettings set org.gnome.desktop.interface font-name 'Adwaita Sans 11' \
&& gsettings set org.gnome.desktop.interface document-font-name 'Adwaita Sans 11' \
&& gsettings set org.gnome.desktop.interface monospace-font-name 'Adwaita Mono 11' \
&& info "interface fonts → Adwaita Sans / Mono" \
|| echo " skip: could not set gsettings interface fonts"
fi
# User services that ship as ~/.config/systemd/user units (from dotfiles).
systemctl --user daemon-reload
systemctl --user enable shairport-sync.service 2>/dev/null \
&& info "enabled shairport-sync (user)" || echo " skip: shairport-sync user unit"
# Let PAM own gnome-keyring-daemon (see 02-system/20-config.sh); disable the user
# socket so it isn't also started here — avoids a double instance / double prompt.
systemctl --user disable --now gnome-keyring-daemon.socket 2>/dev/null \
&& info "disabled gnome-keyring-daemon.socket (PAM starts the daemon)" \
|| echo " skip: gnome-keyring-daemon.socket already off"