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.83k stars 908 forks source link

DND from menus to quicklaunch or desktop broken in lxqt-panel #7737

Open stefonarch opened 2 months ago

stefonarch commented 2 months ago

Already reported ? *

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 0f594732b063a90d44df8c5d402d658f27471dfe (props: bump version to 0.43.0). Date: Sun Sep 8 16:48:21 2024 Tag: v0.43.0, commits: 5196 flags: (if any) System Information: System name: Linux Node name: archlinux Release: 6.6.49-1-lts Version: #1 SMP PREEMPT_DYNAMIC Wed, 04 Sep 2024 13:18:51 +0000 GPU information: 02:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Picasso/Raven 2 [Radeon Vega Series / Radeon Vega Mobile Series] [1002:15d8] (rev c4) (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/stef/.config/lxqt/wayland/lxqt-hyprland.conf: Read Succeeded # This is an example Hyprland config file. # Refer to the wiki for more information. # https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ # Please note not all available settings / options are set here. # For a full list, see the wiki # You can split this configuration into multiple files # Create your files separately and then link them to this file like this: # source = ~/.config/hypr/myColors.conf ################ ### MONITORS ### ################ # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=,preferred,auto,1 ################### ### MY PROGRAMS ### ################### # See https://wiki.hyprland.org/Configuring/Keywords/ # Set programs that you use $terminal = qterminal $fileManager = pcmanfm-qt $menu = lxqt-runner ################# ### LXQt ### ################# env = QT_QPA_PLATFORMTHEME,lxqt env = QT_PLATFORM_PLUGIN,lxqt env = XDG_MENU_PREFIX,lxqt- env = XDG_CURRENT_DESKTOP,LXQt:Hyprland:wlroots # start and exit LXQt session: exec-once=lxqt-session && hyprctl dispatch exit exec-once=kanshi exec-once=swayidle -w timeout 300 "wlopm --off \*" resume "wlopm --on \*" exec-once=wlsunset -l 44 -L 10 -t 4800 bind = Alt, F2, exec, $menu bind = , F12, exec, qterminal -d bind = , XF86PowerOff, exec, lxqt-leave windowrule = float,^(lxqt-.*|pavu.*|.*copyq|sddm-conf|Cerca file|qarma|.*portal-lxqt|.*rssguard|Preferen|cryptHider)$ windowrule=float,title:^(Preferen.*)$ windowrule = noborder,firefox #windowrulev2 = fullscreen,initialClass:^(Darktable|shotwell)$ windowrulev2 = dimaround,floating:1 windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. layerrule = noanim, launcher layerrule = dimaround, launcher ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hyprland.org/Configuring/Variables/ general { gaps_in = 6 gaps_out = 8 border_size = 2 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = false # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false layout = master } # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 6 # Change transparency of focused and unfocused windows active_opacity = 1.0 inactive_opacity = 0.8 drop_shadow = true shadow_range = 15 shadow_render_power = 1 col.shadow = rgba(1a1a1a60) # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true size = 3 passes = 1 vibrancy = 0.1696 } } # https://wiki.hyprland.org/Configuring/Variables/#animations animations { enabled = true # 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 } # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more dwindle { pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # You probably want this } # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more master { mfact = +0.67 new_on_top = true new_status = master } # https://wiki.hyprland.org/Configuring/Variables/#misc misc { force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :( focus_on_activate = true } ############# ### INPUT ### ############# # https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = it,ch kb_model = kb_options = grp:caps_toggle,grp_led:scroll kb_rules = follow_mouse = 1 sensitivity = 0.8 # -1.0 - 1.0, 0 means no modification. touchpad { natural_scroll = false } } # https://wiki.hyprland.org/Configuring/Variables/#gestures gestures { workspace_swipe = true } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more device { name = epic-mouse-v1 sensitivity = -0.5 } #################### ### KEYBINDINGSS ### #################### # See https://wiki.hyprland.org/Configuring/Keywords/ $mainMod = SUPER # Sets "Windows" key as main modifier # Ensure applications opened by shortcut are closed gently by LXQt like this for featherpad: bind = $mainMod, F, exec, pcmanfm-qt '/usr/share/applications/featherpad.desktop' #bind = $mainMod, K, exec, pcmanfm-qt '/usr/share/applications/org.keepassxc.KeePassXC.desktop' # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Return, exec, qterminal bind = $mainMod, C, killactive, #bind = $mainMod, M, exit, bind = $mainMod, P, exec, pcmanfm-qt bind = $mainMod, V, togglefloating, #bind = $mainMod, J, togglesplit, # dwindle bind = $mainMod, D, pseudo, # dwindle bind = ALT, SPACE, exec, lxqt-runner bind = CTRL ALT, V, exec, copyq show bind = CTRL , Print, exec, schermata_area bind = SHIFT , Print, exec, schermata_intera # 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 # 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 # monitor bind = $mainMod SHIFT, 1, movecurrentworkspacetomonitor, HDMI-A-1 bind = $mainMod SHIFT, 2, movecurrentworkspacetomonitor, eDP-1 #/# binde = Super, +/-,, # Window: split ratio +/- 0.1 bind = Super, K, splitratio, -0.1 bind = Super, L, splitratio, +0.1nhek bind = Super, comma, splitratio, -0.3 bind = Super, period, splitratio, +0.3 bind = Super+Shift, Left, movewindow, l # [hidden] bind = Super+Shift, Right, movewindow, r # [hidden] bind = Ctrl, Tab, layoutmsg, swapwithmaster bind = Alt, Tab, layoutmsg, swapnext # Brightness bind=,XF86MonBrightnessUp,exec,brightnessctl set 5%+ bind=,XF86MonBrightnessDown,exec,brightnessctl set 5%- # Speaker volume fixme bind=,XF86AudioRaiseVolume,exec,amixer sset Master 5%+ bind=,XF86AudioLowerVolume,exec,amixer sset Master 5%- bind=,XF86AudioMute,exec,amixer sset Master toggle # Move to next/previous workspace bind = CTRL ALT, left, movetoworkspace, e-1 bind = CTRL ALT, right, movetoworkspace, e+2 # 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 # Example special workspace (scratchpad) bind = $mainMod, S, togglespecialworkspace bind = $mainMod SHIFT, S, movetoworkspace, special # 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 ############################## ### WINDOWS AND WORKSPACES ### ############################## # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules windowrule=workspace 1 silent,thunderbird windowrule=workspace 2 silent,firefox windowrule=workspace 5 silent,Yiannis windowrule=workspace 6 silent,^(VirtualBox Machine)$ windowrule=workspace 2 silent,io.github.martinrotter.rssguard windowrule=workspace 3 silent,featherpad windowrule=workspace 4 silent,Element windowrule=workspace 4 silent,nheko windowrule=workspace 4 silent,org.telegram.desktop windowrule=workspace 5 silent,Darktable windowrule=workspace 5 silent,shotwell ======Config-End======== ``` `
``` ### Description Unable to drag any application icon into quicklaunch area from menu in lxqt-panel. This is no issue in other compositors (sway, labwc, kwin_wayland, wayfire). ### How to reproduce Start an lxqt-panel, add quicklaunch and fancymenu if no widgets are present (default config in `/usr/share/lxqt/panel.conf`). Try dragging from the menu. ### Crash reports, logs, images, videos _No response_
vaxerski commented 2 months ago

is lxqt-panel running in native wayland or xwayland?

stefonarch commented 2 months ago

All LXQt components are running under wayland, 3 panels here. DND in the taskbar works fine moving window buttons, DND is also not working to move icons inside the quicklaunch area.

$  hyprctl layers
Monitor eDP-1:
        Layer level 0 (background):
                Layer 5ef1db176580: xywh: 0 0 1920 1080, namespace: desktop
        Layer level 1 (bottom):
        Layer level 2 (top):
                Layer 5ef1db17c540: xywh: 0 0 1920 48, namespace: dock
                Layer 5ef1db169830: xywh: 1877 235 43 658, namespace: dock
                Layer 5ef1da0e4550: xywh: 161 1037 1555 43, namespace: dock
        Layer level 3 (overlay):
                Layer 5ef1dba78840: xywh: 142 48 1593 907, namespace: window
stefonarch commented 2 months ago

Just noticed that dragging icons to the quicklaunch area using pcmanfm-qt in /usr/share/applications/ works.

stefonarch commented 2 weeks ago

DND to the desktop window (pcmanfm-qt --desktop) is broken in the same way, from both application menus.

vaxerski commented 2 weeks ago

can you launch the panel or whatever is the destination with WAYLAND_DEBUG=1 and check if it gets data_offer events? I might've made dnd restricted to xdg windows.

stefonarch commented 2 weeks ago

No gets data_offer events in the desktop window (layer bottom) nor in panel. Now (v.0.45) I can't even drag from pcmanfm-qt desktop files to quicklaunch widget which worked before.

I see only now that also DND from a pcmanfm-qt window to its desktop window (layershell) is broken.

Mabi19 commented 2 weeks ago

can you launch the panel or whatever is the destination with WAYLAND_DEBUG=1 and check if it gets data_offer events? I might've made dnd restricted to xdg windows.

I think I might know what's happening here! Hyprland seems to only send DnD events to layers when the target layer has a keymode that allows interactivity. (I discovered this while making my own bar w/ AGS, and is the reason for the somewhat related question in #8293 - I thought it was intentional, but guess not).

stefonarch commented 2 weeks ago

Both lxqt-panel and the desktop window have KeyboardInteractivityOnDemand set. DND to the desktop from the filemanager window will hardly be used as you need to make it float first, that's why I only discovered it now. I thought first it's not picked up from the menu popup. but it looks like the receiving part is the issue here.

Mabi19 commented 2 weeks ago

Huh, guess it's actually a separate issue then.

stefonarch commented 2 weeks ago

I wrote above that ctrl+DND worked to move icons in quicklaunch area of the panel. It's not so anymore.

stefonarch commented 1 week ago

Some artefacts can be seen too:

https://github.com/user-attachments/assets/46bdb158-1f0a-404e-ab3c-034d3862f0ad

vaxerski commented 1 week ago

ah yeah thats a thing