################# ### VARIABLES ### ################# # Files and locations $SCRIPTS_DIR = $HOME/.config/hypr/scripts $LOG_FILE = $HOME/.hypr.log # Used programs $BROWSER = brave --enable-features=UseOzonePlatform --ozone-platform=wayland --disable-features=UseChromeOSDirectVideoDecoder $DISCORD = discord --enable-features=UseOzonePlatform --ozone-platform=wayland $TERMINAL = wezterm $EDITOR = nvim $STEAM = steam $FILE_MANAGER = thunar $MENU = wofi $LOCKSCREEN = hyprlock $STATUS_BAR = waybar $WALLPAPER_MANAGER = hyprpaper $IDLE_MANAGER = hypridle $AUTOMOUNT = udiskie $OSD = swayosd $NOTIFICATION_DAEMON = dunst $COLOR_PICKER = hyprpicker $SCREENSHOT = hyprshot ##################### ### ENV VARIABLES ### ##################### source = ~/.config/hypr/conf/env.conf # Gtk - nwglook env = GTK_THEME, catppuccin-mocha-mauve-standard+default # Qt - adwaita dark env = QT_QPA_PLATFORM, wayland env = QT_QPA_PLATFORMTHEME, qt5ct # Cursor env = XCURSOR_THEME, rose-pine-cursor env = XCURSOR_SIZE, 24 env = HYPRCURSOR_THEME, rose-pine-hyprcursor env = HYPRCURSOR_SIZE, 24 # Misc env = EDITOR, $EDITOR env = MAX_ZOOM, 3 ################ ### MONITORS ### ################ source = ~/.config/hypr/conf/monitors.conf ################# ### AUTOSTART ### ################# source = ~/.config/hypr/conf/autostart.conf # Utils exec-once = systemctl --user start hyprpolkitagent exec-once = $STATUS_BAR exec-once = $WALLPAPER_MANAGER exec-once = $IDLE_MANAGER exec-once = $AUTOMOUNT exec-once = $OSD-server # Programs exec-once = [workspace 1 silent] $BROWSER exec-once = [workspace 2 silent] $DISCORD exec-once = [workspace 3 silent] $TERMINAL # Use lockscreen as login exec-once = $LOCKSCREEN ################## ### CATEGORIES ### ################## general { gaps_in = 1 gaps_out = 1 col.active_border = rgb(df00ff) rgb(ff10f0) 45deg col.inactive_border = rgba(595959aa) no_focus_fallback = true } animations { 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 bezier = quick, 0.15, 0, 0.1, 1 animation = global, 1, 7.5, default animation = border, 1, 4.04, easeOutQuint animation = windows, 1, 3.59, easeOutQuint animation = windowsIn, 1, 3.07, easeOutQuint, popin 87% animation = windowsOut, 1, 1.11, linear, popin 87% animation = fadeIn, 1, 1.29, almostLinear animation = fadeOut, 1, 1.09, almostLinear animation = fade, 1, 2.27, quick animation = layers, 1, 2.85, easeOutQuint animation = layersIn, 1, 3, easeOutQuint, fade animation = layersOut, 1, 1.12, linear, fade animation = fadeLayersIn, 1, 1.34, almostLinear animation = fadeLayersOut, 1, 1.04, almostLinear animation = workspaces, 1, 1.45, almostLinear, fade animation = workspacesIn, 1, 0.9, almostLinear, fade animation = workspacesOut, 1, 1.45, almostLinear, fade animation = zoomFactor, 1, 5.25, quick } input { kb_layout = pl numlock_by_default = true repeat_rate = 40 repeat_delay = 400 follow_mouse = 2 } misc { disable_hyprland_logo = true focus_on_activate = false middle_click_paste = false } cursor:zoom_rigid = true ecosystem:no_donation_nag = true dwindle { force_split = 2 preserve_split = true } source = ~/.config/hypr/conf/categories.conf ############# ### BINDS ### ############# # General bind = SUPER, Q, killactive, bind = SUPER, V, layoutmsg, togglesplit bind = SUPER SHIFT, F, togglefloating bindm = SUPER, mouse:273, resizewindow bind = SUPER, N, exec, dunstctl close-all bind = SUPER, slash, exec, $LOCKSCREEN bind = ALT, SPACE, exec, pkill $MENU || $MENU # Launch programs bind = SUPER, T, exec, $TERMINAL bind = SUPER, F, exec, $FILE_MANAGER bind = SUPER, C, exec, $TERMINAL start -- $EDITOR bind = SUPER, B, exec, $BROWSER bind = SUPER, D, exec, $DISCORD bind = SUPER, S, exec, $STEAM bind = SUPER SHIFT, P, exec, $COLOR_PICKER -a bind = SUPER SHIFT, M, exec, $SCRIPTS_DIR/zoom.sh # Take screenshots bind = SUPER SHIFT, S, exec, $SCREENSHOT -m region --clipboard-only # Passthru keybinds to VMs bind = SUPER, P, exec, notify-send "Entered passthru submap" bind = SUPER, P, submap, passthru submap = passthru bind = SUPER, P, submap, reset submap = reset # Move focus bind = ALT, Tab, cyclenext bind = SUPER, left, movefocus, l bind = SUPER, down, movefocus, d bind = SUPER, up, movefocus, u bind = SUPER, right, movefocus, r bind = SUPER, H, movefocus, l bind = SUPER, J, movefocus, d bind = SUPER, K, movefocus, u bind = SUPER, L, movefocus, r # Swap windows bind = SUPER SHIFT, left, swapwindow, l bind = SUPER SHIFT, down, swapwindow, d bind = SUPER SHIFT, up, swapwindow, u bind = SUPER SHIFT, right, swapwindow, r bind = SUPER SHIFT, H, swapwindow, l bind = SUPER SHIFT, J, swapwindow, d bind = SUPER SHIFT, K, swapwindow, u bind = SUPER SHIFT, L, swapwindow, r # Equalize windows bind = SUPER ALT, H, exec, $SCRIPTS_DIR/equalize-windows.sh l bind = SUPER ALT, V, exec, $SCRIPTS_DIR/equalize-windows.sh u # Resize windows manually bind = SUPER, R, exec, notify-send "Entered resize submap" bind = SUPER, R, submap, resize submap = resize binde = , left, resizeactive, -10 0 binde = , down, resizeactive, 0 10 binde = , up, resizeactive, 0 -10 binde = , right, resizeactive, 10 0 binde = , H, resizeactive, -10 0 binde = , J, resizeactive, 0 10 binde = , K, resizeactive, 0 -10 binde = , L, resizeactive, 10 0 bind = , Escape, submap, reset bind = , Return, submap, reset bind = CTRL_L, C, submap, reset bind = SUPER, R, submap, reset submap = reset # Switch workspaces bind = SUPER, 1, workspace, 1 bind = SUPER, 2, workspace, 2 bind = SUPER, 3, workspace, 3 bind = SUPER, 4, workspace, 4 bind = SUPER, 5, workspace, 5 bind = SUPER, 6, workspace, 6 bind = SUPER, 7, workspace, 7 bind = SUPER, 8, workspace, 8 bind = SUPER, 9, workspace, 9 bind = SUPER, 0, workspace, 10 # Move active window to a workspace bind = SUPER SHIFT, 1, movetoworkspace, 1 bind = SUPER SHIFT, 2, movetoworkspace, 2 bind = SUPER SHIFT, 3, movetoworkspace, 3 bind = SUPER SHIFT, 4, movetoworkspace, 4 bind = SUPER SHIFT, 5, movetoworkspace, 5 bind = SUPER SHIFT, 6, movetoworkspace, 6 bind = SUPER SHIFT, 7, movetoworkspace, 7 bind = SUPER SHIFT, 8, movetoworkspace, 8 bind = SUPER SHIFT, 9, movetoworkspace, 9 bind = SUPER SHIFT, 0, movetoworkspace, 10 # Move current workspace to another monitor bind = SUPER, M, movecurrentworkspacetomonitor, +1 # Volume controls bindel = , XF86AudioRaiseVolume, exec, $OSD-client --output-volume raise --max-volume 95 bindel = , XF86AudioLowerVolume, exec, $OSD-client --output-volume lower bindel = , XF86AudioMute, exec, $OSD-client --output-volume mute-toggle bindel = , XF86AudioMicMute, exec, $OSD-client --input-volume mute-toggle # Player controls bindl = , XF86AudioNext, exec, $OSD-client --playerctl next bindl = , XF86AudioPause, exec, $OSD-client --playerctl play-pause bindl = , XF86AudioPlay, exec, $OSD-client --playerctl play-pause bindl = , XF86AudioPrev, exec, $OSD-client --playerctl previous source = ~/.config/hypr/conf/binds.conf ############################## ### WINDOWS AND WORKSPACES ### ############################## source = ~/.config/hypr/conf/rules.conf # Force discord to stay at 2nd workspace windowrule = workspace 2 silent, match:class ^(discord)$ # Force steam to stay at 5th workspace windowrule = workspace 5 silent, match:class ^(steam)$ # Ignore maximize requests from apps windowrule = suppress_event maximize, match:class .*