# WHY: # ╭───────────────────────────────────────────────────╮ # │ This is the hyprland configuration file to source │ # │ and setup my hyprland environment │ # ╰───────────────────────────────────────────────────╯ # ╭──────────────╮ # │ Source files │ # ╰──────────────╯ $h_conf = ~/.config/hypr # NOTE: #╭───────────────────────────────────────────────────────────────────────────╮ #│ sources monitors config outside of git repo to let useroptions be a thing │ #│ also sources the following variables: │ #│ > $main <- this should contain the main monitor (e.g. DP-1 or HDMI-A-1..) │ #│ > $secondary <- This is just the second monitor │ #╰───────────────────────────────────────────────────────────────────────────╯ source = $HOME/.monitors.conf # variable for specialworkspace (has to be configured in .monitors.conf like -> 'workspace = name:x, on-created-empty:$terminal') $terminal = ghostty # $secondary = $main # <- Uncomment this, if you only have one monitor # ─< main-workspaces >──────────────────────────────────────────────────────────────────────────── workspace = 1, monitor:$main, persitent:true workspace = 2, monitor:$secondary, persitent:true workspace = 3, monitor:$main, persitent:true workspace = 4, monitor:$secondary, persitent:true, inactive_opacity:1 workspace = 5, monitor:$main workspace = 6, monitor:$main workspace = 7, monitor:$secondary workspace = 8, monitor:$secondary workspace = 9, monitor:$main, persistent:true, allow-tearing:true # ─< Gaming workspace >────────────────────────────────────────────────────────────────────── workspace = 69, monitor:$main, persistent:true, allow-tearing:true, gapsin:0, gapsout:0, rounding:0, border:0 # ────────────────────────────────────────< specials >──────────────────────────────────────── workspace = special:magic, monitor:$main, on-created-empty:$terminal, border:0 # workspace = 0, monitor:HDMI-1 # ─< source hotkeys file for hyprland >────────────────────────────────────────────────────── source = $h_conf/hotkeys.conf # ─< initialisation script >───────────────────────────────────────────────────────────────── exec-once = $h_conf/.scripts/init.sh exec-once = hypridle exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # See https://wiki.hyprland.org/Configuring/Environment-variables/ # ╭───────────────────────╮ # │ Environment-variables │ # ╰───────────────────────╯ env = XCURSOR_SIZE,16 env = HYPRCURSOR_THEME,catppuccin-mocha-dark-cursors env = HYPRCURSOR_SIZE,16 env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that env = QT_QPA_PLATFORM,wayland;xcb env = QT_SCALE_FACTOR,1 # env = GTK_THEME,Nordic-darker env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 # ──────────────────────────────────────< windowrules >───────────────────────────────────── windowrule = workspace special:windoof, title:^(.*[Ll]ooking [Gg]lass.*) windowrule = workspace 69, title:^(.*[Ss]team.*) windowrule = workspace 69, title:^(.*GDLauncher.*) # ╭───────────────╮ # │ LOOK AND FEEL │ # ╰───────────────╯ # https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 1 gaps_out = 2 border_size = 2 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(ffffffe0) rgba(8f8f8fe0) 45deg col.inactive_border = rgba(2f2f2fe0) extend_border_grab_area = false resize_on_border = true # layout = master layout = dwindle snap { enabled = true window_gap = 12 monitor_gap = 24 border_overlap = false } allow_tearing = false } windowrule = immediate, class:^(cs2)$ windowrule = immediate, class:^(steam)$ windowrule = immediate, class:^(GDLauncher)$ # windowrule = immediate, class:^(cs2)$ # windowrule = immediate, class:^(cs2)$ # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 0 rounding_power = 0 # Change transparency of focused and unfocused windows active_opacity = 0.98 # inactive_opacity = 0.284 # fullscreen_opacity = 1 dim_inactive = true dim_strength = 0.3 # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true size = 5 passes = 2 vibrancy = 0.01696 } } # ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ # █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█ # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more # animations { # enabled = yes # bezier = wind, 0.05, 0.9, 0.1, 1.05 # bezier = winIn, 0.1, 1.1, 0.1, 1.1 # bezier = winOut, 0.3, -0.3, 0, 1 # bezier = liner, 1, 1, 1, 1 # bezier = md3_standard, 0.2, 0, 0, 1 # bezier = md3_decel, 0.05, 0.7, 0.1, 1 # bezier = md3_accel, 0.3, 0, 0.8, 0.15 # animation = windows, 1, 6, wind, slide # animation = windowsIn, 1, 6, winIn, popin # animation = windowsOut, 1, 5, winOut, slide # animation = windowsMove, 1, 5, wind, slide # # animation = border, 1, 1, liner # # animation = borderangle, 1, 30, liner, loop # animation = fade, 1, 10, default # animation = workspaces, 1, 5, wind # # animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15% # # animation = specialWorkspace, 1, 3, md3_decel, slidevert # } # animations { # enabled = true # # Animation deepSeek # # ==== Custom Bezier Curves ==== :cite[1]:cite[3] # bezier = smoothElastic, 0.68, -0.55, 0.27, 1.55 # bezier = gentleBounce, 0.34, 1.56, 0.64, 1 # bezier = fluidMove, 0.4, 0, 0.2, 1 # bezier = quickPop, 0.25, 1.1, 0.5, 1 # # # ==== Window Animations ==== # animation = windows, 1, 6, fluidMove, slide # animation = windowsIn, 1, 6, smoothElastic, popin 85% # animation = windowsOut, 1, 6, fluidMove, popin 90% # animation = windowsMove, 1, 4, gentleBounce # # # ==== Workspace Transitions ==== # animation = workspaces, 1, 8, quickPop, slidefadevert 25% # animation = specialWorkspace, 1, 7, smoothElastic, slidevert # # # ==== Layer Effects ==== # animation = layers, 1, 5, fluidMove # animation = layersIn, 1, 5, smoothElastic, fade # animation = layersOut, 1, 4, fluidMove, fade # # # ==== Fade Effects ==== # animation = fade, 1, 5, fluidMove # animation = fadeDim, 1, 4, gentleBounce # animation = fadeSwitch, 1, 3, quickPop # # # ==== Border Dynamics ==== # animation = border, 1, 3, fluidMove # animation = borderangle, 1, 50, fluidMove, loop # } animations { enabled = true # Animation curves bezier = linear, 0, 0, 1, 1 bezier = md3_standard, 0.2, 0, 0, 1 bezier = md3_decel, 0.05, 0.7, 0.1, 1 bezier = md3_accel, 0.3, 0, 0.8, 0.15 bezier = overshot, 0.05, 0.9, 0.1, 1.1 bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 bezier = menu_decel, 0.1, 1, 0, 1 bezier = menu_accel, 0.38, 0.04, 1, 0.07 bezier = easeInOutCirc, 0.85, 0, 0.15, 1 bezier = easeOutCirc, 0, 0.55, 0.45, 1 bezier = easeOutExpo, 0.16, 1, 0.3, 1 bezier = softAcDecel, 0.26, 0.26, 0.15, 1 bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration # Animation configs animation = windows, 1, 3, md3_decel, popin 60% animation = windowsIn, 1, 3, md3_decel, popin 60% animation = windowsOut, 1, 3, md3_accel, popin 60% animation = border, 1, 10, default animation = fade, 1, 3, md3_decel # animation = layers, 1, 2, md3_decel, slide animation = layersIn, 1, 3, menu_decel, slide animation = layersOut, 1, 1.6, menu_accel animation = fadeLayersIn, 1, 2, menu_decel animation = fadeLayersOut, 1, 0.5, menu_accel animation = workspaces, 1, 7, menu_decel, slide # animation = workspaces, 1, 2.5, softAcDecel, slide # animation = workspaces, 1, 7, menu_decel, slidefade 15% # animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15% animation = specialWorkspace, 1, 3, md3_decel, slidevert } # https://wiki.hyprland.org/Configuring/Variables/#misc misc { vrr = 2 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. :( enable_swallow = true swallow_regex = ^(ghostty|wezterm-gui|kitty|Alacritty|foot)$ animate_manual_resizes = true animate_mouse_windowdragging = true new_window_takes_over_fullscreen = 2 }