diff --git a/.config/hypr/hyprland/general.conf b/.config/hypr/hyprland/general.conf index e1bfb06e8..24f00ab14 100644 --- a/.config/hypr/hyprland/general.conf +++ b/.config/hypr/hyprland/general.conf @@ -5,30 +5,6 @@ monitor=,preferred,auto,1,transform, 0 # HDMI port: mirror display. To see device name, use `hyprctl monitors` # monitor=HDMI-A-1,1920x1080@60,1920x0,1,mirror,eDP-1 -input { - # Keyboard: Add a layout and uncomment kb_options for Win+Space switching shortcut - kb_layout = us - # kb_options = grp:win_space_toggle - numlock_by_default = true - repeat_delay = 250 - repeat_rate = 35 - - touchpad { - natural_scroll = yes - disable_while_typing = true - clickfinger_behavior = true - scroll_factor = 0.5 - } - special_fallthrough = true - follow_mouse = 1 -} - -binds { - # focus_window_on_workspace_c# For Auto-run stuff see execs.confhange = true - scroll_event_delay = 0 - hide_special_on_workspace_change = true -} - gestures { workspace_swipe = true workspace_swipe_distance = 700 @@ -46,24 +22,25 @@ general { gaps_in = 4 gaps_out = 5 gaps_workspaces = 50 - border_size = 1 - # Fallback colors + border_size = 1 col.active_border = rgba(0DB7D4FF) col.inactive_border = rgba(31313600) - resize_on_border = true + no_focus_fallback = true - layout = dwindle - #focus_to_other_workspaces = true # ahhhh i still haven't properly implemented this allow_tearing = true # This just allows the `immediate` window rule to work + + snap { + enabled = true + } } dwindle { - preserve_split = true - smart_split = false - smart_resizing = false + preserve_split = true + smart_split = false + smart_resizing = false } decoration { @@ -75,7 +52,7 @@ decoration { special = false new_optimizations = true size = 14 - passes = 4 + passes = 3 brightness = 1 noise = 0.01 contrast = 1 @@ -83,73 +60,91 @@ decoration { popups_ignorealpha = 0.6 } - # Shadow shadow { enabled = true ignore_window = true - range = 20 - offset = 0 2 - render_power = 4 - color = rgba(0000002A) + range = 70 + offset = 0 4 + render_power = 2 + color = rgba(00000008) } - - # Window Opacities - # active_opacity = 1 - # inactive_opacity = 1 - # fullscreen_opacity = 1 - - # Shader - # screen_shader = ~/.config/hypr/shaders/nothing.frag - # screen_shader = ~/.config/hypr/shaders/vibrance.frag - # screen_shader = /home/end/.config/hypr/shaders/antiflash.frag # Dim - dim_inactive = false - dim_strength = 0.1 - dim_special = 0 + dim_inactive = true + dim_strength = 0.025 + dim_special = 0.07 } animations { enabled = true - # Animation curves - + # Curves bezier = md3_decel, 0.05, 0.7, 0.1, 1 bezier = md3_accel, 0.3, 0, 0.8, 0.15 + bezier = md2_decel, 0, 0, 0, 1 bezier = menu_decel, 0.1, 1, 0, 1 bezier = menu_accel, 0.52, 0.03, 0.72, 0.08 - # 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, 2.7, md3_decel, slide - animation = layersOut, 1, 1.8, menu_accel + # Configs + # windows + animation = windowsIn, 1, 3, md3_decel, popin 80% + animation = windowsOut, 1, 2, md3_decel, popin 90% + animation = windowsMove, 1, 3, md3_decel, slide + animation = border, 1, 10, md3_decel + # layers + animation = layersIn, 1, 2.7, md3_decel, popin 93% + animation = layersOut, 1, 1.8, menu_accel, popin 94% + # fade animation = fadeLayersIn, 1, 0.5, menu_decel - animation = fadeLayersOut, 1, 3, menu_accel + animation = fadeLayersOut, 1, 2, menu_accel + # workspaces animation = workspaces, 1, 7, menu_decel, slide - animation = specialWorkspace, 1, 3, md3_decel, slidevert + ## specialWorkspace + animation = specialWorkspaceIn, 1, 3, md3_decel, slidevert + animation = specialWorkspaceOut, 1, 1.3, md3_accel, slidevert +} + +input { + kb_layout = us + numlock_by_default = true + repeat_delay = 250 + repeat_rate = 35 + + follow_mouse = 1 + + touchpad { + natural_scroll = yes + disable_while_typing = true + clickfinger_behavior = true + scroll_factor = 0.5 + } } misc { - vfr = 1 - vrr = 1 - animate_manual_resizes = false - animate_mouse_windowdragging = false - enable_swallow = false - swallow_regex = (foot|kitty|allacritty|Alacritty) - disable_hyprland_logo = true disable_splash_rendering = true - force_default_wallpaper = 0 + vfr = 1 + vrr = 1 + mouse_move_enables_dpms = true + key_press_enables_dpms = true + animate_manual_resizes = false + animate_mouse_windowdragging = false + enable_swallow = true + swallow_regex = (foot|kitty|allacritty|Alacritty) new_window_takes_over_fullscreen = 2 allow_session_lock_restore = true - initial_workspace_tracking = false focus_on_activate = true } +binds { + scroll_event_delay = 0 + hide_special_on_workspace_change = true +} + +cursor { + zoom_factor = 1 + zoom_rigid = false +} + # Overview plugin { hyprexpo { diff --git a/.config/hypr/hyprland/keybinds.conf b/.config/hypr/hyprland/keybinds.conf index 5de446ed4..a2a485c79 100644 --- a/.config/hypr/hyprland/keybinds.conf +++ b/.config/hypr/hyprland/keybinds.conf @@ -63,6 +63,9 @@ bindd = Ctrl+Alt, R, Record screen (no sound), exec, ~/.config/hypr/hyprland/rec bindd = Super+Shift+Alt, R, Record screen (with sound), exec, ~/.config/hypr/hyprland/record-script.sh --fullscreen-sound # Record screen (with sound) # AI bindd = Super+Shift+Alt, mouse:273, Generate AI summary for selected text, exec, ~/.config/ags/scripts/ai/primary-buffer-query.sh # AI summary for selected text +# Zoom +binde = Super, Minus, exec, ~/.config/hypr/hyprland/zoom.sh decrease 0.1 +binde = Super, Equal, exec, ~/.config/hypr/hyprland/zoom.sh increase 0.1 #! ##! Window @@ -87,9 +90,7 @@ bind = Super+Shift+Alt, Q, exec, hyprctl kill # Forcefully zap a window # Window split ratio -#/# binde = Super, +/-,, # Adjust split ratio -binde = Super, Minus, splitratio, -0.1 # [hidden] -binde = Super, Equal, splitratio, +0.1 # [hidden] +#/# binde = Super, ;/',, # Adjust split ratio binde = Super, Semicolon, splitratio, -0.1 # [hidden] binde = Super, Apostrophe, splitratio, +0.1 # [hidden] # Positioning mode diff --git a/.config/hypr/hyprland/rules.conf b/.config/hypr/hyprland/rules.conf index b469116e7..876f45b53 100644 --- a/.config/hypr/hyprland/rules.conf +++ b/.config/hypr/hyprland/rules.conf @@ -111,7 +111,6 @@ layerrule = animation slide left, quickshell:sidebarLeft layerrule = animation slide top, quickshell:onScreenDisplay layerrule = blur, quickshell:session layerrule = noanim, quickshell:session -layerrule = noanim, quickshell:cheatsheet # Launchers need to be FAST layerrule = noanim, quickshell:overview layerrule = noanim, launcher diff --git a/.config/hypr/hyprland/zoom.sh b/.config/hypr/hyprland/zoom.sh new file mode 100755 index 000000000..4713684e4 --- /dev/null +++ b/.config/hypr/hyprland/zoom.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +# Controls Hyprland's cursor zoom_factor, clamped between 1.0 and 3.0 + +# Get current zoom level +get_zoom() { + hyprctl getoption -j cursor:zoom_factor | jq '.float' +} + +# Clamp a value between 1.0 and 3.0 +clamp() { + local val="$1" + awk "BEGIN { + v = $val; + if (v < 1.0) v = 1.0; + if (v > 3.0) v = 3.0; + print v; + }" +} + +# Set zoom level +set_zoom() { + local value="$1" + clamped=$(clamp "$value") + hyprctl keyword cursor:zoom_factor "$clamped" +} + +case "$1" in + reset) + set_zoom 1.0 + ;; + increase) + if [[ -z "$2" ]]; then + echo "Usage: $0 increase STEP" + exit 1 + fi + current=$(get_zoom) + new=$(awk "BEGIN { print $current + $2 }") + set_zoom "$new" + ;; + decrease) + if [[ -z "$2" ]]; then + echo "Usage: $0 decrease STEP" + exit 1 + fi + current=$(get_zoom) + new=$(awk "BEGIN { print $current - $2 }") + set_zoom "$new" + ;; + *) + echo "Usage: $0 {reset|increase STEP|decrease STEP}" + exit 1 + ;; +esac