Files
dotfiles/hypr/hyprland.conf
2026-05-05 18:48:08 -07:00

196 lines
5.7 KiB
Plaintext

source = ~/.config/hypr/hardware.conf
source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/hyprcolors.conf
# monitor = , preferred, auto, 1.0
# Run stuff on launch
env = PATH, $PATH:$HOME/.local/bin:$HOME/.cargo/bin
# exec-once = hyprlock
exec-once = quickshell
exec-once = hypridle
exec-once = /lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = keyd-application-mapper -d
exec-once = hyprpm reload
exec-once = kanshi
# Theming with envvars for some reason
env = XCURSOR_SIZE, 22
env = XCURSOR_THEME, GoogleDot-Black
envd = GTK_THEME, Graphite-Dark
env = GTK_ICON_THEME, YAMIS
env = HYPRCURSOR_SIZE, 22
env = HYPRCURSOR_THEME, GoogleDot-hypr
env = QT_QPA_PLATFORMTHEME, gtk3
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
}
}
general {
gaps_in = 4
gaps_out = 6
border_size = 0
layout = dwindle
no_focus_fallback = true
}
decoration {
rounding = 12
rounding_power = 2
# active_opacity = 0.9
# inactive_opacity = 0.92
# fullscreen_opacity = 1.0
blur {
enabled = true
size = 8
passes = 3
new_optimizations = true
ignore_opacity = true
special = false
brightness = 0.2
}
shadow {
range = 18
render_power = 4
scale = 0.9995
color = rgba(000000ff)
}
}
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, slidefade 15%
animation = specialWorkspace , 1, 3, default, slidefadevert 10%
animation = zoomFactor , 1, 3, default
animation = monitorAdded , 1, 3, default
}
dwindle {
preserve_split = true
smart_split = false
use_active_for_splits = true
force_split = 2
}
plugin {
hyprexpo {
columns = 3
gap_size = 6
bg_col = rgb(111111)
workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1
skip_empty = false
}
#dynamic-cursors {
# enabled = true
# mode = stretch
# stretch {
# limit = 3000
# function = linear
# }
#}
# hymission {
# outer_padding_top = 80
# outer_padding_right = 80
# outer_padding_left = 80
# outer_padding_bottom = 80
# expand_selected_window = true
# }
}
# Smart gaps
workspace = w[tv1]s[false], gapsout:0, gapsin:0
workspace = f[1]s[false], gapsout:0, gapsin:0
windowrule = border_size 0, match:float 0, match:workspace w[tv1]s[false]
windowrule = rounding 0, match:float 0, match:workspace w[tv1]s[false]
windowrule = border_size 0, match:float 0, match:workspace f[1]s[false]
windowrule = rounding 0, match:float 0, match:workspace f[1]s[false]
# The bell doesn't fullscreen you, I do.
windowrule = match:class .*, suppress_event fullscreen
# Misc window rules
windowrule = match:title (Write:), float on
windowrule = match:class xdg-desktop-portal-gtk, float on
windowrule = match:title (Open File), no_blur on
windowrule = match:class (Xdg-desktop-portal-gtk), no_blur on
windowrule = match:class (eog), float on, center on
windowrule = match:class steam_app.*, fullscreen on
windowrule = match:class steam_app.*, workspace 5
windowrule = match:class (mpv|loupe|com.gabm.satty), float on
windowrule = match:class (mpv|loupe|com.gabm.satty), size 90% 95%
# windowrule = center 1, floating:1
# Misc layer rules
layerrule = match:namespace bar, animation slide
layerrule = match:namespace swww-daemon, animation popin
layerrule = match:namespace selection, animation fade
layerrule = match:namespace hyprpicker, animation fade
layerrule = match:namespace picker, animation fade
layerrule = match:namespace wayscriber, animation fade
layerrule = match:namespace quickshell, no_anim on
layerrule = match:namespace lazerpopup, animation popin 40%
layerrule = match:namespace notification, no_anim on
layerrule = match:namespace notifpanel, dim_around on
layerrule = match:namespace bar, order 1
layerrule = match:namespace lazerpopup, order 2
layerrule = match:namespace notifpanel, order 3
layerrule = match:namespace notification, order 4
source = ~/.config/hypr/hyprbinds.conf
binds {
disable_keybind_grabbing = true
}
misc {
disable_hyprland_logo = true
disable_splash_rendering = false
on_focus_under_fullscreen = 2
key_press_enables_dpms = true
mouse_move_enables_dpms = true
focus_on_activate = true
session_lock_xray = false
animate_manual_resizes = true
enable_anr_dialog = false
background_color = 0x141414
enable_swallow = true
swallow_regex = ^neovide$
}
cursor {
persistent_warps = true
}
xwayland {
force_zero_scaling = true
}