hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
19.89k stars 848 forks source link

hotspot_padding doesn't allow to reach the Edge of the Screen. #6600

Closed ITeddyI closed 2 months ago

ITeddyI commented 3 months ago

Regression?

Yes

System Info and Version

Im Running Mainline Arch with the Latest updates. Hyprland is on the Latest Stable Release. Hyprland is installed through Pacman. I have one Display Connected with the Preferred Res of 1360x768@60.36. Im Using the Standard Linux Kernel, Version 6.9.5-arch1-1.

Hyprland, built from branch  at commit 9e781040d9067c2711ec2e9f5b47b76ef70762b3  (props: bump version to 0.41.1).
Date: Thu Jun 13 09:54:06 2024
Tag: v0.41.1, commits: 4818

flags: (if any)

System Information:
System name: Linux
Node name: i3
Release: 6.9.5-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Sun, 16 Jun 2024 19:06:37 +0000

GPU information:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV770 [Radeon HD 4850] [1002:9442] (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

======Config-Start======

Config File: /home/teddy/.config/hypr/hyprland.conf: Read Succeeded
# This is an example Hyprland config file.
#
# Refer to the wiki for more information.

#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#

# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=DVI-I-2,preferred,auto,1

# See https://wiki.hyprland.org/Configuring/Keywords/ for more

# Execute your favorite apps at launch
  exec-once = swww-daemon
  exec-once = waybar
  exec-once = swaync
  exec-once = /usr/lib/polkit-kde-authentication-agent-1
  exec-once = easyeffects --gapplication-service
  exec-once = evdev-joystick --evdev /dev/input/by-id/usb-*-event-joystick --deadzone 0
  exec-once = openrgb --profile White
  #exec-once = /home/teddy/Documents/Scripts/swww_randomize.sh /home/teddy/Pictures/Wallpaper/Selection/

# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf

# Set programs that you use
$terminal = alacritty
$fileManager = pcmanfm
$menu = wofi --show drun

# Some default env vars.
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that

# For all categories, see https://wiki.hyprland.org/Configuring/Variables/

debug {
    disable_logs = false
}
input {
    kb_layout = de
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =
    follow_mouse = 2

    touchpad {
        natural_scroll = false
    }

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}

cursor {

    no_warps = true
    hotspot_padding = 0
}

general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    gaps_in = 10
    gaps_out = 15
    border_size = 0
    #faf9f6
    col.active_border = rgb(a3b8bd)
    col.inactive_border = rgb(000000)

    layout = master

    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
    allow_tearing = false
}

decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    rounding = 0
    active_opacity = 0.95
    inactive_opacity = 0.9
    layerrule = blur,waybar

    blur {
        enabled = true
        size = 1
        passes = 1

        vibrancy = 0
    }

    drop_shadow = false
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)
}

animations {
    enabled = true

    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
}

dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = true # you probably want this
}

master {
    # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
    new_is_master = true
}

gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    workspace_swipe = false
}

misc {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
   # force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = true
}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
    name = razer-razer-deathadder-v2
    sensitivity = -0.7
    accel_profile = flat
}

# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
windowrulev2 = bordersize 1,class:Alacritty
windowrulev2 = opacity 1.0 override,class:Alacritty
windowrulev2 = workspace special:magic,class:com.interversehq.qView
windowrulev2 = opacity 1.0 override,class:com.interversehq.qView

# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod, Q, exit,
bind = $mainMod, P, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, M, exec, $menu
#bind = $mainMod, P, pseudo, # dwindle
#bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, B, exec, firefox
bind = $mainMod, N, exec, swaync-client -t -sw
bind = , XF86AudioRaiseVolume, exec, pamixer -i 5
bind = , XF86AudioLowerVolume, exec, pamixer -d 5
bind = , XF86AudioMute, exec, pamixer -t
bind = Control_R, code:96, exec, pamixer --default-source -t
bind = , PRINT, exec, hyprshot -m DVI-I-2 --mode output -o ~/Pictures/Screenshots
bind = $mainMod, PRINT, exec, hyprshot -z -m region -o ~/Pictures/Screenshots

# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

# Moving windows
bind = $mainMod SHIFT, left,  swapwindow, l
bind = $mainMod SHIFT, right, swapwindow, r
bind = $mainMod SHIFT, up,    swapwindow, u
bind = $mainMod SHIFT, down,  swapwindow, d

# Resize Windows                 x  y
bind = $mainMod, code:35, resizeactive, -50 0
bind = $mainMod, code:51, resizeactive,  50 0
bind = $mainMod, F      , fullscreen, 0
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10

# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic

# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

======Config-End========

Description

When setting hotspot_padding = 0 in the Config file it seems that this still does not allow the Cursor to move to the Very Edge of the Screen. I first noticed an issue with Firefox. By Default, changing to Fullscreen in Firefox hides the Tab Bar. Moving your Mouse to the top of the Screen shows the Tab Bar again. This Worked Perfectly Fine until Recently. I first searched the web and found many People with the same Problem, but no Solution Far and Wide. I did some digging. I eventually started Firefox with the window Rule fakefullscreen and unhiding the Tab Bar worked like a charm. It seems that your mouse has to Reach the Very First Row of Pixels to unhide the Tab Bar. A Very odd Decision. Setting hotspot_padding = 0doesn't resolve this issue. I set hotspot_padding = 30 to see if it does anything, it worked as expected. On a whimp I tried a negative value, hotspot_padding = -5. It didn't seem to be any different from setting it to 0. I also checked if this has something to do with my weird Screen Res ( 1360x768 ) by Setting it to 1920x1080, but to no avail. I attached a Zoomed Image that shows the cursor stopping ever so slightly under the Screen Edge.

How to reproduce

Set hotspot_paddding = 0 in your Config file. Open Firefox Open any Webpage except the Firefox Homepage. It doesn't Hide the Tab Bar there. Enter Fullscreen with either F11 or your Hyprland Keybind. Move your Mouse to the Top of the Screen. Correct Behavior: The Tab Bar appears. Wrong Behavior: Nothing Happens.

Crash reports, logs, images, videos

Picture of the Cursor. possible_boundry_bug

drendog commented 3 months ago

https://github.com/hyprwm/Hyprland/pull/6027