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
21.09k stars 882 forks source link

Mouse position registered incorrectly in some XWayland apps #2561

Closed russelltg closed 1 year ago

russelltg commented 1 year ago

There is an offset from my mouse position to where this is registered. When window is fullscreen'd it seems to work properly.

It's possible this is a portal (SDL?) issue, let me know if it should be reported elsewhere.

https://github.com/hyprwm/Hyprland/assets/7105082/2a176acf-36af-41c0-8aaa-e55888560f6c

hyprctl client:

Window 55e18ff87e70 -> Portal Reloaded - OpenGL:
    mapped: 1
    hidden: 0
    at: 2031,59
    size: 2098,1248
    workspace: 5 (5)
    floating: 1
    monitor: 2
    class: portal2_linux
    title: Portal Reloaded - OpenGL
    initialClass: portal2_linux
    initialTitle: Portal Reloaded - OpenGL
    pid: 83431
    xwayland: 1
    pinned: 0
    fullscreen: 0
    fullscreenmode: 0
    fakefullscreen: 0
    grouped: 0
    swallowing: 0
vaxerski commented 1 year ago

are you perhaps using the force zero scale opt?

russelltg commented 1 year ago

Unless it's the default, no. Here's my config

Config ``` ######################################################################################## AUTOGENERATED HYPR CONFIG. PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. ######################################################################################## # # Please note not all available settings / options are set here. # For a full list, see the wiki # autogenerated = 0 # remove this line to remove the warning # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=,preferred,auto,1.0 bindl =, switch:on:Lid Switch,exec,hyprctl keyword monitor eDP-1,disable bindl =, switch:off:Lid Switch,exec,hyprctl keyword monitor eDP-1,preferred,auto,1 monitor=DP-4,preferred,2560x0,1.0 monitor=DP-5,preferred,0x0,1.0 monitor=DP-7,preferred,2560x0,1.0 monitor=DP-6,preferred,0x0,1.0 1920x1080 #monitor=DP-8,1920x1080@60,5120x0,1.0 monitor=DP-8,3840x2160@60,5120x0,1.0 #monitor=eDP-1,disable # See https://wiki.hyprland.org/Configuring/Keywords/ for more # Execute your favorite apps at launch # exec-once = waybar & hyprpaper & firefox # exec-once = waybar & swayosd & dunst & /usr/lib/polkit-kde-authentication-agent-1 & udiskie & hyprpaper & fcitx5 exec-once = swaylock -p # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf # Some default env vars. env = XCURSOR_SIZE,24 # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = follow_mouse = 1 touchpad { tap-to-click = false disable_while_typing = true natural_scroll = true clickfinger_behavior = true } sensitivity = 0 # -1.0 - 1.0, 0 means no modification. } general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 5 gaps_out = 20 border_size = 2 col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) layout = dwindle } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 blur = yes blur_size = 3 blur_passes = 1 blur_new_optimizations = on drop_shadow = yes shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) } animations { enabled = yes # 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, 5, myBezier animation = windowsOut, 1, 5, default, popin 80% animation = border, 1, 5, default animation = borderangle, 1, 5, default animation = fade, 1, 5, default animation = workspaces, 1, 4, default } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = yes # you probably want this } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_is_master = true } misc { vfr = false vrr = 1 } debug { #overlay = true #damage_blink = true } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = off } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more device:epic mouse V1 { sensitivity = -0.5 } # Example windowrule v1 # firefox sharing indicator #windowrule=float,title:Firefox — Sharing Indicator #windowrule=nofocus,title:Firefox — Sharing Indicator #windowrule=move 50% 0%,title:Firefox — Sharing Indicator # showmethekey windowrule=float,title:Floating Window - Show Me The Key windowrule=pin,title:Floating Window - Show Me The Key windowrule=nofocus,title:Floating Window - Show Me The Key windowrule=move 40% 0%,title:Floating Window - Show Me The Key windowrule=float,org.kde.polkit-kde-authentication-agent-1 # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER # multimedia binds binde =, XF86AudioLowerVolume, exec, swayosd --output-volume lower binde =, XF86AudioRaiseVolume, exec, swayosd --output-volume raise # brightness binde =, XF86MonBrightnessUp, exec, swayosd --brightness raise binde =, XF86MonBrightnessDown, exec, swayosd --brightness lower # other OSD stuff bindl = , Caps_Lock, exec, sleep 0.1; swayosd --caps-lock # launchers bind = $mainMod, D, exec, rofi -show drun -icon-theme "Papirus" -show-icons -drun-show-actions bind = $mainMod SHIFT, S, exec, ~/.config/sway/screenshot.sh bind = $mainMod SHIFT, V, exec, ~/.config/sway/screenrecord.sh bind = $mainMod, return, exec, alacritty # session management bind = $mainMod SHIFT, P, exec, swaylock -p bind = $mainMod SHIFT, E, exit, # window manipulation bind = $mainMod SHIFT, Q, killactive, bind = $mainMod SHIFT, SPACE, togglefloating, bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, E, togglesplit, # dwindle bind = $mainMod, F, fullscreen # Move focus with mainMod + vim direcitons bind = $mainMod, J, movefocus, l bind = $mainMod, SEMICOLON, movefocus, r bind = $mainMod, K, movefocus, d bind = $mainMod, L, movefocus, u # Move window with mainMod SHIFT + vim direcitons bind = $mainMod SHIFT, J, movewindow, l bind = $mainMod SHIFT, SEMICOLON, movewindow, r bind = $mainMod SHIFT, K, movewindow, d bind = $mainMod SHIFT, L, movewindow, u # 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, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 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 # moving workspaces bind = $mainMod, bracketleft, movecurrentworkspacetomonitor, l bind = $mainMod, bracketright, movecurrentworkspacetomonitor, r # 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 ```
vaxerski commented 1 year ago

this might be then the app doing that funny xwayland thing. If fullscreening fixes it, the app might just "think" it's fullscreen and assume some size even if it aint

Lazzu commented 1 year ago

I seem to have similar issue with the game Cosmoteer on Steam. I haven't found other games yet that won't work correctly. The issue though for me makes the game completely unplayable as the game won't take in any input from the mouse regardless if it's windowed or fullscreen. The mousehover effects are not visible which makes me assume the game receives totally wrong mouse coordinates. I'm using my highrr monitor as my gaming monitor and have configured it to be to the right of my 4k monitor. Using latest release on AUR. This happens only when I have my 4k monitor plugged in and the highrr monitor configured with the offset.

monitor=DP-3,highrr,2560x0,1
monitor=DP-2,highres,0x0,1.5
vaxerski commented 1 year ago

Using latest release on AUR

hyprctl version?

This is unrelated. Anyways, this issue can be closed, it's the app's fault