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.55k stars 821 forks source link

Autocentering/Misinput of context menus in XWayland applications like REAPER #6896 #6921

Closed Nicolas-Saavedra closed 1 week ago

Nicolas-Saavedra commented 1 month ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit bc6b0880dda2607a80f000c134f573c970452a0f (window: override noMaximize if new window takes over fullscreen (6812) (6870)). Date: Sat Jul 13 13:44:32 2024 Tag: v0.41.2-39-gbc6b0880, commits: 4925 flags: (if any) System Information: System name: Linux Node name: tweep-laptop Release: 6.9.9-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Fri, 12 Jul 2024 00:06:53 +0000 GPU information: 07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev d2) (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/tweep/.config/hypr/hyprland.conf: Read Succeeded # # 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=eDP-1,highres,auto,1,bitdepth,8 monitor=HDMI-A-1,highres,auto,1,bitdepth,8,mirror,eDP-1 # See https://wiki.hyprland.org/Configuring/Keywords/ for more # Execute your favorite apps at launch # exec-once = waybar & hyprpaper & firefox # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf # Set programs that you use $terminal = alacritty $fileManager = nemo $menu = wofi --show drun -n $powermenu = wlogout -p layer-shell $mail = mailspring --password-store="kwallet5" $notion = notion-app $discord = vesktop # Some default env vars. env = HYPRCURSOR_SIZE,24 env = HYPRCURSOR_THEME,hyprcursor_Dracula env = QT_QPA_PLATFORMTHEME,qt5ct # Go for the toolkit variables env = GTK_BACKEND,wayland,x11,* env = QT_QPA_PLATFORM,wayland;xcb env = SDL_VIDEODRIVER,wayland env = CLUTTER_BACKEND,wayland # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = repeat_rate = 30 repeat_delay = 300 accel_profile = flat follow_mouse = 1 touchpad { disable_while_typing = false natural_scroll = true } sensitivity = 1 # -1.0 - 1.0, 0 means no modification. } device { name = logitech-g305-1 sensitivity = -0.25 } device { name = synps/2-synaptics-touchpad enabled = false } general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 4 gaps_out = 8 border_size = 0 col.active_border = rgba(d6d6d6ee) rgba(797979ee) 45deg col.inactive_border = rgba(595959aa) 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 blur { enabled = true size = 2 passes = 2 } rounding = 8 drop_shadow = yes shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) dim_inactive = true dim_strength = 0.05 blurls = wofi } animations { enabled = true # bezier = overshot, 0.05, 0.9, 0.1, 1.1 bezier = overshot, 0.13, 0.99, 0.29, 1.1 animation = windows, 1, 4, overshot, slide animation = border, 1, 10, default animation = fade, 1, 10, default animation = workspaces, 1, 5, overshot, slide } 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_status = slave mfact = 0.5 } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = off } custom { rules { windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$ windowrulev2 = noanim,class:^(xwaylandvideobridge)$ windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$ windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$ windowrulev2 = noblur,class:^(xwaylandvideobridge)$ windowrulev2 = animation slide, class:^(wofi)$ #windowrulev2 = move 100%-433 53, class:^(wofi)$ } } cursor { no_hardware_cursors = true } misc { # See https://wiki.hyprland.org/Configuring/Variables/ for more force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers disable_hyprland_logo = true } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more # 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 # 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, Q, killactive, bind = $mainMod, E, exec, $fileManager bind = $mainMod, F, togglefloating, bind = $mainMod, W, exec, $menu # Move focus with mainMod + arrow keys bind = $mainMod, h, movefocus, l bind = $mainMod, l, movefocus, r bind = $mainMod, k, movefocus, u bind = $mainMod, j, movefocus, d # 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 bind = $mainMod SHIFT, c, layoutmsg, swapwithmaster auto # Example special workspace (scratchpad) bind = $mainMod, S, exec, grimblast copysave area bind = $mainMod, P, exec, notify-send -t 3000 "$(hyprpicker)" # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Extra utilities bind = $mainMod, F1, exec, ~/Scripts/volume.sh --toggle bind = $mainMod, F2, exec, ~/Scripts/volume.sh --dec bind = $mainMod, F3, exec, ~/Scripts/volume.sh --inc bind = $mainMod, L, exec, hyprlock bind = $mainMod, escape, exec, $powermenu bind = $mainMod, M, exec, $mail bind = $mainMod, N, exec, $notion bind = $mainMod, D, exec, $discord # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow exec = hyprpaper exec-once = hyprlock && hypridle exec-once = waybar -c ~/.config/waybar/config -s ~/.config/waybar/style.css exec-once=/usr/lib/polkit-kde-authentication-agent-1 exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP ======Config-End======== ```
__ ### Description Running certian XWayland apps with context menus have their positioning badly placed on the screen, as well as automatically selecting the first option shown on the menu. Apps that have seen this behaviour in this case include the DAW REAPER. This app works fine on latest version of KDE Plasma in Wayland. Discussion of this issue started on #6896 , and a bisect was done to check for regression, which was found to be in the commit addd3e7, which would make sense, as this commit moved a big part of the XWayland codebase. ### How to reproduce 1. Run the REAPER program 2. Click the top context menus 3. Try to select a menu and any option. In general, it will not be feasable, or it will be centered and will input automatically the first option. ### Crash reports, logs, images, videos ![image](https://github.com/user-attachments/assets/69f604c1-72ac-4cf0-a9aa-6819ec31e71a) Most of the time, it will just select the first option though.
hdm9527 commented 1 month ago

It may be the same issue #6849.

vaxerski commented 1 month ago

positioning fixed in 7f624d2236162db847c70ce1caa12851e77e60eb but it still instantly closes, reaper is doing something weird with X here.

Anyways, you can get it to work by double-clicking the button

Nicolas-Saavedra commented 1 month ago

Can confirm both of those. Would be less of an issue if it just closed properly, but some options like the File option tend to instantly select the first option, which can make it very hard to access these options anyways. I'll just wait for now however, as it's not an urgent matter.

burein-ita commented 1 month ago

Run REAPER in xwayland rootful mode.

REAPER has been broken in Hyprland for a very long time. It does weird shit with it's menus and external plugins are sometimes worse. For me it's main window doesn't auto-tile anymore. And since today the menu's size is fucked.

Keep in mind that if you run rootful Xwayland you'll need a configured x11 WM.

sluedecke commented 1 month ago

I have the same issue. Though one can navigate most menus using the keys, context menus are really tough and it makes working with REAPER very hard. It works fine with Gnome on Wayland though.

sluedecke commented 1 week ago

Great, thank you for fixing this!

vaxerski commented 1 week ago

yours truly