feat(hyprland): expand hyprland config with keybindings, animations, and window rules
Add comprehensive keybinding descriptions using bindd/binde for keyboard shortcut display, implement Catppuccin Mocha color scheme with blue gradient borders, enable animations with custom bezier curve, configure touchpad settings, add blur/shadow configuration for VM compatibility, implement scratchpad support, add screenshot and multimedia key bindings with PipeWire/playerctl integration, and define window floating rules. Keybindings now match i3/sway FWS configuration with French descriptions that automatically appear in fws-hypr-keys shortcut viewer. Configuration includes multi-screen support, workspace navigation (1-10), window resizing, and various utility bindings.
This commit is contained in:
@@ -1,6 +1,15 @@
|
|||||||
# FWS — configuration Hyprland par défaut.
|
# FWS — configuration Hyprland par défaut.
|
||||||
# Le clavier (__KB_LAYOUT__ / __KB_VARIANT__) est injecté à l'installation,
|
# Le clavier (__KB_LAYOUT__ / __KB_VARIANT__) est injecté à l'installation,
|
||||||
# depuis le choix fait dans Anaconda. Édite ce fichier librement.
|
# 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-hypr-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
|
monitor = , preferred, auto, 1
|
||||||
|
|
||||||
@@ -9,17 +18,47 @@ input {
|
|||||||
kb_variant = __KB_VARIANT__
|
kb_variant = __KB_VARIANT__
|
||||||
follow_mouse = 1
|
follow_mouse = 1
|
||||||
numlock_by_default = true
|
numlock_by_default = true
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = true
|
||||||
|
tap-to-click = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
general {
|
general {
|
||||||
gaps_in = 4
|
gaps_in = 4
|
||||||
gaps_out = 8
|
gaps_out = 8
|
||||||
border_size = 2
|
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
|
layout = dwindle
|
||||||
}
|
}
|
||||||
|
|
||||||
decoration {
|
decoration {
|
||||||
rounding = 6
|
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
|
||||||
|
force_default_wallpaper = 0
|
||||||
|
background_color = 0x1a1a2e # bleu nuit FWS (aucun fond requis)
|
||||||
}
|
}
|
||||||
|
|
||||||
# Barre d'état au démarrage.
|
# Barre d'état au démarrage.
|
||||||
@@ -27,35 +66,97 @@ exec-once = waybar
|
|||||||
|
|
||||||
$mod = SUPER
|
$mod = SUPER
|
||||||
|
|
||||||
# Applications
|
# --- Applications ---------------------------------------------------------
|
||||||
bind = $mod, Return, exec, kitty
|
bindd = $mod, Return, Ouvrir un terminal (kitty), exec, kitty
|
||||||
bind = $mod, E, exec, firefox
|
bindd = $mod SHIFT, Return, Terminal flottant, exec, kitty --class floating-term
|
||||||
bind = $mod, R, exec, wofi --show drun
|
bindd = $mod, R, Menu des applications, exec, wofi --show drun
|
||||||
bind = $mod, Q, killactive,
|
bindd = $mod, E, Gestionnaire de fichiers, exec, thunar
|
||||||
bind = $mod SHIFT, Q, exit,
|
bindd = $mod, B, Ouvrir Firefox, exec, firefox
|
||||||
bind = $mod, V, togglefloating,
|
bindd = $mod, KP_Multiply, Lancer Steam, exec, steam
|
||||||
bind = $mod, F, fullscreen,
|
bindd = $mod, K, Afficher les raccourcis clavier, exec, fws-hypr-keys
|
||||||
|
|
||||||
# Focus
|
# --- Fenêtres ---------------------------------------------------------------
|
||||||
bind = $mod, left, movefocus, l
|
bindd = $mod, Q, Fermer la fenêtre, killactive,
|
||||||
bind = $mod, right, movefocus, r
|
bindd = $mod, V, Fenêtre flottante ou ancrée, togglefloating,
|
||||||
bind = $mod, up, movefocus, u
|
bindd = $mod, F, Plein écran, fullscreen,
|
||||||
bind = $mod, down, movefocus, d
|
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
|
||||||
|
|
||||||
# Espaces de travail 1-6
|
# --- Focus (flèches) ---------------------------------------------------------
|
||||||
bind = $mod, 1, workspace, 1
|
bindd = $mod, left, Focus à gauche, movefocus, l
|
||||||
bind = $mod, 2, workspace, 2
|
bindd = $mod, right, Focus à droite, movefocus, r
|
||||||
bind = $mod, 3, workspace, 3
|
bindd = $mod, up, Focus en haut, movefocus, u
|
||||||
bind = $mod, 4, workspace, 4
|
bindd = $mod, down, Focus en bas, movefocus, d
|
||||||
bind = $mod, 5, workspace, 5
|
|
||||||
bind = $mod, 6, workspace, 6
|
|
||||||
bind = $mod SHIFT, 1, movetoworkspace, 1
|
|
||||||
bind = $mod SHIFT, 2, movetoworkspace, 2
|
|
||||||
bind = $mod SHIFT, 3, movetoworkspace, 3
|
|
||||||
bind = $mod SHIFT, 4, movetoworkspace, 4
|
|
||||||
bind = $mod SHIFT, 5, movetoworkspace, 5
|
|
||||||
bind = $mod SHIFT, 6, movetoworkspace, 6
|
|
||||||
|
|
||||||
# Souris : déplacer / redimensionner les fenêtres
|
# --- 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
|
||||||
|
|
||||||
|
# --- Souris : déplacer / redimensionner les fenêtres -----------------------------
|
||||||
bindm = $mod, mouse:272, movewindow
|
bindm = $mod, mouse:272, movewindow
|
||||||
bindm = $mod, mouse:273, resizewindow
|
bindm = $mod, mouse:273, resizewindow
|
||||||
|
|
||||||
|
# --- Règles de fenêtres (comme i3) ------------------------------------------------
|
||||||
|
# Syntaxe Hyprland ≥ 0.55 : champs « <règle> <valeur> » + 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:title ^(Picture-in-Picture)$
|
||||||
|
|||||||
Reference in New Issue
Block a user