When using vertical monitor on latest Hyprland-git pointer can't move to the lower part of the screen on that monitor. I can interact with that part of the screen and click normally but pointer stays and won't go below that line.
ps. Weird thing is that if I start screen recording everything starts working normally and pointer can move freely.
My monitor config:
monitor=eDP-1,2560x1600@90,-1920x600,1.333
monitor=DP-7,2560x1440@99.90,0x0,1
monitor=DP-8,1920x1080@75,2560x-300,1,transform,3
How to reproduce
Connect vertical monitor with TRANSFORM,3 monitor parameter and observe cursor staying locked above imaginary line at the bottom of the monitor.
Already reported ? *
Regression?
No
System Info and Version
System/Version info
```sh Hyprland, built from branch main at commit caaa9b11e4763ed0367f81bf97ceaad5175806fc (wlr-output-configuration: Improve output configuration (7571)). Date: Thu Sep 26 12:10:53 2024 Tag: v0.43.0-65-gcaaa9b11, commits: 5261 built against aquamarine 0.4.1 flags: (if any) System Information: System name: Linux Node name: cachy Release: 6.11.0-5-cachyos Version: #1 SMP PREEMPT_DYNAMIC Fri, 20 Sep 2024 12:33:59 +0000 GPU information: 63:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev c7) (prog-if 00 [VGA controller]) os-release: NAME="CachyOS Linux" PRETTY_NAME="CachyOS" ID=cachyos ID_LIKE=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://cachyos.org/" DOCUMENTATION_URL="https://wiki.cachyos.org/" SUPPORT_URL="https://forum.cachyos.org/" BUG_REPORT_URL="https://github.com/cachyos" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=cachyos plugins: hyprsplit by shezdy ver 1.0 hyprfocus by Vortex ver 2.0 ======Config-Start====== Config File: /home/dc/.config/hypr/hyprland.conf: Read Succeeded # This file sources other files in `hyprland` and `custom` folders # You wanna add your stuff in file in `custom` # Defaults source=~/.config/hypr/hyprland/env.conf source=~/.config/hypr/hyprland/execs.conf source=~/.config/hypr/hyprland/general.conf source=~/.config/hypr/hyprland/rules.conf source=~/.config/hypr/hyprland/colors.conf source=~/.config/hypr/hyprland/keybinds.conf # Custom source=~/.config/hypr/custom/env.conf source=~/.config/hypr/custom/execs.conf source=~/.config/hypr/custom/general.conf source=~/.config/hypr/custom/rules.conf source=~/.config/hypr/custom/keybinds.conf # Why is this even here?? cuz 🤓 debug { disable_logs = true # overlay = true # Show fps n stuff # damage_tracking = 0 # damage_blink = yes } Config File: /home/dc/.config/hypr/hyprland/env.conf: Read Succeeded # ######### Input method ########## # See https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland env = QT_IM_MODULE, fcitx env = XMODIFIERS, @im=fcitx # env = GTK_IM_MODULE, wayland # Crashes electron apps in xwayland # env = GTK_IM_MODULE, fcitx # My Gtk apps no longer require this to work with fcitx5 hmm env = SDL_IM_MODULE, fcitx env = GLFW_IM_MODULE, ibus env = INPUT_METHOD, fcitx # ############ Themes ############# env = QT_QPA_PLATFORM, wayland env = QT_QPA_PLATFORMTHEME, qt5ct # env = QT_STYLE_OVERRIDE,kvantum # env = WLR_NO_HARDWARE_CURSORS, 1 # ######## Screen tearing ######### # env = WLR_DRM_NO_ATOMIC, 1 # ############ Others ############# Config File: /home/dc/.config/hypr/hyprland/execs.conf: Read Succeeded # Bar, wallpaper exec-once = swww-daemon --format xrgb exec-once = /usr/lib/geoclue-2.0/demos/agent & gammastep exec-once = ags & # Input method # exec-once = fcitx5 # Core components (authentication, lock screen, notification daemon) exec-once = gnome-keyring-daemon --start --components=secrets exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 || /usr/libexec/polkit-gnome-authentication-agent-1 exec-once = hypridle exec-once = dbus-update-activation-environment --all exec-once = sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Some fix idk exec-once = hyprpm reload # Audio exec-once = easyeffects --gapplication-service # Clipboard: history # exec-once = wl-paste --watch cliphist store & exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store # Cursor exec-once = hyprctl setcursor Bibata-Modern-Ice 24 Config File: /home/dc/.config/hypr/hyprland/general.conf: Read Succeeded # MONITOR CONFIG monitor=,preferred,auto,1 # monitor=,addreserved, 0, 0, 0, 0 # Custom reserved area # 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 = 50 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 } gestures { workspace_swipe = true workspace_swipe_distance = 700 workspace_swipe_fingers = 4 workspace_swipe_cancel_ratio = 0.2 workspace_swipe_min_speed_to_force = 5 workspace_swipe_direction_lock = true workspace_swipe_direction_lock_threshold = 10 workspace_swipe_create_new = true } general { # Gaps and border gaps_in = 4 gaps_out = 5 gaps_workspaces = 50 border_size = 1 # Fallback colors 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 } dwindle { preserve_split = true # no_gaps_when_only = 1 smart_split = false smart_resizing = false } decoration { rounding = 20 blur { enabled = true xray = true special = false new_optimizations = true size = 14 passes = 4 brightness = 1 noise = 0.01 contrast = 1 popups = true popups_ignorealpha = 0.6 } # Shadow drop_shadow = true shadow_ignore_window = true shadow_range = 20 shadow_offset = 0 2 shadow_render_power = 4 col.shadow = rgba(0000002A) # Shader # screen_shader = ~/.config/hypr/shaders/nothing.frag # screen_shader = ~/.config/hypr/shaders/vibrance.frag # Dim dim_inactive = false dim_strength = 0.1 dim_special = 0 } 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, 4.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 } 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 force_default_wallpaper = 0 new_window_takes_over_fullscreen = 2 allow_session_lock_restore = true initial_workspace_tracking = false } # Overview plugin { hyprexpo { columns = 3 gap_size = 5 bg_col = rgb(000000) workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1 enable_gesture = false # laptop touchpad, 4 fingers gesture_distance = 300 # how far is the "max" gesture_positive = false } } Config File: /home/dc/.config/hypr/hyprland/rules.conf: Read Succeeded # ######## Window rules ######## windowrule = noblur,.* # windowrule = opacity 0.89 override 0.89 override, .* # Applies transparency to EVERY WINDOW windowrule = float, ^(blueberry.py)$ windowrule = float, ^(steam)$ windowrule = float, ^(guifetch)$ # FlafyDev/guifetch windowrulev2 = tile, class:(dev.warp.Warp) windowrulev2 = float, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$ windowrule = center, title:^(Open File)(.*)$ windowrule = center, title:^(Select a File)(.*)$ windowrule = center, title:^(Choose wallpaper)(.*)$ windowrule = center, title:^(Open Folder)(.*)$ windowrule = center, title:^(Save As)(.*)$ windowrule = center, title:^(Library)(.*)$ windowrule = center, title:^(File Upload)(.*)$ # Dialogs windowrule=float,title:^(Open File)(.*)$ windowrule=float,title:^(Select a File)(.*)$ windowrule=float,title:^(Choose wallpaper)(.*)$ windowrule=float,title:^(Open Folder)(.*)$ windowrule=float,title:^(Save As)(.*)$ windowrule=float,title:^(Library)(.*)$ windowrule=float,title:^(File Upload)(.*)$ # Tearing windowrule=immediate,.*\.exe windowrulev2=immediate,class:(steam_app) # No shadow for tiled windows windowrulev2 = noshadow,floating:0 # ######## Layer rules ######## layerrule = xray 1, .* # layerrule = noanim, .* layerrule = noanim, walker layerrule = noanim, selection layerrule = noanim, overview layerrule = noanim, anyrun layerrule = noanim, indicator.* layerrule = noanim, osk layerrule = noanim, hyprpicker layerrule = blur, shell:* layerrule = ignorealpha 0.6, shell:* layerrule = noanim, noanim layerrule = blur, gtk-layer-shell layerrule = ignorezero, gtk-layer-shell layerrule = blur, launcher layerrule = ignorealpha 0.5, launcher layerrule = blur, notifications layerrule = ignorealpha 0.69, notifications # ags layerrule = animation slide top, sideleft.* layerrule = animation slide top, sideright.* layerrule = blur, session layerrule = blur, bar layerrule = ignorealpha 0.6, bar layerrule = blur, corner.* layerrule = ignorealpha 0.6, corner.* layerrule = blur, dock layerrule = ignorealpha 0.6, dock layerrule = blur, indicator.* layerrule = ignorealpha 0.6, indicator.* layerrule = blur, overview layerrule = ignorealpha 0.6, overview layerrule = blur, cheatsheet layerrule = ignorealpha 0.6, cheatsheet layerrule = blur, sideright layerrule = ignorealpha 0.6, sideright layerrule = blur, sideleft layerrule = ignorealpha 0.6, sideleft layerrule = blur, indicator* layerrule = ignorealpha 0.6, indicator* layerrule = blur, osk layerrule = ignorealpha 0.6, osk Config File: /home/dc/.config/hypr/hyprland/colors.conf: Read Succeeded # exec = export SLURP_ARGS='-d -c E6EBC9BB -b 484E3444 -s 00000000' general { col.active_border = rgba(E2E2E239) col.inactive_border = rgba(91919130) } misc { background_color = rgba(131313FF) } plugin { hyprbars { # Honestly idk if it works like css, but well, why not bar_text_font = Rubik, Geist, AR One Sans, Reddit Sans, Inter, Roboto, Ubuntu, Noto Sans, sans-serif bar_height = 30 bar_padding = 10 bar_button_padding = 5 bar_precedence_over_border = true bar_part_of_window = true bar_color = rgba(131313FF) col.text = rgba(E2E2E2FF) # example buttons (R -> L) # hyprbars-button = color, size, on-click hyprbars-button = rgb(E2E2E2), 13, , hyprctl dispatch killactive hyprbars-button = rgb(E2E2E2), 13, , hyprctl dispatch fullscreen 1 hyprbars-button = rgb(E2E2E2), 13, , hyprctl dispatch movetoworkspacesilent special } } windowrulev2 = bordercolor rgba(B9D165AA) rgba(B9D16577),pinned:1 Config File: /home/dc/.config/hypr/hyprland/keybinds.conf: Read Succeeded # # Lines ending with `# [hidden]` won't be shown on cheatsheet # # Lines starting with #! are section headings # # bindl = Alt ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden] # bindl = Super ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden] # bindl = ,XF86AudioMute, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0% # [hidden] # bindl = Super+Shift,M, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0% # [hidden] # bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ # [hidden] # bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- # [hidden] # # # Uncomment these if you can't get AGS to work # #bindle=, XF86MonBrightnessUp, exec, brightnessctl set '12.75+' # #bindle=, XF86MonBrightnessDown, exec, brightnessctl set '12.75-' # # #! # ##! Essentials for beginners # # bind = Super, T, exec, foot # Launch foot (terminal) # bind = , Super, exec, true # Open app launcher # bind = Ctrl+Super, T, exec, ~/.config/ags/scripts/color_generation/switchwall.sh # Change wallpaper # ##! Actions # # Screenshot, Record, OCR, Color picker, Clipboard history # bind = Super, V, exec, pkill fuzzel || cliphist list | fuzzel --no-fuzzy --dmenu | cliphist decode | wl-copy # Clipboard history >> clipboard # bind = Super, Period, exec, pkill fuzzel || ~/.local/bin/fuzzel-emoji # Pick emoji >> clipboard # bind = Ctrl+Shift+Alt, Delete, exec, pkill wlogout || wlogout -p layer-shell # [hidden] # bind = Super+Shift, S, exec, ~/.config/ags/scripts/grimblast.sh --freeze copy area # Screen snip # bind = Super+Shift+Alt, S, exec, grim -g "$(slurp)" - | swappy -f - # Screen snip >> edit # # OCR # bind = Super+Shift,T,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l eng "tmp.png" - | wl-copy && rm "tmp.png" # Screen snip to text >> clipboard # bind = Ctrl+Super+Shift,S,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract "tmp.png" - | wl-copy && rm "tmp.png" # [hidden] # # Color picker # bind = Super+Shift, C, exec, hyprpicker -a # Pick color (Hex) >> clipboard # # Fullscreen screenshot # bindl=,Print,exec,grim - | wl-copy # Screenshot >> clipboard # bindl= Ctrl,Print, exec, mkdir -p ~/Pictures/Screenshots && ~/.config/ags/scripts/grimblast.sh copysave screen ~/Pictures/Screenshots/Screenshot_"$(date '+%Y-%m-%d_%H.%M.%S')".png # Screenshot >> clipboard & file # # Recording stuff # bind = Super+Alt, R, exec, ~/.config/ags/scripts/record-script.sh # Record region (no sound) # bind = Ctrl+Alt, R, exec, ~/.config/ags/scripts/record-script.sh --fullscreen # [hidden] Record screen (no sound) # bind = Super+Shift+Alt, R, exec, ~/.config/ags/scripts/record-script.sh --fullscreen-sound # Record screen (with sound) # ##! Session # bind = Ctrl+Super, L, exec, ags run-js 'lock.lock()' # [hidden] # bind = Super, L, exec, loginctl lock-session # Lock # bind = Super+Shift, L, exec, loginctl lock-session # [hidden] # bindl = Super+Shift, L, exec, sleep 0.1 && systemctl suspend || loginctl suspend # Suspend system # bind = Ctrl+Shift+Alt+Super, Delete, exec, systemctl poweroff || loginctl poweroff # [hidden] Power off # # #! # ##! Window management # # Focusing # #/# bind = Super, ←/↑/→/↓,, # Move focus in direction # bind = Super, Left, movefocus, l # [hidden] # bind = Super, Right, movefocus, r # [hidden] # bind = Super, Up, movefocus, u # [hidden] # bind = Super, Down, movefocus, d # [hidden] # bind = Super, BracketLeft, movefocus, l # [hidden] # bind = Super, BracketRight, movefocus, r # [hidden] # bindm = Super, mouse:272, movewindow # bindm = Super, mouse:273, resizewindow # bind = Super, Q, killactive, # bind = Super+Shift+Alt, Q, exec, hyprctl kill # Pick and kill a window # ##! Window arrangement # #/# bind = Super+Shift, ←/↑/→/↓,, # Window: move in direction # bind = Super+Shift, Left, movewindow, l # [hidden] # bind = Super+Shift, Right, movewindow, r # [hidden] # bind = Super+Shift, Up, movewindow, u # [hidden] # bind = Super+Shift, Down, movewindow, d # [hidden] # # Window split ratio # #/# binde = Super, +/-,, # Window: split ratio +/- 0.1 # binde = Super, Minus, splitratio, -0.1 # [hidden] # binde = Super, Equal, splitratio, +0.1 # [hidden] # binde = Super, Semicolon, splitratio, -0.1 # [hidden] # binde = Super, Apostrophe, splitratio, +0.1 # [hidden] # # Positioning mode # bind = Super+Alt, Space, togglefloating, # bind = Super+Alt, F, fullscreenstate, 0 3 # Toggle fake fullscreen # bind = Super, F, fullscreen, 0 # bind = Super, D, fullscreen, 1 # # #! # ##! Workspace navigation # # Switching # #/# bind = Super, Hash,, # Focus workspace # (1, 2, 3, 4, ...) # bind = Super, 1, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 1 # [hidden] # bind = Super, 2, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 2 # [hidden] # bind = Super, 3, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 3 # [hidden] # bind = Super, 4, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 4 # [hidden] # bind = Super, 5, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 5 # [hidden] # bind = Super, 6, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 6 # [hidden] # bind = Super, 7, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 7 # [hidden] # bind = Super, 8, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 8 # [hidden] # bind = Super, 9, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 9 # [hidden] # bind = Super, 0, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 10 # [hidden] # # #/# bind = Ctrl+Super, ←/→,, # Workspace: focus left/right # bind = Ctrl+Super, Right, workspace, +1 # [hidden] # bind = Ctrl+Super, Left, workspace, -1 # [hidden] # #/# bind = Super, Scroll ↑/↓,, # Workspace: focus left/right # bind = Super, mouse_up, workspace, +1 # [hidden] # bind = Super, mouse_down, workspace, -1 # [hidden] # bind = Ctrl+Super, mouse_up, workspace, +1 # [hidden] # bind = Ctrl+Super, mouse_down, workspace, -1 # [hidden] # #/# bind = Super, Page_↑/↓,, # Workspace: focus left/right # bind = Super, Page_Down, workspace, +1 # [hidden] # bind = Super, Page_Up, workspace, -1 # [hidden] # bind = Ctrl+Super, Page_Down, workspace, +1 # [hidden] # bind = Ctrl+Super, Page_Up, workspace, -1 # [hidden] # ## Special # bind = Super, S, togglespecialworkspace, # bind = Super, mouse:275, togglespecialworkspace, # # ##! Workspace management # # Move window to workspace Super + Alt + [0-9] # #/# bind = Super+Alt, Hash,, # Window: move to workspace # (1, 2, 3, 4, ...) # bind = Super+Alt, 1, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 1 # [hidden] # bind = Super+Alt, 2, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 2 # [hidden] # bind = Super+Alt, 3, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 3 # [hidden] # bind = Super+Alt, 4, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 4 # [hidden] # bind = Super+Alt, 5, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 5 # [hidden] # bind = Super+Alt, 6, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 6 # [hidden] # bind = Super+Alt, 7, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 7 # [hidden] # bind = Super+Alt, 8, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 8 # [hidden] # bind = Super+Alt, 9, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 9 # [hidden] # bind = Super+Alt, 0, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 10 # [hidden] # # bind = Ctrl+Super+Shift, Up, movetoworkspacesilent, special # [hidden] # # bind = Ctrl+Super+Shift, Right, movetoworkspace, +1 # [hidden] # bind = Ctrl+Super+Shift, Left, movetoworkspace, -1 # [hidden] # bind = Ctrl+Super, BracketLeft, workspace, -1 # [hidden] # bind = Ctrl+Super, BracketRight, workspace, +1 # [hidden] # bind = Ctrl+Super, Up, workspace, -5 # [hidden] # bind = Ctrl+Super, Down, workspace, +5 # [hidden] # #/# bind = Super+Shift, Scroll ↑/↓,, # Window: move to workspace left/right # bind = Super+Shift, mouse_down, movetoworkspace, -1 # [hidden] # bind = Super+Shift, mouse_up, movetoworkspace, +1 # [hidden] # bind = Super+Alt, mouse_down, movetoworkspace, -1 # [hidden] # bind = Super+Alt, mouse_up, movetoworkspace, +1 # [hidden] # #/# bind = Super+Shift, Page_↑/↓,, # Window: move to workspace left/right # bind = Super+Alt, Page_Down, movetoworkspace, +1 # [hidden] # bind = Super+Alt, Page_Up, movetoworkspace, -1 # [hidden] # bind = Super+Shift, Page_Down, movetoworkspace, +1 # [hidden] # bind = Super+Shift, Page_Up, movetoworkspace, -1 # [hidden] # bind = Super+Alt, S, movetoworkspacesilent, special # bind = Super, P, pin # # bind = Ctrl+Super, S, togglespecialworkspace, # [hidden] # bind = Alt, Tab, cyclenext # [hidden] sus keybind # bind = Alt, Tab, bringactivetotop, # [hidden] bring it to the top # # #! # ##! Widgets # bindr = Ctrl+Super, R, exec, killall ags ydotool; ags & # Restart widgets # bindr = Ctrl+Super+Alt, R, exec, hyprctl reload; killall ags ydotool; ags & # [hidden] # bind = Ctrl+Alt, Slash, exec, ags run-js 'cycleMode();' # Cycle bar mode (normal, focus) # bindir = Super, Super_L, exec, ags -t 'overview' # Toggle overview/launcher # bind = Super, Tab, exec, ags -t 'overview' # [hidden] # bind = Super, Slash, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "cheatsheet""$i"; done # Show cheatsheet # bind = Super, B, exec, ags -t 'sideleft' # Toggle left sidebar # bind = Super, A, exec, ags -t 'sideleft' # [hidden] # bind = Super, O, exec, ags -t 'sideleft' # [hidden] # bind = Super, N, exec, ags -t 'sideright' # Toggle right sidebar # bind = Super, M, exec, ags run-js 'openMusicControls.value = (!mpris.getPlayer() ? false : !openMusicControls.value);' # Toggle music controls # bind = Super, Comma, exec, ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);' # View color scheme and options # bind = Super, K, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "osk""$i"; done # Toggle on-screen keyboard # bind = Ctrl+Alt, Delete, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "session""$i"; done # Toggle power menu # bind = Ctrl+Super, G, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "crosshair""$i"; done # Toggle crosshair # bindle=, XF86MonBrightnessUp, exec, ags run-js 'brightness.screen_value += 0.05; indicator.popup(1);' # [hidden] # bindle=, XF86MonBrightnessDown, exec, ags run-js 'brightness.screen_value -= 0.05; indicator.popup(1);' # [hidden] # bindl = , XF86AudioMute, exec, ags run-js 'indicator.popup(1);' # [hidden] # bindl = Super+Shift,M, exec, ags run-js 'indicator.popup(1);' # [hidden] # # # Testing # # bind = SuperAlt, f12, exec, notify-send "Hyprland version: $(hyprctl version | head -2 | tail -1 | cut -f2 -d ' ')" "owo" -a 'Hyprland keybind' # # bind = Super+Alt, f12, exec, notify-send "Millis since epoch" "$(date +%s%N | cut -b1-13)" -a 'Hyprland keybind' # bind = Super+Alt, f12, exec, notify-send 'Test notification' "Here's a really long message to test truncation and wrapping\nYou can middle click or flick this notification to dismiss it!" -a 'Shell' -A "Test1=I got it!" -A "Test2=Another action" -t 5000 # [hidden] # bind = Super+Alt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' # [hidden] # # ##! Media # bindl= Super+Shift, N, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # Next track # bindl= ,XF86AudioNext, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # [hidden] # bind = Super+Shift+Alt, mouse:275, exec, playerctl previous # [hidden] # bind = Super+Shift+Alt, mouse:276, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # [hidden] # bindl= Super+Shift, B, exec, playerctl previous # Previous track # bindl= Super+Shift, P, exec, playerctl play-pause # Play/pause media # bindl= ,XF86AudioPlay, exec, playerctl play-pause # [hidden] # # #! # ##! Apps # bind = Super, T, exec, # Launch foot (terminal) # bind = Super, Z, exec, Zed # Launch Zed (editor) # bind = Super, C, exec, code --password-store=gnome --enable-features=UseOzonePlatform --ozone-platform=wayland # Launch VSCode (editor) # bind = Super, E, exec, nautilus --new-window # Launch Nautilus (file manager) # bind = Super+Alt, E, exec, thunar # [hidden] # bind = Super, W, exec, google-chrome-stable # [hidden] Let's not give people (more) reason to shit on my rice # bind = Ctrl+Super, W, exec, firefox # Launch Firefox (browser) # bind = Super, X, exec, gnome-text-editor --new-window # Launch GNOME Text Editor # bind = Super+Shift, W, exec, wps # Launch WPS Office # bind = Super, I, exec, XDG_CURRENT_DESKTOP="gnome" gnome-control-center # Launch GNOME Settings # bind = Ctrl+Super, V, exec, pavucontrol # Launch pavucontrol (volume mixer) # bind = Ctrl+Super+Shift, V, exec, easyeffects # Launch EasyEffects (equalizer & other audio effects) # bind = Ctrl+Shift, Escape, exec, gnome-system-monitor # Launch GNOME System monitor # bind = Ctrl+Super, Slash, exec, pkill anyrun || anyrun # Toggle fallback launcher: anyrun # bind = Super+Alt, Slash, exec, pkill anyrun || fuzzel # Toggle fallback launcher: fuzzel # # # Cursed stuff # ## Make window not amogus large # bind = Ctrl+Super, Backslash, resizeactive, exact 640 480 # [hidden] # Config File: /home/dc/.config/hypr/custom/env.conf: Read Succeeded # You can put extra environment variables here # https://wiki.hyprland.org/Configuring/Environment-variablese env = GDK_SCALE,1.333 env = XCURSOR_SIZE,24 env = XCURSOR_THEME,Bibata-Modern-Ice env = WLR_NO_HARDWARE_CURSORS,1 env = HYPRCURSOR_SIZE,24 cursor { sync_gsettings_theme = no } exec-once = gsettings set org.gnome.desktop.interface cursor-size 24 Config File: /home/dc/.config/hypr/custom/execs.conf: Read Succeeded # You can make apps auto-start here # Relevant Hyprland wiki section: https://wiki.hyprland.org/Configuring/Keywords/#executing exec-once = kdeconnect-indicator & # exec-once = wayland-pipewire-idle-inhibit & exec-once = /usr/bin/hyprland-monitor-attached /home/dc/.config/hypr/custom/attached.sh /home/dc/.config/hypr/custom/dettached.sh # exec-once = wlsunset -S 05:30 -s 20:00 -t 4500 & Config File: /home/dc/.config/hypr/custom/general.conf: Read Succeeded # Put general config stuff here # Here's a list of every variable: https://wiki.hyprland.org/Configuring/Variables/ monitor=eDP-1,2560x1600@90,-1920x600,1.333 monitor=DP-7,2560x1440@99.90,0x0,1 monitor=DP-8,1920x1080@75,2560x-300,1,transform,3 monitor=DP-9,2560x1440@99.90,0x0,1 monitor=DP-10,1920x1080@75,2560x-300,1,transform,3 # monitor=,preferred,auto,1,mirror,eDP-1 monitor=HDMI-A-1,1920x1080@60,auto,1 xwayland { force_zero_scaling = true } plugin { hyprsplit { num_workspaces = 6 } hyprfocus { enabled = yes animate_floating = yes animate_workspacechange = no focus_animation = shrink # Beziers for focus animations bezier = bezIn, 0.5,0.0,1.0,0.5 bezier = bezOut, 0.0,0.5,0.5,1.0 bezier = overshot, 0.05, 0.9, 0.1, 1.05 bezier = smoothOut, 0.36, 0, 0.66, -0.56 bezier = smoothIn, 0.25, 1, 0.5, 1 bezier = realsmooth, 0.28,0.29,.69,1.08 # Flash settings flash { flash_opacity = 0.7 in_bezier = realsmooth in_speed = 3 out_bezier = realsmooth out_speed = 5 } # Shrink settings shrink { shrink_percentage = 0.99 in_bezier = realsmooth in_speed = 0.5 out_bezier = realsmooth out_speed = 2 } } } misc { vfr = 1 vrr = 0 } gestures { workspace_swipe = true workspace_swipe_distance = 700 workspace_swipe_fingers = 3 workspace_swipe_cancel_ratio = 0.2 workspace_swipe_min_speed_to_force = 5 workspace_swipe_direction_lock = true workspace_swipe_direction_lock_threshold = 10 workspace_swipe_create_new = true } decoration { rounding = 15 } input { follow_mouse = 1 kb_layout = us,rs kb_variant = ,latinyz kb_options = grp:alt_space_toggle resolve_binds_by_sym = 1 repeat_rate = 50 } Config File: /home/dc/.config/hypr/custom/rules.conf: Read Succeeded # You can put custom rules here # Window/layer rules: https://wiki.hyprland.org/Configuring/Window-Rules/ # Workspace rules: https://wiki.hyprland.org/Configuring/Workspace-Rules/ # windowrule = noblur,^(?!(foot)) windowrulev2 = workspace 6, class:^(YouTube Music)$ windowrulev2 = workspace 5, class:^(vesktop)$ windowrulev2 = idleinhibit[focus], class:^(vlc) # fix pinentry losing focus windowrulev2 = size 900 600,center, class:^(foot)$ windowrulev2 = size 1200 700,center, class:^(org.gnome.Nautilus)$ windowrulev2 = center, class:^(foot)$ windowrulev2 = center, class:^(org.gnome.Nautilus)$ # windowrulev2 = opacity 0.9 0.8, workspace:1, class:^(kitty)$ windowrulev2 = float, class:^(Bitwarden)$ windowrulev2 = float, class:^(org.gnome.Calculator)$ workspace = 1, monitor:eDP-1, default:true workspace = 2, monitor:eDP-1, default:true workspace = 3, monitor:eDP-1, default:true workspace = 4, monitor:eDP-1, default:true workspace = 5, monitor:eDP-1, default:true workspace = 6, monitor:eDP-1, default:true Config File: /home/dc/.config/hypr/custom/keybinds.conf: Read Succeeded # You can put your preferred keybinds here # https://wiki.hyprland.org/Configuring/Binds/ # Volume bindl = Super ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle bindl = Alt ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle bindl = ,XF86AudioMute, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0% bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- # Brightness # ################################### Applications ################################### # Apps: just normal apps bind = Super, C, exec, codium --password-store=gnome --enable-features=UseOzonePlatform --ozone-platform=wayland bind = Super, X, exec, neovide bind = Super, N, exec, vesktop --ozone-platform-hint=wayland bind = Super, Backslash, exec, foot --override shell=fish bind = Super, Return, exec, kitty bind = Super+Shift, Return, exec,[float] foot --override shell=fish bind = Super, E, exec, nautilus --new-window bind = Super, T, exec, foot --override shell=fish yazi bind = Super, W, exec, thorium-browser --ozone-platform-hint=wayland --enable-wayland-ime --ignore-gpu-blocklist --enable-features=TouchpadOverscrollHistoryNavigation bind = Super, Y, exec, zen-browser --ozone-platform-hint=wayland --gtk-version=4 --ignore-gpu-blocklist # Apps: Settings and config bind = Super, I, exec, XDG_CURRENT_DESKTOP="gnome" gnome-control-center bind = Super, V, exec, pavucontrol # Actions bind = Alt, Q, killactive, bind = Super+Alt, Space, togglefloating, bind = Shift+Alt, Q, exec, hyprctl kill bind = Super, Escape, exec, pkill wlogout || wlogout -p layer-shell # Screenshot, Record, OCR, Color picker, Clipboard history bindl=,Print,exec, grim - | wl-copy bind = Super+Shift, S, exec, grimblast --freeze save area /home/dc/Pictures/Screenshots/screenshot_"$(date '+%Y-%m-%d_%H.%M.%S')".png bind = Super+Alt, R, exec, ~/.config/ags/scripts/record-script.sh bind = Control+Alt, R, exec, ~/.config/ags/scripts/record-script.sh --fullscreen bind = Super+Shift+Alt, R, exec, ~/.config/ags/scripts/record-script.sh --fullscreen-sound bind = Super+Shift, C, exec, hyprpicker -a bind = Super, O, exec, pkill fuzzel || cliphist list | fuzzel --no-fuzzy --dmenu | cliphist decode | wl-copy # Text-to-image # Normal bind = Control+Super+Shift,S,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract "tmp.png" - | wl-copy && rm "tmp.png" # English bind = Super+Shift,T,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l eng "tmp.png" - | wl-copy && rm "tmp.png" # Japanese bind = Super+Shift,J,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l jpn "tmp.png" - | wl-copy && rm "tmp.png" # Media bindl= Super+Shift, N, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` bindl= ,XF86AudioNext, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` bind = Super+Shift+Alt, mouse:275, exec, playerctl previous bind = Super+Shift+Alt, mouse:276, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` bindl= Super+Shift, B, exec, playerctl previous bindl= Super+Shift, P, exec, playerctl play-pause bindl= ,XF86AudioPlay, exec, playerctl play-pause # Lock screen # bind = Super, L, exec, loginctl lock-session bind = Ctrl+Alt, Slash, exec, ags run-js 'cycleMode();' # Cycle bar mode (normal, focus) # App launcher bind = Super, Space, exec, ags -t 'overview' # ##################################### AGS keybinds ##################################### bindr = Control+Super, R, exec, killall ags; ags & bindr = Control+Super+Alt, R, exec, hyprctl reload; killall ags; ags & bind = Control+Super, T, exec, ~/.config/ags/scripts/color_generation/switchwall.sh bind = Control+Alt, Slash, exec, ags run-js 'cycleMode();' bindir = Super, Super_L, exec, ~/.config/rofi/scripts/launcher_t1 # bindir = Super, Super_L, exec, anyrun bind = Super, Slash, exec, for ((i=0; i<$(xrandr --listmonitors | grep -c 'Monitor'); i++)); do ags -t "cheatsheet""$i"; done bind = Control+Alt, Delete, exec, for ((i=0; i<$(xrandr --listmonitors | grep -c 'Monitor'); i++)); do ags -t "session""$i"; done bindle = , XF86AudioRaiseVolume, exec, ags run-js 'indicator.popup(1);' bindle = , XF86AudioLowerVolume, exec, ags run-js 'indicator.popup(1);' bindle=, XF86MonBrightnessUp, exec, ags run-js 'brightness.screen_value += 0.05; indicator.popup(1);' bindle=, XF86MonBrightnessDown, exec, ags run-js 'brightness.screen_value -= 0.05; indicator.popup(1);' bindl = , XF86AudioMute, exec, ags run-js 'indicator.popup(1);' # ##################################### Plugins ######################################### # Testing # bind = SuperAlt, f12, exec, notify-send "Hyprland version: $(hyprctl version | head -2 | tail -1 | cut -f2 -d ' ')" "owo" -a 'Hyprland keybind' # bind = Super+Alt, f12, exec, notify-send "Millis since epoch" "$(date +%s%N | cut -b1-13)" -a 'Hyprland keybind' bind = Super+Alt, f12, exec, notify-send 'Test notification' "Here's a really long message to test truncation and wrapping\nYou can middle click or flick this notification to dismiss it!" -a 'Shell' -A "Test1=I got it!" -A "Test2=Another action" -t 5000 bind = Super+Alt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' # ########################### Keybinds for Hyprland ############################ # Swap windows bind = Super+Shift, left, movewindow, l bind = Super+Shift, right, movewindow, r bind = Super+Shift, up, movewindow, u bind = Super+Shift, down, movewindow, d # Move focus bind = Alt, left, movefocus, l bind = Alt, right, movefocus, r bind = Alt, up, movefocus, u bind = Alt, down, movefocus, d bind = Super, h, movefocus, l bind = Super, l, movefocus, r bind = Super, k, movefocus, u bind = Super, j, movefocus, d bind = Ctrl+Super, h, focusmonitor, DP-2 bind = Ctrl+Super, l, focusmonitor, eDP-1 # Workspace, window, tab switch with keyboard bind = Super, right, workspace, +1 bind = Super, left, workspace, -1 bind = Super+Alt, right, movetoworkspace, +1 bind = Super+Alt, left, movetoworkspace, -1 # Window split ratio binde = Super, Minus, splitratio, -0.1 binde = Super, Equal, splitratio, 0.1 binde = Super, Semicolon, splitratio, -0.1 binde = Super, Apostrophe, splitratio, 0.1 # Fullscreen bind = Super, F, fullscreen, 0 bind = Super, D, fullscreen, 1 bind = Super, P, togglespecialworkspace, bind = Alt, Tab,exec, rofi -show window -show-icons bind = Alt, grave,exec, rofi -show # bind = Alt, Tab, bringactivetotop, # bring it to the top bind = Super, M, movewindow, mon:DP-2 bind = Super+Shift, M, movewindow, mon:eDP-1 # Switching bind = Super, 1, split:workspace, 1 bind = Super, 2, split:workspace, 2 bind = Super, 3, split:workspace, 3 bind = Super, 4, split:workspace, 4 bind = Super, 5, split:workspace, 5 bind = Super, 6, split:workspace, 6 # Move window to workspace Super + Alt + [0-9] bind = Super+Alt, 1, split:movetoworkspace, 1 bind = Super+Alt, 2, split:movetoworkspace, 2 bind = Super+Alt, 3, split:movetoworkspace, 3 bind = Super+Alt, 4, split:movetoworkspace, 4 bind = Super+Alt, 5, split:movetoworkspace, 5 bind = Super+Alt, 6, split:movetoworkspace, 6 bind = Super, Comma, split:swapactiveworkspaces, 0 1 bind = Super, Backslash, split:grabroguewindows # bind = SUPER, grave, hyprexpo:expo, toggle # can be: toggle, off/disable or on/enable bind = Super+Alt, P, movetoworkspacesilent, special bind = Control+Shift, G, togglegroup bind = Control+Shift, J, changegroupactive, b bind = Control+Shift, L, changegroupactive, f # Scroll through existing workspaces with (Control) + Super + scroll bind = Super, mouse_up, workspace, +1 bind = Super, mouse_down, workspace, -1 # Move/resize windows with Super + LMB/RMB and dragging bindm = Super, mouse:272, movewindow bindm = Super, mouse:273, resizewindow bind = Control+Super, Backslash, resizeactive, exact 640 480 bind = Super, Tab, workspace, previous # bind = Super, S, split:swapactiveworkspaces, current +1 ======Config-End======== ```Description
When using vertical monitor on latest Hyprland-git pointer can't move to the lower part of the screen on that monitor. I can interact with that part of the screen and click normally but pointer stays and won't go below that line.
ps. Weird thing is that if I start screen recording everything starts working normally and pointer can move freely.
My monitor config: monitor=eDP-1,2560x1600@90,-1920x600,1.333 monitor=DP-7,2560x1440@99.90,0x0,1 monitor=DP-8,1920x1080@75,2560x-300,1,transform,3
How to reproduce
Connect vertical monitor with TRANSFORM,3 monitor parameter and observe cursor staying locked above imaginary line at the bottom of the monitor.
Crash reports, logs, images, videos
https://github.com/user-attachments/assets/1128d8b5-350d-43a3-bcf3-0c16537f13d5