# FWS — configuration Hyprland par défaut. # Le clavier (__KB_LAYOUT__ / __KB_VARIANT__) est injecté à l'installation, # depuis le choix fait dans Anaconda. Édite ce fichier librement. # # Raccourcis : transposition de la config i3/sway FWS (mêmes touches). # Couleurs : nuances de bleu (palette Catppuccin Mocha). # # Les raccourcis sont déclarés avec « bindd » (bind + description) : la # description alimente l'écran « Raccourcis clavier » (bouton ⌨ de la barre # ou SUPER+K → fws-keys, qui lit les binds RÉELS via hyprctl). Ajoute # tes propres bindd : ils apparaîtront automatiquement dans la liste. # ⚠ Pas de virgule dans les descriptions (séparateur de champs Hyprland). monitor = , preferred, auto, 1 input { kb_layout = __KB_LAYOUT__ kb_variant = __KB_VARIANT__ follow_mouse = 1 numlock_by_default = true touchpad { natural_scroll = true tap-to-click = true } } general { gaps_in = 4 gaps_out = 8 border_size = 2 # Nuances de bleu : bleu → sapphire en dégradé sur la fenêtre active. col.active_border = rgb(89b4fa) rgb(74c7ec) 45deg col.inactive_border = rgb(313244) layout = dwindle } decoration { rounding = 8 # Flou et ombres COUPÉS : rendu logiciel (llvmpipe) en VM — cf. le # wrapper fws-hyprland écrit par l'installateur. Sur un vrai GPU tu # peux les réactiver (enabled = true). blur { enabled = false } shadow { enabled = false } } animations { enabled = true bezier = fws, 0.22, 1.0, 0.36, 1.0 animation = windows, 1, 3, fws animation = workspaces, 1, 3, fws animation = fade, 1, 2, default } misc { disable_hyprland_logo = true disable_splash_rendering = true # pas de « Thanks xxx! » en bas d'écran force_default_wallpaper = 0 background_color = 0x1a1a2e # bleu nuit FWS (aucun fond requis) } # Démarrage de session : barre d'état, notifications, réseau dans le tray, # agent d'authentification GUI (indispensable pour les apps qui demandent # les droits admin : gestionnaire de disques, blueman…). exec-once = waybar exec-once = mako exec-once = nm-applet # Applet Bluetooth : seulement si un adaptateur existe (en VM il n'y en a # pas → blueman afficherait une erreur « Connection to BlueZ failed »). exec-once = sh -c '[ -n "$(ls -A /sys/class/bluetooth 2>/dev/null)" ] && exec blueman-applet' exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 $mod = SUPER # --- Applications --------------------------------------------------------- bindd = $mod, Return, Ouvrir un terminal (kitty), exec, kitty bindd = $mod SHIFT, Return, Terminal flottant, exec, kitty --class floating-term bindd = $mod, R, Menu des applications, exec, wofi --show drun bindd = $mod, E, Gestionnaire de fichiers, exec, thunar bindd = $mod, B, Ouvrir Firefox, exec, firefox bindd = $mod, K, Afficher les raccourcis clavier, exec, fws-keys # --- Fenêtres --------------------------------------------------------------- bindd = $mod, Q, Fermer la fenêtre, killactive, bindd = $mod, V, Fenêtre flottante ou ancrée, togglefloating, bindd = $mod, F, Plein écran, fullscreen, bindd = $mod, J, Basculer la découpe horizontale/verticale, layoutmsg, togglesplit bindd = $mod, L, Verrouiller l'écran, exec, hyprlock bindd = $mod SHIFT, E, Quitter la session (retour à SDDM), exit, bindd = $mod SHIFT, C, Recharger la configuration Hyprland, exec, hyprctl reload # --- Focus (flèches) --------------------------------------------------------- bindd = $mod, left, Focus à gauche, movefocus, l bindd = $mod, right, Focus à droite, movefocus, r bindd = $mod, up, Focus en haut, movefocus, u bindd = $mod, down, Focus en bas, movefocus, d # --- Déplacer la fenêtre (Maj + flèches) --------------------------------------- bindd = $mod SHIFT, left, Déplacer la fenêtre à gauche, movewindow, l bindd = $mod SHIFT, right, Déplacer la fenêtre à droite, movewindow, r bindd = $mod SHIFT, up, Déplacer la fenêtre en haut, movewindow, u bindd = $mod SHIFT, down, Déplacer la fenêtre en bas, movewindow, d # --- Redimensionner (Ctrl + flèches, maintien possible) ------------------------ binde = $mod CTRL, left, resizeactive, -30 0 binde = $mod CTRL, right, resizeactive, 30 0 binde = $mod CTRL, up, resizeactive, 0 -30 binde = $mod CTRL, down, resizeactive, 0 30 # --- Espaces de travail 1-10 (0 = espace 10, comme i3) -------------------------- bindd = $mod, 1, Aller à l'espace 1, workspace, 1 bindd = $mod, 2, Aller à l'espace 2, workspace, 2 bindd = $mod, 3, Aller à l'espace 3, workspace, 3 bindd = $mod, 4, Aller à l'espace 4, workspace, 4 bindd = $mod, 5, Aller à l'espace 5, workspace, 5 bindd = $mod, 6, Aller à l'espace 6, workspace, 6 bindd = $mod, 7, Aller à l'espace 7, workspace, 7 bindd = $mod, 8, Aller à l'espace 8, workspace, 8 bindd = $mod, 9, Aller à l'espace 9, workspace, 9 bindd = $mod, 0, Aller à l'espace 10, workspace, 10 bindd = $mod SHIFT, 1, Envoyer la fenêtre vers l'espace 1, movetoworkspace, 1 bindd = $mod SHIFT, 2, Envoyer la fenêtre vers l'espace 2, movetoworkspace, 2 bindd = $mod SHIFT, 3, Envoyer la fenêtre vers l'espace 3, movetoworkspace, 3 bindd = $mod SHIFT, 4, Envoyer la fenêtre vers l'espace 4, movetoworkspace, 4 bindd = $mod SHIFT, 5, Envoyer la fenêtre vers l'espace 5, movetoworkspace, 5 bindd = $mod SHIFT, 6, Envoyer la fenêtre vers l'espace 6, movetoworkspace, 6 bindd = $mod SHIFT, 7, Envoyer la fenêtre vers l'espace 7, movetoworkspace, 7 bindd = $mod SHIFT, 8, Envoyer la fenêtre vers l'espace 8, movetoworkspace, 8 bindd = $mod SHIFT, 9, Envoyer la fenêtre vers l'espace 9, movetoworkspace, 9 bindd = $mod SHIFT, 0, Envoyer la fenêtre vers l'espace 10, movetoworkspace, 10 # --- Multi-écrans (comme i3 : Super+Ctrl+1/2 = écran gauche/droit) ------------- bindd = $mod CTRL, 1, Envoyer la fenêtre vers l'écran de gauche, movewindow, mon:l bindd = $mod CTRL, 2, Envoyer la fenêtre vers l'écran de droite, movewindow, mon:r # --- Molette = changer d'espace de travail -------------------------------------- bindd = $mod, mouse_up, Espace de travail précédent, workspace, e-1 bindd = $mod, mouse_down, Espace de travail suivant, workspace, e+1 # --- Scratchpad (espace spécial) ------------------------------------------------- bindd = $mod, S, Afficher le scratchpad, togglespecialworkspace, magic bindd = $mod SHIFT, S, Envoyer la fenêtre au scratchpad, movetoworkspace, special:magic # --- Captures d'écran (grim/slurp → presse-papier ou ~/Images) ------------------- bindd = , Print, Capture plein écran vers le presse-papier, exec, grim - | wl-copy bindd = $mod, Print, Capture d'une zone vers le presse-papier, exec, grim -g "$(slurp)" - | wl-copy bindd = $mod SHIFT, Print, Capture d'une zone vers ~/Images, exec, sh -c 'mkdir -p ~/Images && grim -g "$(slurp)" ~/Images/capture_$(date +%Y-%m-%d_%H-%M-%S).png' # --- Multimédia (touches XF86 : volume via PipeWire, lecture via playerctl) ------ bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioNext, exec, playerctl next bindl = , XF86AudioPrev, exec, playerctl previous # --- Luminosité de l'écran (portables : touches Fn) ------------------------------ bindel = , XF86MonBrightnessUp, exec, brightnessctl set +5% bindel = , XF86MonBrightnessDown, exec, brightnessctl set 5%- # --- Souris : déplacer / redimensionner les fenêtres ----------------------------- bindm = $mod, mouse:272, movewindow bindm = $mod, mouse:273, resizewindow # --- Règles de fenêtres (comme i3) ------------------------------------------------ # Syntaxe Hyprland ≥ 0.55 : champs « » + cibles « match:… » # (validé contre le binaire avec --verify-config). windowrule = float on, match:class ^(floating-term)$ windowrule = size 900 550, match:class ^(floating-term)$ windowrule = float on, match:class ^([Pp]avucontrol|org.pulseaudio.pavucontrol)$ windowrule = float on, match:class ^(.?[Bb]lueman-manager.*)$ windowrule = float on, match:title ^(Picture-in-Picture)$