feat(hyprland): add desktop portal and notification support to hyprland setup

Add missing packages for hyprland desktop environment:
- mako + libnotify for notifications
- polkit-gnome for GUI authentication
- network-manager-applet for network management in tray
- xdg-desktop-portal-hyprland for screen sharing
- gvfs for USB mounting in thunar
- ttf-nerd-fonts-symbols for waybar icons

Add start-hyprland launcher support for hyprland ≥0.53 to properly prepare systemd session/environment.

Add wofi configuration files (config and style.css) for application menu styling.

Update skeleton directory setup to install wofi configs for new users and fix chown path formatting.
This commit is contained in:
2026-07-04 00:26:23 +02:00
parent 4857a9fda9
commit 038700e22d
@@ -269,9 +269,15 @@ case "$DESK" in
# Hyprland ne garantissent AUCUNE police TTF → greeter SDDM/apps illisibles. # Hyprland ne garantissent AUCUNE police TTF → greeter SDDM/apps illisibles.
# Hyprland : la stack des raccourcis FWS (mêmes touches que la config # Hyprland : la stack des raccourcis FWS (mêmes touches que la config
# i3/sway maison) — thunar (Super+E), hyprlock (Super+L), grim+slurp+ # i3/sway maison) — thunar (Super+E), hyprlock (Super+L), grim+slurp+
# wl-clipboard (captures), playerctl (touches multimédia). # wl-clipboard (captures), playerctl (touches multimédia) — plus la
# plomberie de bureau : mako+libnotify (notifications), polkit-gnome
# (agent d'authentification GUI), network-manager-applet (réseau dans le
# tray), xdg-desktop-portal-hyprland (partage d'écran/portails), gvfs
# (montage USB dans thunar), ttf-nerd-fonts-symbols (icônes waybar).
# Le son (PipeWire+pavucontrol), le Bluetooth (bluez+blueman) et la
# luminosité (brightnessctl) sont installés par fws-setup-hardware.
xfce) PKGS="xfce4 xfce4-goodies sddm noto-fonts"; DM="sddm" ;; xfce) PKGS="xfce4 xfce4-goodies sddm noto-fonts"; DM="sddm" ;;
hyprland) PKGS="hyprland kitty wofi waybar sddm noto-fonts thunar hyprlock grim slurp wl-clipboard playerctl"; DM="sddm" ;; hyprland) PKGS="hyprland kitty wofi waybar sddm noto-fonts thunar hyprlock grim slurp wl-clipboard playerctl mako libnotify polkit-gnome network-manager-applet xdg-desktop-portal-hyprland gvfs ttf-nerd-fonts-symbols"; DM="sddm" ;;
cli|*) PKGS="" ;; cli|*) PKGS="" ;;
esac esac
# Navigateur de base ajouté DÈS QU'un bureau est choisi (jamais en CLI). # Navigateur de base ajouté DÈS QU'un bureau est choisi (jamais en CLI).
@@ -355,6 +361,11 @@ if systemd-detect-virt --quiet 2>/dev/null; then
export WLR_RENDERER_ALLOW_SOFTWARE=1 WLR_NO_HARDWARE_CURSORS=1 export WLR_RENDERER_ALLOW_SOFTWARE=1 WLR_NO_HARDWARE_CURSORS=1
export AQ_NO_ATOMIC=1 export AQ_NO_ATOMIC=1
fi fi
# Hyprland ≥ 0.53 : start-hyprland est le lanceur officiel (prépare la
# session/env systemd) — sans lui, bandeau « started without start-hyprland ».
if command -v start-hyprland >/dev/null 2>&1; then
exec start-hyprland "$@"
fi
exec Hyprland "$@" exec Hyprland "$@"
HYEOF HYEOF
chmod 755 /usr/local/bin/fws-hyprland chmod 755 /usr/local/bin/fws-hyprland
@@ -392,13 +403,20 @@ if [ "$DESK" = "hyprland" ] && [ -f /usr/local/share/fws/hyprland.conf.tmpl ]; t
# (hyprctl binds -j) — les descriptions viennent des bindd de la config. # (hyprctl binds -j) — les descriptions viennent des bindd de la config.
install -Dm644 /usr/local/share/fws/waybar-config.json /etc/skel/.config/waybar/config install -Dm644 /usr/local/share/fws/waybar-config.json /etc/skel/.config/waybar/config
install -Dm644 /usr/local/share/fws/waybar-style.css /etc/skel/.config/waybar/style.css install -Dm644 /usr/local/share/fws/waybar-style.css /etc/skel/.config/waybar/style.css
# wofi : style du menu d'applications (Super+R) — le panneau « Raccourcis »
# a son propre style (wofi-keys.css), passé en --style par fws-hypr-keys.
install -Dm644 /usr/local/share/fws/wofi-config /etc/skel/.config/wofi/config
install -Dm644 /usr/local/share/fws/wofi-style.css /etc/skel/.config/wofi/style.css
while IFS=: read -r _u _x _uid _g _gec _home _sh; do while IFS=: read -r _u _x _uid _g _gec _home _sh; do
[ "$_uid" -ge 1000 ] && [ "$_uid" -le 60000 ] && [ -d "$_home" ] || continue [ "$_uid" -ge 1000 ] && [ "$_uid" -le 60000 ] && [ -d "$_home" ] || continue
install -Dm644 /tmp/fws-hyprland.conf "$_home/.config/hypr/hyprland.conf" install -Dm644 /tmp/fws-hyprland.conf "$_home/.config/hypr/hyprland.conf"
install -Dm644 /usr/local/share/fws/waybar-config.json "$_home/.config/waybar/config" install -Dm644 /usr/local/share/fws/waybar-config.json "$_home/.config/waybar/config"
install -Dm644 /usr/local/share/fws/waybar-style.css "$_home/.config/waybar/style.css" install -Dm644 /usr/local/share/fws/waybar-style.css "$_home/.config/waybar/style.css"
install -Dm644 /usr/local/share/fws/wofi-config "$_home/.config/wofi/config"
install -Dm644 /usr/local/share/fws/wofi-style.css "$_home/.config/wofi/style.css"
chown "$_u": "$_home/.config" 2>/dev/null || true chown "$_u": "$_home/.config" 2>/dev/null || true
chown -R "$_u": "$_home/.config/hypr" "$_home/.config/waybar" 2>/dev/null || true chown -R "$_u": "$_home/.config/hypr" "$_home/.config/waybar" \
"$_home/.config/wofi" 2>/dev/null || true
done < /etc/passwd done < /etc/passwd
rm -f /tmp/fws-hyprland.conf rm -f /tmp/fws-hyprland.conf
fi fi