source = ~/.config/hypr/hardware.conf source = ~/.config/hypr/monitors.conf source = ~/.config/hypr/hyprcolors.conf # monitor = , preferred, auto, 1.0 monitor = eDP-1, addreserved, 36, 0, 0, 0 monitor = HDMI-A-1, addreserved, 36, 0, 0, 0 monitor = HEADLESS, addreserved, 36, 0, 0, 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 = ags run --gtk 3 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-green-Dark # env = GTK_ICON_THEME, BeautyLine 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 = 2 passes = 2 new_optimizations = true ignore_opacity = true special = false brightness = 0.2 } shadow { range = 12 render_power = 3 scale = 0.998 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, slide animation = specialWorkspace , 1, 3, default, slidevert 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 # } #} } # 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 steam, workspace special windowrule = match:class (mpv|loupe|com.gabm.satty), float on windowrule = match:class (mpv|loupe|com.gabm.satty), size 90% 95% windowrule = match:class chromium-browser, no_shadow on # 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 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 animate_manual_resizes = 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 = true animate_manual_resizes = true enable_anr_dialog = false background_color = 0x222222 } cursor { persistent_warps = true } xwayland { force_zero_scaling = true }