################ ### MONITORS ### ################ source = ~/.config/hypr/monitors.conf source = ~/.config/hypr/workspaces.conf ################# ### AUTOSTART ### ################# # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: source = ~/.config/hypr/conf.d/autostart.conf ############## ### COLORS ### ############## source = ~/.config/hypr/conf.d/theme.conf ############################# ### ENVIRONMENT VARIABLES ### ############################# # uwsm handles those ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hyprland.org/Configuring/Variables/ # https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 5 gaps_out = 5,5,5,5 border_size = 2 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = $border_active col.inactive_border = $border_inactive col.nogroup_border = $border_nogroup_inactive col.nogroup_border_active = $border_nogroup_active # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = false # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false layout = master } render { new_render_scheduling = true } cursor { hide_on_key_press = true # Hide cursor when typing persistent_warps = true # Cursor returns to last position in window warp_on_change_workspace = true # Move cursor to focused window on workspace switch inactive_timeout = 0 zoom_factor = 1.0 zoom_rigid = false enable_hyprcursor = true sync_gsettings_theme = true } # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 5 # Change transparency of focused and unfocused windows active_opacity = 1.0 inactive_opacity = 1.0 # Dim inactive windows dim_modal = true dim_inactive = true dim_strength = 0.1 shadow { enabled = false range = 4 render_power = 3 color = $dec_shadow } # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true size = 3 passes = 1 vibrancy = 0.1696 } } # https://wiki.hyprland.org/Configuring/Variables/#animations animations { enabled = yes, please :) # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = easeOutQuint,0.23,1,0.32,1 bezier = easeInOutCubic,0.65,0.05,0.36,1 bezier = linear,0,0,1,1 bezier = almostLinear,0.5,0.5,0.75,1.0 bezier = quick,0.15,0,0.1,1 animation = global, 1, 10, default animation = border, 1, 5.39, easeOutQuint animation = windows, 1, 4.79, easeOutQuint animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% animation = windowsOut, 1, 1.49, linear, popin 87% animation = fadeIn, 1, 1.73, almostLinear animation = fadeOut, 1, 1.46, almostLinear 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 = workspaces, 1, 1.94, almostLinear, fade animation = workspacesIn, 1, 1.21, almostLinear, fade animation = workspacesOut, 1, 1.94, almostLinear, fade animation = specialWorkspace, 1, 1.5, easeOutQuint, slidevert } # Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ # "Smart gaps" / "No gaps when only" # uncomment all if you wish to use that. # workspace = w[tv1], gapsout:0, gapsin:0 # workspace = f[1], gapsout:0, gapsin:0 # windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1] # windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1] # windowrulev2 = bordersize 0, floating:0, onworkspace:f[1] # windowrulev2 = rounding 0, floating:0, onworkspace:f[1] # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more dwindle { pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # You probably want this smart_split = true } # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more master { orientation = center center_master_fallback = left slave_count_for_center_master = 4 mfact = 0.60 new_status = slave new_on_top = true new_on_active = after inherit_fullscreen = true allow_small_split = false special_scale_factor = 0.8 drop_at_cursor = true } # https://wiki.hyprland.org/Configuring/Variables/#misc misc { force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( vrr = 2 vfr = true mouse_move_enables_dpms = true key_press_enables_dpms = true layers_hog_keyboard_focus = true mouse_move_focuses_monitor = true col.splash = $splash_text } ############# ### INPUT ### ############# # https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = ultimatekeys kb_options = caps:escape_shifted_capslock numlock_by_default = true repeat_rate = 25 repeat_delay = 600 follow_mouse = 1 mouse_refocus = true float_switch_override_focus = 2 special_fallthrough = true touchpad { disable_while_typing = true scroll_factor = 1.0 tap-to-click = true } } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more #device { # name = epic-mouse-v1 # sensitivity = -0.5 #} ################### ### KEYBINDINGS ### ################### source = ~/.config/hypr/conf.d/keybinds.conf ############## ### Groups ### ############## group { auto_group = true insert_after_current = true focus_removed_window = true drag_into_group = 1 merge_groups_on_drag = true merge_groups_on_groupbar = true merge_floated_into_tiled_on_groupbar = true group_on_movetoworkspace = false col.border_active = $border_group_active col.border_inactive = $border_group_inactive col.border_locked_active = $border_grouplocked_active col.border_locked_inactive = $border_grouplocked_active groupbar{ enabled = true height = 12 font_family = InconsolataGo Nerd Font Mono font_size = 8 font_weight_active = semibold font_weight_inactive = normal stacked = false gradients = true gradient_rounding = 5 indicator_height = 0 rounding = 0 gradient_round_only_edges = true text_color = $groupbar_text col.active = $groupbar_active col.inactive = $groupbar_inactive col.locked_active = $groupbar_grouplocked_active col.locked_inactive = $groupbar_grouplocked_inactive gaps_out = 0 gaps_in = 0 render_titles = true scrolling = true priority = 3 } } ############################## ### WINDOWS AND WORKSPACES ### ############################## # 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:.* # Fix some dragging issues with XWayland windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 ## ========== Special Workspaces ========== workspace = special:keepass, on-created-empty:keepassxc windowrule = float, class:org.keepassxc.KeePassXC windowrule = noscreenshare, class:org.keepassxc.KeePassXC windowrule = size 60%, 60%, class:org.keepassxc.KeePassXC windowrule = center, class:org.keepassxc.KeePassXC ## ========== Communication ========== # Mumble & Discord & TeamSpeak windowrule = workspace 2, class:^(info\.mumble\.Mumble|discord|TeamSpeak|vesktop)$ # Signal & Element windowrule = workspace 1, class:^(signal|Element)$ ## ========== Multimedia ========== windowrule = workspace 10, class:Spotify ### ========== Development ========== #windowrulev2 = float, class:jetbrains-webstorm, title:Welcome to WebStorm #windowrulev2 = size 1080 720, class:jetbrains-webstorm, title:Welcome to WebStorm ## ========== Gaming ========== # Steam & Battle.net & Lutris windowrule = workspace 3, class:^(steam|battle\.net\.exe|net\.lutris\.Lutris)$ ## ========== System ========== windowrule = float, class:com.saivert.pwvucontrol windowrule = float, class:scrrec windowrule = pin, class:scrrec windowrule = idleinhibit always, class:scrrec windowrule = rounding 10, class:scrrec windowrule = opacity 0.6, class:scrrec windowrule = noborder, class:scrrec windowrule = size 300 100, class:scrrec windowrule = move 1% 1%, class:scrrec windowrule = monitor 0, class:scrrec windowrule = noinitialfocus, class:scrrec windowrule = float, class:com.gabm.satty windowrule = size >700 >400, class:com.gabm.satty # Blur swaync #layerrule = blur, swaync-control-center #layerrule = blur, swaync-notification-window #layerrule = ignorezero, swaync-control-center #layerrule = ignorezero, swaync-notification-window #layerrule = ignorealpha, swaync-control-center #layerrule = ignorealpha, swaync-notification-window