Files
dotfiles/hypr/hyprland.conf
2025-09-20 17:31:05 -07:00

182 lines
4.8 KiB
Plaintext

source = ~/.config/hypr/hardware.conf
source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/hyprcolors.conf
monitor = , preferred, auto, 1.0
monitor = , addreserved, 36, 0, 0, 0
# Run stuff on launch
env = PATH, $PATH:$HOME/.local/bin:$HOME/.cargo/bin
# exec-once = hyprlock
exec-once = hypridle
exec-once = nextcloud
exec-once = /lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = keyd-application-mapper -d
exec-once = ags run
exec-once = hyprpm reload
exec-once = tradjust
exec-once = swww-daemon
# Theming with envvars for some reason
env = XCURSOR_SIZE, 22
env = XCURSOR_THEME, GoogleDot-Black
envd = GTK_THEME, Materia-dark
env = GTK_ICON_THEME, BeautyLine
env = HYPRCURSOR_SIZE, 22
env = HYPRCURSOR_THEME, GoogleDot-Hypr
env = QT_QPA_PLATFORMTHEME, qt6ct
env = QT_QPA_PLATFORM, wayland;xcb
env = FREETYPE_PROPERTIES,cff:no-stem-darkening=0 autofitter:no-stem-darkening=0
# Mouse and keyboard settings
input {
kb_layout = us
kb_variant = dvorak
repeat_delay = 600
touchpad {
natural_scroll = true
}
}
# Disable the trackpad in favour of thinkpad nub
general {
gaps_in = 3
gaps_out = 6
col.active_border = $primary
col.inactive_border = $primary_container
border_size = 2
layout = dwindle
no_focus_fallback = true
}
decoration {
rounding = 10
# active_opacity = 0.9
# inactive_opacity = 0.92
# fullscreen_opacity = 1.0
blur {
enabled = true
size = 6
passes = 4
new_optimizations = true
ignore_opacity = true
special = true
brightness = 0.4
xray = true;
}
}
workspace = special:special, gapsin:32, gapsout:64
animations {
enabled = yes
bezier = default , 0.16, 1 , 0.30, 1
bezier = easeOut , 0.16, 1 , 0.3 , 1
bezier = easeIn , 0.64, 0 , 0.78, 0
animation = fadeIn , 1, 4, default
animation = fadeOut , 1, 3, default
animation = windowsIn , 1, 4, default, popin 85%
animation = windowsOut , 1, 4, default, popin 85%
animation = windowsMove , 1, 3, easeOut
animation = border , 1, 5, default
animation = layersIn , 1, 3, easeOut, slide
animation = layersOut , 1, 2, easeIn, slide
animation = fadeLayersIn , 1, 3, easeOut
animation = fadeLayersOut , 1, 2, easeIn
animation = workspaces , 1, 3, easeOut, slide
animation = specialWorkspace , 1, 3, default, slidevert
animation = zoomFactor , 1, 3, default
}
dwindle {
preserve_split = true
smart_split = false
use_active_for_splits = true
force_split = 2
}
plugin {
hyprexpo {
columns = 3
gap_size = 5
bg_col = rgb(111111)
workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1
enable_gesture = true # laptop touchpad
gesture_fingers = 3 # 3 or 4
gesture_distance = 300 # how far is the "max"
gesture_positive = true # positive = swipe down. Negative = swipe up.
}
#dynamic-cursors {
# enabled = true
# mode = stretch
# stretch {
# limit = 3000
# function = linear
# }
#}
}
# Smart gaps
workspace = w[tv1] s[false], gapsout:0, gapsin:0
workspace = s[true], gapsout:64, gapsin:32
windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
windowrule = rounding 0, floating:0, onworkspace:w[tv1] s[false]
# The bell doesn't fullscreen you, I do.
windowrulev2 = suppressevent fullscreen, class:.*
# Misc window rules
windowrule = float, title:(Write:)
windowrule = float, class:(xdg-desktop-portal-gtk)
windowrule = noblur, title:(Open File)
windowrule = float, center, class:(eog)
windowrule = fullscreen, class:steam_app*
windowrule = float, class:(mpv|loupe|org.gnome.eog)
windowrule = size 95% 90%, class:(mpv|loupe|org.gnome.eog)
windowrule = center 1, floating:1
# Misc layer rules
layerrule = animation slide, .*bar.*
layerrule = blur, logout_dialog
layerrule = animation fade, logout_dialog
layerrule = animation fade, selection
layerrule = animation fade, hyprpicker
layerrule = animation popin 40%, lazerpopup
layerrule = noanim, notification
layerrule = dimaround, notifpanel
layerrule = order 1, bar
layerrule = order 2, lazerpopup
layerrule = order 3, notifpanel
layerrule = order 4, notification
source = ~/.config/hypr/hyprbinds.conf
misc {
disable_hyprland_logo = true
animate_manual_resizes = true
disable_splash_rendering = false
new_window_takes_over_fullscreen = 2
key_press_enables_dpms = true
focus_on_activate = true
session_lock_xray = true
animate_manual_resizes = true
}
cursor {
persistent_warps = true
}
xwayland {
force_zero_scaling = true
}
debug {
full_cm_proto = true
}