Files
dotfiles/.config/hypr/hyprland.conf
2025-12-11 19:19:45 +01:00

301 lines
9.2 KiB
Plaintext
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1, 1920x1080@60, 2560x0, 1
monitor=HDMI-A-2, 2560x1440@74.78, 0x0, 1
#monitor=DP-1,2560x1440@60,1920x0, 1
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
debug {
disable_logs=false
}
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Some default env vars.
env = XCURSOR_SIZE,48
env = XDG_CURRENT_DESKTOP=Hyprland
env = XDG_SESSION_TYPE=wayland
env = XDG_SESSION_DESKTOP=Hyprland
env = XDG_SESSION_HOME=~
#auto start
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once=hyprland-autoname-workspaces
exec-once=hyprctl setcursor Bibata-Modern-Classic 48
exec-once=waybar
exec-once=wpaperd
exec-once=/usr/lib/polkit-kde-authentication-agent-1
#exec-once=[workspace 1] firefox
#apps
exec-once=~/bin/startup.sh
exec-once=~/bin/suspend.sh
workspace = 1,name:web, default:true
workspace = 2,name:files
workspace = 3,name:edit
workspace = 5,name:audio
misc {
mouse_move_enables_dpms = true
key_press_enables_dpms = true
}
xwayland {
force_zero_scaling = true
}
ecosystem {
no_update_news = true
no_donation_nag = true
}
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = ch
kb_variant = fr
kb_model =
kb_options = grp:alt_space_toggle
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = yes
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 2
gaps_out = 2
border_size = 2
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
layout = dwindle
}
cursor {
inactive_timeout = 3
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 10
blur {
enabled = true
size = 3
passes = 1
}
#drop_shadow = yes
#shadow_range = 4
#shadow_render_power = 3
#col.shadow = rgba(1a1a1aee)
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
#no_gaps_when_only = 1
}
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
#new_is_master = true
#no_gaps_when_only=true
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
#workspace_swipe = off
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
#device:epic-mouse-v1 {
# sensitivity = -0.5
#}
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, wezterm start #gnome-terminal #alacritty -e screen
bind = $mainMod SHIFT, Q, exec, alacritty
bind = $mainMod, C, killactive,
bind = $mainMod, W, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, nemo
bind = $mainMod, Y, exec, copyq toggle
bind = $mainMod, A, exec, swaync-client -t -sw
bind = $mainMod, V, togglefloating,
bind = $mainMod, space, exec, fuzzel
#bind = $mainMod, space, exec, wofi --show drun
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, L, exec, swaylock --screenshots --effect-blur 7x5 --clock
bind = $mainMod, F, fullscreen,
#laptop screen brightness
bind = $mainMod ALT, 1, exec, sudo brightnessctl s 10%
bind = $mainMod ALT, 2, exec, sudo brightnessctl s 20%
bind = $mainMod ALT, 3, exec, sudo brightnessctl s 30%
bind = $mainMod ALT, 4, exec, sudo brightnessctl s 40%
bind = $mainMod ALT, 5, exec, sudo brightnessctl s 50%
bind = $mainMod ALT, 6, exec, sudo brightnessctl s 60%
bind = $mainMod ALT, 7, exec, sudo brightnessctl s 70%
bind = $mainMod ALT, 8, exec, sudo brightnessctl s 80%
bind = $mainMod ALT, 9, exec, sudo brightnessctl s 90%
bind = $mainMod ALT, 0, exec, sudo brightnessctl s 100%
bind = , XF86MonBrightnessUp, exec, sudo brightnessctl s "+10%"
bind = , XF86MonBrightnessDown, exec, sudo brightnessctl s "10%-"
#lid binds
#bindl = , switch:on:Lid Switch, exec, swaylock --screenshots --effect-blur 7x5 --clock
# trigger when the switch is turning off
bindl = , switch:off:Lid Switch,exec,hyprctl keyword monitor "eDP-1, preferred, 0x0, 1"
# # trigger when the switch is turning on
bindl = , switch:on:Lid Switch,exec,hyprctl keyword monitor "eDP-1, disable"
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
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 CTRL, 1, movetoworkspacesilent, 1
bind = $mainMod CTRL, 2, movetoworkspacesilent, 2
bind = $mainMod CTRL, 3, movetoworkspacesilent, 3
bind = $mainMod CTRL, 4, movetoworkspacesilent, 4
bind = $mainMod CTRL, 5, movetoworkspacesilent, 5
bind = $mainMod CTRL, 6, movetoworkspacesilent, 6
bind = $mainMod CTRL, 7, movetoworkspacesilent, 7
bind = $mainMod CTRL, 8, movetoworkspacesilent, 8
bind = $mainMod CTRL, 9, movetoworkspacesilent, 9
bind = $mainMod CTRL, 0, movetoworkspacesilent, 10
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Scroll workspaces with ctrl + mod + left || right keys
bind = $mainMod CTRL, left, workspace, e-1
bind = $mainMod CTRL, right, workspace, e+1
#multimedia keys
#bind = ,XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
bind = ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise
#bind = ,code:115, exec, swayosd-client --output-volume raise
#bind = ,XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
bind = ,XF86AudioLowerVolume, exec, swayosd-client --output-volume lower
#bind = ,code:114, exec, swayosd-client --output-volume lower
#bind = ,XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
bind = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
#bind = ,code:113, exec, swayosd-client --output-volume mute-toggle
bind = ,XF86AudioPlay, exec, playerctl play-pause
bind = ,XF86PowerDown, exec, shutdown -h now
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
#media control
$player = audacious
bind = ALT, space, exec, playerctl -p $player play-pause
bind = ALT, q, exec, playerctl -p $player next
bind = ALT, a, exec, playerctl -p $player previous
#screenshot
#bind = $mainMod, Shift_R , exec, hyprshot --clipboard-only -m region
bind = , Print, exec, hyprshot --clipboard-only -m region
#windows rules
#windowrule = workspace 5, audacious
#windowrule = workspace 1, firefox
windowrule = float, class:com.github.hluk.copyq
#windowrule = float,title:^(.*)Aria2(.*)Download(.*)Firefox(.*)$
windowrule=float,class:clight-gui
windowrule=float,class:localsend
windowrule=float,class:blueman-manager
#windowrule=workspace 10 silent,class:org.keepassxc.KeePassXC
windowrule = stayfocused,class:(steam),title:(^$)
windowrule = stayfocused,class:(zoom),title:(^$)
# To get more information about a windows class, title, XWayland status or its size, you can use `hyprctl clients`. (From Hyprland Wiki)
windowrulev2 = float,class:^(one.alynx.showmethekey)$
windowrulev2 = float,class:^(showmethekey-gtk)$ # make window floating
windowrulev2 = pin,class:^(showmethekey-gtk)$ # pin window
windowrule=tile,title:A Ren'Py Game