diff --git a/hotkeys.conf b/hotkeys.conf index ef78f9e..96b34b7 100644 --- a/hotkeys.conf +++ b/hotkeys.conf @@ -58,15 +58,13 @@ $test = $scripts/a.sh # $screenshotTool = $scripts/screenshot_area $screenshotTool = hyprshot --clipboard-only -m region -# Test keybindings -# bind = $mainMod SHIFT, T, exec, $scripts/a.sh # ─< exit hyprland >────────────────────────────────────────────────────────────────────── bind = $mainMod, M, exit, # ─< window-actions >───────────────────────────────────────────────────────────────────── bind = $mainMod, Q, killactive, bind = $mainMod SHIFT, F, togglefloating, -bind = $mainMod, F, fullscreen,1 +bind = $mainMod, F, fullscreen, 1 # ─< start predefined applications >───────────────────────────────────────────────────────────────── bind = $mainMod, T, exec, $terminal @@ -77,22 +75,24 @@ bind = SUPER, R, exec, $rofi # backup for both variants bind = SUPER, T, exec, $tofi # backup for both variants bindr = SUPER, SUPER_L, exec, $menu bind = $mainMod SHIFT, W, exec, bash -c $wallpaper -bind = $mainMod SHIFT, M, exec, $notify +# bind = $mainMod SHIFT, M, exec, $notify bind = SUPER SHIFT, S, exec, $screenshotTool +bind = $mainMod CTRL, RETURN, exec, $logout +bind = $SUPER, L, exec, $lockscreen + # ─< start other applications >─────────────────────────────────────────────────────────── bind = $mainMod SHIFT, N, exec, nwg-look bind = $mainMod SHIFT, S, exec, steam bind = $mainMod, O, exec, obsidian bind = $mainMod, N, exec, neovide bind = $mainMod, V, exec, virt-manager -bind = $mainMod, G, exec, $scripts/looking-glass.sh - -bind = $mainMod CTRL, RETURN, exec, $logout -bind = $SUPER, L, exec, $lockscreen # ─< Hotkeys to scripts >───────────────────────────────────────────────────────────────── bind = $mainMod SHIFT, R, exec, $scripts/refresh.sh +bind = $mainMod CTRL, G, exec, $scripts/looking-glass.sh +# Test keybindings +# bind = $mainMod SHIFT, T, exec, $scripts/a.sh # ─< Switch workspaces with mainMod + [0-9] >───────────────────────────────────────────── bind = $mainMod, 1, workspace, 1 @@ -104,7 +104,6 @@ bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 -# bind = $mainMod, 0, workspace, 0 # ─< Move active window to a workspace with mainMod + SHIFT + [0-9] >───────────────────── bind = $mainMod SHIFT, 1, movetoworkspace, 1 @@ -116,14 +115,20 @@ bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 -# bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# ─< gaming workspace with tearing true >──────────────────────────────────────────────────── +bind = $mainMod, G, workspace, 69 +bind = $mainMod SHIFT, G, movetoworkspace, 69 # ─< Example special workspace (scratchpad) >───────────────────────────────────────────── bind = $mainMod, X, togglespecialworkspace, magic bind = $mainMod SHIFT, X, movetoworkspace, special:magic +# ─< windoof lookingglass workspace >──────────────────────────────────────────────────────── bind = $mainMod, Y, togglespecialworkspace, windoof bind = $mainMod SHIFT, Y, movetoworkspace, special:windoof + + # ─< Scroll through existing workspaces with mainMod + scroll >─────────────────────────── bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 diff --git a/hyprland.conf b/hyprland.conf index eee2848..702935e 100644 --- a/hyprland.conf +++ b/hyprland.conf @@ -3,19 +3,31 @@ # ╰──────────────╯ $h_conf = ~/.config/hypr - # ╭────────────────────────────────────────────────────────────────────────────╮ - # │ sources monitors configuration to allow different machine configurations. │ - # │ also sources workspaces config, for differnet mappings for the workspaces. │ - # ╰────────────────────────────────────────────────────────────────────────────╯ + # 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) │ - # ╰──────────────────────────────────────────────────────────────────────────╯ + # variable for specialworkspace (has to be configured in .monitors.conf like -> 'workspace = name:x, on-created-empty:$terminal') $terminal = ghostty -# ─< workspaces >──────────────────────────────────────────────────────────────────────────── -workspace = special:magic, monitor:DP-2, on-created-empty:$terminal +# $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 +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 + # workspace = 0, monitor:HDMI-1 # ─< source hotkeys file for hyprland >────────────────────────────────────────────────────── @@ -48,6 +60,8 @@ 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 │ @@ -56,22 +70,27 @@ windowrule = workspace special:windoof, title:^(.*[Ll]ooking [Gg]lass.*) # https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 2 - gaps_out = 4 + gaps_out = 4 - border_size = 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) + col.active_border = rgba(ffffffe0) rgba(8f8f8fe0) 45deg + col.inactive_border = rgba(2f2f2fe0) -# Set to true enable resizing windows by clicking and dragging on borders and gaps - resize_on_border = true + extend_border_grab_area = false + resize_on_border = true + allow_tearing = false -# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on - allow_tearing = false + # layout = master + layout = dwindle - # layout = master - layout = dwindle + snap { + enabled = true + window_gap = 12 + monitor_gap = 24 + border_overlap = false + } } # https://wiki.hyprland.org/Configuring/Variables/#decoration @@ -98,58 +117,98 @@ decoration { # 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 -# 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 -# } - animations { - enabled = true - # Animation curves - - bezier = linear, 0, 0, 1, 1 + 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 - 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 + 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 { force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers