Files
FWS-ISO/configs/releng/airootfs/usr/local/bin/fws-desktop-init-hyprland
T

50 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
. /usr/local/bin/fws-desktop-init-common
first_user="$(fws_first_user)"
# Config Hyprland minimale + autostart (agent polkit, barre, applet réseau,
# notifications). Sans config ni agent polkit, la session est inutilisable
# pour un non-technicien (pas de raccourcis, pas d'élévation de privilèges GUI).
fws_write_hyprland_config() {
local user_name="$1"
[ -n "$user_name" ] && [ -d "/home/$user_name" ] || return 0
local cfg_dir="/home/$user_name/.config/hypr"
install -d -m 755 "$cfg_dir"
if [ -f /usr/share/hypr/hyprland.conf ]; then
cp -f /usr/share/hypr/hyprland.conf "$cfg_dir/hyprland.conf"
else
cat > "$cfg_dir/hyprland.conf" <<'EOF'
$terminal = kitty
$menu = wofi --show drun
bind = SUPER, Q, exec, $terminal
bind = SUPER, R, exec, $menu
bind = SUPER, C, killactive
bind = SUPER, M, exit
EOF
fi
cat >> "$cfg_dir/hyprland.conf" <<'EOF'
# ── FWS : démarrage automatique de la session ──
exec-once = systemctl --user start hyprpolkitagent
exec-once = waybar
exec-once = nm-applet --indicator
exec-once = mako
EOF
chown -R "$user_name:$user_name" "/home/$user_name/.config"
}
# PipeWire/applet NM/polices viennent de FWS_BASE_PACKAGES ; hyprpolkitagent
# fournit l'agent d'authentification polkit pour Wayland/Hyprland.
fws_install_packages "${FWS_BASE_PACKAGES[@]}" \
hyprland xdg-desktop-portal-hyprland xdg-desktop-portal-gtk \
waybar wofi kitty mako swaybg swayidle swaylock \
xorg-xwayland wl-clipboard grim slurp \
qt5-wayland qt6-wayland hyprpolkitagent sddm
fws_disable_services lightdm.service gdm.service
fws_enable_services sddm.service
fws_set_graphical_default
fws_write_sddm_config "$first_user" hyprland
fws_write_hyprland_config "$first_user"