Fully updated the Hyprland config

This commit is contained in:
Gu://em_ 2026-04-27 20:12:34 +02:00
parent 3470ffdfd7
commit 83ab1b1d6b
24 changed files with 331 additions and 83 deletions

View file

@ -3,14 +3,12 @@
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
$active_color = rgba(98C1D9FF)
$inactive_color = rgba(595959aa)
source = ~/.config/hypr/config/colors.conf
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 1
gaps_out = 0
gaps_out = 1
border_size = 1
@ -46,15 +44,52 @@ decoration {
blur {
enabled = true
size = 6
passes = 3
passes = 4
vibrancy = 0.1696
}
}
# Apply blur to waybar
layerrule = blur,waybar
# Layer rules
layerrule {
name = side-panel
blur = on
ignore_alpha = 0.2
animation = slide right
dim_around = on
match:namespace = ^(swaync-control-center)$
}
layerrule {
name = launcher
blur = off
animation = popin 90%
match:namespace = ^(rofi)$
}
layerrule {
name = status-bar
blur = off
animation = slide up
match:namespace = ^(waybar)$
}
layerrule {
name = screenshot-selection
blur = off
animation = fade
match:namespace = ^(selection)$
}
## Old
# layerrule = blur, swaync-control-center
# layerrule = blur, swaync-notification-window
# layerrule = ignorezero, swaync-control-center
# layerrule = ignorezero, swaync-notification-window
# layerrule = ignorealpha 0.5, swaync-control-center
# layerrule = ignorealpha 0.5, swaync-notification-window
# https://wiki.hyprland.org/Configuring/Variables/#animations
@ -74,7 +109,7 @@ animations {
# Animations
animation = global, 1, 10, default
animation = border, 1, 5.39, easeOutQuint
animation = border, 1, 4, easeOutQuint
animation = windows, 1, 3.79, easeOutQuint
animation = windowsIn, 1, 3.1, easeOutQuint, popin 87%
@ -85,17 +120,17 @@ animations {
animation = fade, 1, 3.03, quick
animation = layers, 1, 3.81, easeOutQuint
animation = layersIn, 1, 4, easeOutQuint, fade
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinear
animation = layersIn, 1, 3, easeOutQuint, popin 85%
animation = layersOut, 1, 3, linear, popin
# animation = fadeLayersIn, 1, 1.79, almostLinear
# animation = fadeLayersOut, 1, 1.39, almostLinear
animation = workspaces, 1, 1.94, almostLinear, fade
animation = workspaces, 1, 2.2 , easeOutQuint, slidefadevert
animation = workspacesIn, 1, 3, easeOutQuint, slide
animation = workspacesOut, 1, 3, easeOutQuint, slide
#animation = workspacesIn, 1, 3, easeOutQuint, slidefade
#animation = workspacesOut, 1, 5, easeOutQuint, slidefade
# animation = workspacesIn, 1, 3, easeOutQuint, slidefade
# animation = workspacesOut, 1, 5, easeOutQuint, slidefade
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
@ -135,32 +170,107 @@ misc {
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
windowrule {
name = suppress-maximize-events
suppress_event = maximize
match:class = .*
}
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
windowrule {
name = fix-xwayland-drags
match:class = ^$
match:title = ^$
match:xwayland = true
match:float = true
match:fullscreen = false
match:pin = false
no_focus = true
}
# Albert
windowrule=noborder,class:^(albert)$
windowrule=noblur,class:^(albert)$
windowrule=noshadow,class:^(albert)$
windowrule=float,class:^(albert)$
windowrule=stayfocused,class:^(albert)$
windowrule=nodim,class:^(albert)$
windowrule {
name = albert
border_size = 0
no_blur = on
no_shadow = on
float = on
stay_focused = on
no_dim = on
match:class = ^(albert)$
}
# Prism Launcher
windowrule=pseudo, class:(org.prismlauncher.PrismLauncher)
windowrule=size 65% 70%, class:(org.prismlauncher.PrismLauncher), title:^(Prism Launcher .*)$
windowrule {
name = prismlauncher-all
pseudo = on
match:class = (org.prismlauncher.PrismLauncher)
}
windowrule {
name = prismlauncher-main
size = (monitor_w*0.65) (monitor_h*0.7)
match:class = (org.prismlauncher.PrismLauncher)
match:title = ^(Prism Launcher .*)$
}
# Nautilus
windowrule {
name = nautilus-main
pseudo = on
size = (monitor_w*0.65) (monitor_h*0.7)
match:class = (org.gnome.Nautilus) # initialTitle:^(Loading…)$
}
# GTK file picker
windowrule {
name = gtk-file-picker
float = on
size = (monitor_w*0.65) (monitor_h*0.7)
match:class = (xdg-desktop-portal-gtk)
}
# Vivado
## Loading screen
windowrule {
name = vivado-loading-screen
float = on
center = on
match:class = (ui-PlanAhead)
}
windowrule {
name = vivado-loading-screen-2
size = 397 295
match:class = (ui-PlanAhead) title:^(win0)$
}
## Main window
windowrule {
name = vivado-main
tile = on
match:class = (Vivado)
}
# Kdenlive
windowrule {
name = kdenlive-all
pseudo = on
match:class = (org.kde.kdenlive)
}
windowrule {
name = kdenlive-welcome
size = (512) (544)
match:class = (org.kde.kdenlive) # initialTitle:^(Kdenlive)$
}
# TODO Automatically fullscreen single apps
# - Seems impossible for now (try mixing with workspace rules)
# Default size for floating windows
## TODO
#windowrulev2 = size 100 100,floating:1
# Increase gaps for single apps
workspace=w[t1], gapsout:2
## Usless since I changed the default gap but may be useful if you decide to reset it to 0
#workspace=w[t1], gapsout:2

View file

@ -0,0 +1 @@
../../../colors/hyprland.conf

View file

@ -5,10 +5,10 @@
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = kitty
$fileManager = cosmic-files
$menu = albert toggle
$notificationsManager = fnott
$terminal = foot
$fileManager = nautilus
$menu = rofi -show drun
$notificationManager = swaync-client -t
#################

View file

@ -18,9 +18,7 @@ input {
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = true
}
gesture = 3, horizontal, workspace
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
@ -46,14 +44,17 @@ bind = $mainMod, D, exec, $menu # Legacy menu shortcut
bind = $mainMod, L, exec, hyprlock # Lockscreen
bind = $mainMod, B, exec, ~/.config/hypr/scripts/toggle-waybar.sh # Toggle sidebar
bind = $mainMod SHIFT, R, exec, ~/.config/hypr/scripts/reload.sh # Reload desktop
bind = $mainMod, F11, exec, ~/.config/hypr/scripts/gamemode.sh # Gamemode
bind = $mainMod, F11, exec, ~/.config/hypr/scripts/game-mode.sh # Gamemode
bind = $mainMod, F10, exec, ~/.config/hypr/scripts/sharp-mode.sh # Sharp mode
bind = $mainMod SHIFT, M, exit, # Exit desktop session
# Shortcuts
bind = $mainMod, RETURN, exec, $terminal
bind = $mainMod, X, exec, $terminal # Absolutely not because I dislocated my arm
bind = $mainMod, SPACE, exec, $menu
bind = $mainMod, E, exec, $fileManager
bindel = , XF86Launch1, exec, kitty vim ~/.config/hypr/config
bind = $mainMod, A, exec, $notificationManager
bindel = , XF86Launch1, exec, $terminal hx ~/.config/hypr/config # Replace by default editor
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
@ -61,6 +62,12 @@ bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Move windows with mainMod + shift + arrow keys
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d
# Layout
bind = $mainMod, F, fullscreen,
bind = $mainMod, V, togglesplit, # Horizontal/vertical split
@ -134,6 +141,10 @@ bindl = , XF86AudioPrev, exec, playerctl previous
## Screenshot
bind = , Print, exec, ~/.config/hypr/scripts/screenshot.sh
bind = SHIFT, Print, exec, ~/.config/hypr/scripts/screenshot.sh --fullscreen
# Color picker
bind = $mainMod SHIFT, C, exec, hyprpicker -a
## Touchpad toggle
### On galaxy books, pressing the disable touchpad key also triggers SUPER and
@ -143,4 +154,10 @@ bind = SUPER CONTROL, XF86TouchpadToggle, exec, ~/.config/hypr/scripts/toggle-to
## Keyboard layout toggle
### Only works between AZERTY and QWERTY because of differences in the numbers row
### that prevent using the default way provided by hyprland
bind = $mainMod CONTROL, SPACE, exec, ~/.config/hypr/scripts/change-kb-layout.sh
bind = $mainMod CONTROL, SPACE, exec, ~/.config/hypr/scripts/change-kb-layout.sh
# Lock laptop on lid close
bindl=,switch:off:Lid Switch, exec, hyprlock --immediate
## Overview plugin
#bind = $mainMod, TAB, overview:toggle, toggle

View file

@ -1,8 +1,8 @@
## Overrides inputs for QWERTY layout
input {
kb_layout = us
kb_variant =
kb_layout = fr
kb_variant = us
kb_model =
kb_options =
kb_rules =
@ -30,4 +30,4 @@ bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod SHIFT, 0, movetoworkspace, 10

View file

@ -10,6 +10,3 @@ plugin {
gapsOut = 20
}
}
# Toggle overview (Read plugins section in wiki before decommenting)
# bind = $mainMod, TAB, overview:toggle, toggle

View file

@ -0,0 +1,21 @@
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
# All screens
monitorv2 {
output =
mode = preferred
position = auto-up
scale = auto
}
# Laptop screen
monitorv2 {
output = eDP-1
mode = preferred
position = auto-down
scale = 1
}

View file

@ -0,0 +1,23 @@
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
# Laptop screen
monitorv2 {
output = eDP-1 # <- You may need to change that
mode = preferred
position = 0x0
scale = 1
}
# Other monitors (mirror laptop screen)
monitorv2 {
output = *
mode = preferred
position = auto
scale = 1
mirror = eDP-1 # <- Also don't forget this one
}

View file

@ -1,12 +1,14 @@
# BACKGROUND
background {
monitor =
path = ~/.config/hypr/images/lockscreen.jpg
blur_passes = 0
#contrast = 0.8916
#brightness = 0.8172
#vibrancy = 0.1696
#vibrancy_darkness = 0.0
path = ~/.config/hypr/images/wallpaper.jpg
blur_passes = 3
blur_size = 4
noise = 0.0
contrast = 0.7
brightness = 0.8172
vibrancy = 0.2
vibrancy_darkness = 0.0
}
# GENERAL
@ -26,12 +28,12 @@ input-field {
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = rgba(200, 200, 200, 1)
outer_color = rgba(200, 200, 200, 0.4)
inner_color = rgba(100, 114, 125, 1)
font_color = rgb(200, 200, 200)
fade_on_empty = false
font_family = DejaVu Sans
placeholder_text = <i><span foreground="##ffffff99">Enter Pass</span></i>
placeholder_text = <i><span foreground="##ffffff99">Enter password</span></i>
hide_input = false
position = 0, -350
halign = center
@ -41,7 +43,6 @@ input-field {
# Time
label {
monitor =
#text = cmd[update:1000] echo "<span>$(date +"%H:%M")</span>"
text = $TIME
color = rgba(216, 222, 233, 1)
font_size = 130
@ -49,9 +50,6 @@ label {
position = 0, 280
halign = center
valign = center
# TODO make shadowing work
#shadow_passes = 10
#shadow_size = 3
}
# Day-Month-Date
@ -83,16 +81,40 @@ label {
#}
# USER
#label {
# monitor =
# text = Hi, $USER
# color = rgba(216, 222, 233, 0.70)
# font_size = 20
# font_family = DejaVu Sans
# position = 0, -200
# halign = center
# valign = center
#}
label {
monitor =
text = $USER
color = rgba(216, 222, 233, 0.70)
font_size = 20
font_family = JetbrainsMonoNL NF
position = 0, -200
halign = center
valign = center
}
# Timer
label {
monitor =
text = cmd[update:0] echo "Locked since $TIME"
color = rgba(216, 222, 233, 0.40)
font_size = 20
font_family = JetbrainsMonoNL NF
position = 0, -250
halign = center
valign = center
}
# # Failed login attempts
# label {
# monitor =
# text = cmd[update:1000] echo "$ATTEMPTS Failed attempts"
# color = rgba(216, 222, 233, 0.40)
# font_size = 20
# font_family = JetbrainsMonoNL NF
# position = 0, -250
# halign = center
# valign = center
# }
# CURRENT SONG
label {
@ -100,7 +122,7 @@ label {
text = cmd[update:1000] echo "$(~/.config/hypr/scripts/songdetails.sh)"
color = rgba(255, 255, 255, 0.7)
font_size = 16
font_family = DejaVu Sans
font_family = JetbrainsMonoNL NF
position = 0, 20
halign = center
valign = bottom

View file

@ -1,2 +1,6 @@
preload = ~/.config/hypr/images/wallpaper.png
wallpaper = , ~/.config/hypr/images/wallpaper.png
wallpaper {
monitor =
path = ~/.config/hypr/images/wallpaper.jpg
}
splash = false

View file

@ -0,0 +1,12 @@
max-gamma = 150
profile {
time = 8:00
identity = true
}
profile {
time = 21:00
temperature = 5500
gamma = 0.8
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 887 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 MiB

View file

@ -5,8 +5,8 @@
# If you want to add your own applications you may rather want to use exec-once in the environment.conf file
hyprpaper &
hyprpm reload -nn &
albert &
# mako &
# Enable this if you want to use plugins
# hyprpm reload &
swaync &
systemctl --user start hyprpolkitagent &
~/.config/hypr/scripts/restore-waybar.sh

View file

@ -21,13 +21,12 @@ en_to_fr() {
}
if ! [ -f "${status_file}" ]; then
hyprctl notify 3 3000 0 "Status file missing"
hyprctl notify 2 6000 0 "Use Mod + Ctrl + Space to change keyboard layout"
en_to_fr
fr_to_en
else
if [ $(cat "${status_file}") = "fr" ]; then
fr_to_en
elif [ $(cat "${status_file}") = "en" ]; then
en_to_fr
fi
fi
fi

View file

@ -1,6 +1,6 @@
killall albert
killall hyprpaper
killall waybar
killall swaync
hyprctl reload

View file

@ -1 +1,13 @@
grim -g "$(slurp)" $HOME/Pictures/Screenshots/$(date +'%F_%T.png') && hyprctl notify 1 2000 0 Screenshot saved!
save_path=$HOME/Pictures/Screenshots/$(date +'%F_%T.png')
if [ $# -eq 0 ]; then
grim -g "$(slurp)" $save_path && hyprctl notify 1 2000 0 "Screenshot saved!"
elif [ $# -eq 1 ]; then
if [[ $1 == "--fullscreen" ]]; then
grim $save_path && hyprctl notify 1 2000 0 Screenshot saved!
fi
fi
exit 0

View file

@ -0,0 +1,21 @@
#!/usr/bin/env sh
# Disables animations accros the desktop (as well as some other tweaks)
# Similar to game mode but with the goal to enhance productivity
# From Hyprland documentation - https://wiki.hyprland.org/0.41.2/Configuring/Uncommon-tips--tricks/#toggle-animationsbluretc-hotkey
HYPRSHARPMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}')
if [ "$HYPRSHARPMODE" = 1 ] ; then
hyprctl --batch "\
keyword animations:enabled 0;\
keyword general:gaps_in 0;\
keyword general:gaps_out 0;\
keyword general:border_size 1;\
keyword decoration:rounding 0"
hyprctl notify 1 2000 0 "Enabled Sharp mode"
exit
fi
hyprctl reload
# ~/.config/hypr/scripts/restore-waybar.sh
hyprctl notify 1 2000 0 "Disabled Sharp mode"

View file

@ -1 +1 @@
fr
en