From 5f108c607b78143f7fd3e0bb34390f2600965f4c Mon Sep 17 00:00:00 2001 From: nocode Date: Sat, 4 Jul 2026 03:30:18 +0200 Subject: [PATCH] feat(releng): add i3 window manager desktop environment configuration Add i3 window manager as a selectable desktop environment option in the anaconda kickstart configuration. Includes: - i3-wm with essential packages (i3status, i3lock, rofi, kitty, etc.) - X11 server requirement for VR compatibility (SteamVR incompatible with Wayland) - Bluetooth service enablement for i3 sessions - Icon cache update for VR launcher visibility in rofi - i3 configuration template installation for skeleton and existing users - Keyboard layout handling via X11 xorg.conf.d (no keyboard injection needed) This enables users to install a lightweight X11-based desktop environment with VR support capabilities. --- .../share/anaconda/interactive-defaults.ks | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/configs/releng/airootfs/usr/share/anaconda/interactive-defaults.ks b/configs/releng/airootfs/usr/share/anaconda/interactive-defaults.ks index ea05fc9..3f0fa8a 100644 --- a/configs/releng/airootfs/usr/share/anaconda/interactive-defaults.ks +++ b/configs/releng/airootfs/usr/share/anaconda/interactive-defaults.ks @@ -281,6 +281,11 @@ case "$DESK" in # s'ils sont déjà là, filet de secours sinon). xfce) PKGS="xfce4 xfce4-goodies sddm noto-fonts pipewire pipewire-pulse wireplumber pavucontrol"; 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 pipewire pipewire-alsa pipewire-pulse wireplumber pavucontrol bluez bluez-utils blueman"; DM="sddm" ;; + # i3 : session X11 → COMPATIBLE VR (SteamVR ne marche pas sous Wayland). + # xorg-server est requis (SDDM ne le tire pas) ; maim+xclip = captures X11, + # dunst = notifications X11 (équivalent de mako), i3lock = verrouillage. + # fws-vr-setup (Super+Shift+V ou menu) installe les drivers du casque. + i3) PKGS="i3-wm i3status i3lock xorg-server rofi kitty thunar sddm noto-fonts ttf-nerd-fonts-symbols maim xclip dunst libnotify polkit-gnome network-manager-applet gvfs playerctl brightnessctl pipewire pipewire-alsa pipewire-pulse wireplumber pavucontrol bluez bluez-utils blueman"; DM="sddm" ;; cli|*) PKGS="" ;; esac # Navigateur de base ajouté DÈS QU'un bureau est choisi (jamais en CLI). @@ -380,6 +385,11 @@ HYEOF # avec le bureau ; fws-setup-hardware le refait — idempotent). systemctl enable bluetooth.service 2>/dev/null || true fi + if [ "$DESK" = "i3" ]; then + systemctl enable bluetooth.service 2>/dev/null || true + # Icône du lanceur « Installation VR » (casque) visible dans rofi. + gtk-update-icon-cache -f /usr/share/icons/hicolor 2>/dev/null || true + fi else echo "[FWS] Bureau '$DESK' non installé (réseau ?) — à refaire après le 1er boot." fi @@ -427,6 +437,19 @@ if [ "$DESK" = "hyprland" ] && [ -f /usr/local/share/fws/hyprland.conf.tmpl ]; t rm -f /tmp/fws-hyprland.conf fi +# --- Config i3 (si choisi) : raccourcis FWS + barre + autostart ------------- +# Pas d'injection clavier ici : les sessions X11 lisent la disposition dans +# /etc/X11/xorg.conf.d/00-keyboard.conf, écrite à l'étape 3bis. +if [ "$DESK" = "i3" ] && [ -f /usr/local/share/fws/i3-config ]; then + install -Dm644 /usr/local/share/fws/i3-config /etc/skel/.config/i3/config + while IFS=: read -r _u _x _uid _g _gec _home _sh; do + [ "$_uid" -ge 1000 ] && [ "$_uid" -le 60000 ] && [ -d "$_home" ] || continue + install -Dm644 /usr/local/share/fws/i3-config "$_home/.config/i3/config" + chown "$_u": "$_home/.config" 2>/dev/null || true + chown -R "$_u": "$_home/.config/i3" 2>/dev/null || true + done < /etc/passwd +fi + # --- 4bis) Sudo : l'utilisateur créé doit pouvoir administrer ----------------- # Arch laisse « %wheel » COMMENTÉ dans sudoers → même un membre de wheel ne peut # pas sudo. On active le groupe wheel (drop-in) ET on y ajoute tous les