Open UltraBlackLinux opened 1 week ago
try git
now whenever I start bitwig dragging works for a few seconds/drags and then breaks again, but reproducibly so. Cursor continues to be put into the top left corner of the window from time to time.
it's also definitely related to mouse grabbing since widgets that don't grab the mouse work properly.
Using commit 2031af82fa029aa098357339d502b53c371919d4, dragging in Helvum appears to work fine at first but then breaks.
@andrewathalye I cannot reproduce your issue and helvum also doesn't grab the cursor. I think you have a different problem.
What kind of data should I collect to pinpoint my issue? Just Wayland debug logs?
It's the same thing with versions: worked 0.40.0 broke 0.41.0
[1412545.224] wl_pointer@25.frame()
[1412545.539] -> wl_compositor@5.create_surface(new id wl_surface@43)
[1412545.552] -> wp_fractional_scale_manager_v1@9.get_fractional_scale(new id wp_fractional_scale_v1@51, wl_surface@43)
[1412545.559] -> wp_viewporter@8.get_viewport(new id wp_viewport@55, wl_surface@43)
[1412545.571] -> wl_data_device_manager@4.create_data_source(new id wl_data_source@49)
[1412545.610] -> wl_data_source@49.offer("application/x-gtk-local-dnd")
[1412545.616] -> wl_data_source@49.set_actions(1)
[1412545.622] -> wl_data_device@28.start_drag(wl_data_source@49, wl_surface@34, wl_surface@43, 7033)
[1412545.787] -> wl_shm_pool@3.create_buffer(new id wl_buffer@46, 4608, 24, 24, 96, 0)
[1412545.795] -> wl_pointer@25.set_cursor(7021, wl_surface@29, 3, 1)
[1412545.802] -> wl_surface@29.attach(wl_buffer@46, 0, 0)
[1412545.807] -> wl_surface@29.set_buffer_scale(1)
[1412545.812] -> wl_surface@29.damage(0, 0, 24, 24)
[1412545.817] -> wl_surface@29.commit()
[1412545.823] -> wl_pointer@25.set_cursor(7021, wl_surface@29, 3, 1)
[1412545.828] -> wl_surface@29.attach(wl_buffer@46, 0, 0)
[1412545.833] -> wl_surface@29.set_buffer_scale(1)
[1412545.838] -> wl_surface@29.damage(0, 0, 24, 24)
[1412545.842] -> wl_surface@29.commit()
However there is no end_drag...
This is the Flake I was testing with:
{
inputs = {
nixpkgs = {
url = "github:NixOS/nixpkgs?rev=cc54fb41d13736e92229c21627ea4f22199fee6b";
};
nixpkgs-unstable = {
url = "github:NixOS/nixpkgs?rev=e9ee548d90ff586a6471b4ae80ae9cfcbceb3420";
};
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland?rev=2031af82fa029aa098357339d502b53c371919d4";
submodules = true;
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
};
outputs = { self, nixpkgs, nixpkgs-unstable, hyprland }:
let
pkgs = nixpkgs.legacyPackages.x86_64-linux;
pkgs-unstable = nixpkgs-unstable.legacyPackages.x86_64-linux;
hyprpkg = hyprland.packages.x86_64-linux.hyprland;
in
{
devShells.x86_64-linux.default = import ./shell.nix {pkgs = pkgs; pkgs-unstable = pkgs-unstable; hyprland = hyprpkg;};
};
}
Here is shell.nix
{ pkgs
, pkgs-unstable
, hyprland
}:
let
wlroots-p1 = pkgs-unstable.wlroots.override { xwayland = pkgs.xwayland; mesa = pkgs.mesa; };
wlroots-patched = wlroots-p1.overrideAttrs (prev: {nativeBuildInputs = prev.nativeBuildInputs ++ [ pkgs-unstable.libdrm ];});
hyprland-p1 = hyprland.override {mesa = pkgs.mesa; libdrm = pkgs-unstable.libdrm; wlroots = wlroots-patched;};
hyprland-patched = hyprland-p1.overrideAttrs (prev: {nativeBuildInputs = prev.nativeBuildInputs ++ [ pkgs-unstable.libdrm ];});
in
pkgs.mkShell {
nativeBuildInputs = [ hyprland-patched ];
}
Also it has broken Firefox drag-and-drop
try noiw
same behaviour still unfortunately.
I do have a drag and drop issue too though, but that seems like a different issue as well: If I drag a tab onto a different screen than firefox is on, the drop operation is ignored and firefox gets ultra confused. I can't click on the X for any active tab, nor can I drag a selected tab anymore.
idk all work for me: firefox, chromium, helvum, etc
ah. I see. It's an issue with xwayland too. If I drag a tab onto an xwayland application exactly that happens.
xwayland dnd is not supported
I'm not saying drag and drop within xwayland. This causes the drag and drop issue: firefox (wayland) -(drag tab, drop onto)> anything xwayland tab vanishes instead of opening a new window, glitches out firefox
ah, gotcha.
fixed
nice issue # btw, 6543
yup that's working. I guess I'll try bisecting my widgets problem then.
hm I've hit kind of a roadblock, and I'm unsure what I'm supposed to do. I've literally just done the first bisection step, and the widgets are working exactly like in the latest commit, but instead of then stopping to work, hyprland crashes.
Is that a good
or a bad
commit?
maybe
you can always bisect twice
oh that's neat. Sadly I had already started marking them as bad, oh well. That run sent me to https://github.com/hyprwm/Hyprland/commit/b9c58b6e75f7d0141d8ba88fb3f6f022fed0877a
I'll try another bisect marking them as good now
maybe
was a joke.
bruh
also I have the sneaking suspicion that I'm currently bisecting the commit where you fixed the crash that I'm getting in place of the instant-unfocus... I sure hope there was at least one commit where this was working or I jus wasted like 20 minutes
finally. First (could've had a working system, but crashed: https://github.com/hyprwm/Hyprland/commit/b9c58b6e75f7d0141d8ba88fb3f6f022fed0877a Second (if the system was actually working, this would've introduced the currently broken behaviour while also fixing the crash): addd3e7f1aeb670dd91d26005aaeccce3efb1ae7
how to repro the crash tho?
take for example the per-track volume sliders in bitwig. You need to repeatedly move and let go of a slider and then it either crashes or the focus breaks and it's immediately ungrabbing the mouse, only moving the slider by like one pixel.
it seems to be related to time. It doesn't crash after X cycles but rather after X seconds after the slider was touched the first time
Edit: The time thing doesn't have a huge window either I just noticed. Maybe round about five to ten seconds.
Edit 2: hmm, the sliders in the sidebar don't seem affected, only the sliders in the track view or in the plugins view at the bottom... Very peculiar
I'm on Hyprland version from Arch repo, iirc 0.41.1-1. There is an issue for me in Chrome (but not in Firefox) with click-drag elements on the page, for example if I click on someones nickname here and drag it, window will stuck on grab animation, it's still able to move but no clicks will be registred even after page reload but will work fine on other pages. Is this issue related to my problem?
- Maybe use a less terrible browser? There's so many browsers on linux and you decide to install vanilla chrome from the AUR?
It's still a problem and if it's Hyprland problem (which idk) it should be fixed if we want it to be serious project. I would gladly rant about what to use or not to use but it become old long time ago.
- Check that your chrome is running on wayland natively
hyprctl says xwayland:0 but I'll check chrome flags when back at home.
- Problem unrelated because it doesn't grab the mouse
thx!
I just noticed that a somewhat reliable way to have the widgets work is to click and hold for a second or two and then drag
Unless that's all just flukes - no idea
take for example the per-track volume sliders in bitwig. You need to repeatedly move and let go of a slider and then it either crashes or the focus breaks and it's immediately ungrabbing the mouse, only moving the slider by like one pixel.
it seems to be related to time. It doesn't crash after X cycles but rather after X seconds after the slider was touched the first time
Edit: The time thing doesn't have a huge window either I just noticed. Maybe round about five to ten seconds.
Edit 2: hmm, the sliders in the sidebar don't seem affected, only the sliders in the track view or in the plugins view at the bottom... Very peculiar
Always taking bitwig as an example:
Switching to the AUR hyprland-git package (v0.41.1-60-ge09addf8) solved xwayland crashing when changing volume on the mixer's sliders. On the other hand most of the knobs inside the built-in plugins will require multiple dragging attempts to move just a few ticks. While doing so the window loses focus (video in attachments. you can tell by the window border flickering, looks like https://github.com/hyprwm/Hyprland/issues/2257#issuecomment-1544031163). Interestingly enough this doesn't happen on the generic ui for 3rd party plugins.
https://github.com/hyprwm/Hyprland/assets/94576412/2f3163e4-0649-455f-9c24-e6a305b1476e
Bug or Regression?
Regression
System Info and Version
System/Version info
```sh 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: lolcat Release: 6.6.33-1-lts Version: #1 SMP PREEMPT_DYNAMIC Thu, 13 Jun 2024 16:25:55 +0000 GPU information: 0a:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] [1002:73df] (rev c5) (prog-if 00 [VGA controller]) os-release: NAME="EndeavourOS" PRETTY_NAME="EndeavourOS" ID="endeavouros" ID_LIKE="arch" BUILD_ID="2024.01.25" ANSI_COLOR="38;2;23;147;209" HOME_URL="https://endeavouros.com" DOCUMENTATION_URL="https://discovery.endeavouros.com" SUPPORT_URL="https://forum.endeavouros.com" BUG_REPORT_URL="https://forum.endeavouros.com/c/general-system/endeavouros-installation" PRIVACY_POLICY_URL="https://endeavouros.com/privacy-policy-2" LOGO="endeavouros" plugins: ======Config-Start====== Config File: /home/maus/.config/hypr/hyprland.conf: Read Succeeded # Useful links # https://www.cssportal.com/css-cubic-bezier-generator/ # https://easings.net/ env = ADW_DISABLE_PORTAL,1 #env = GTK_THEME,Adwita:dark # env = GDK_BACKEND,wayland,x11 # env = QT_QPA_PLATFORM,"wayland;xcb" # env = SDL_VIDEODRIVER,wayland # env = XDG_CURRENT_DESKTOP,Hyprland # env = XDG_SESSION_TYPE,wayland # env = XDG_SESSION_DESKTOP,Hyprland # env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 # exec-once = systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP QT_QPA_PLATFORMTHEME exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY XAUTHORITY XDG_CURRENT_DESKTOP=Hyprland XDG_SESSION_DESKTOP=Hyprland XDG_SESSION_TYPE=wayland QT_QPA_PLATFORM="wayland;xcb" QT_QPA_PLATFORMTHEME exec-once = gnome-keyring-daemon --start --components=secrets exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = systembus-notify exec-once = otd-daemon # # AUTOSTART ----------------------------------- exec-once = waybar exec-once = udiskie -t exec-once = blueman-applet exec-once = wlsunset -S 6:0 -s 18:0 -t 4000 -d 120 exec-once = scc-daemon start exec-once = sleep 3; openrgb --startminimized -p yes exec-once = floorp exec-once = mako exec-once = ~/.config/hypr/hyprland_event_listen.sh exec-once = wl-paste --watch cliphist -max-items 100 store --no-persist #exec-once = wl-paste -p -t text --watch clipman store -P --histpath="~/.local/share/clipman-primary.json" # # exec-once = wl-clip-persist --clipboard both # breaks gtk text selection # #exec-once = sleep 1; ~/Documents/Git/linux-wallpaperengine/deploy/wallengine 2995503379 --screen-root=DVI-D-1 --screen-root=HDMI-A-1 --fps=30 --silent --assets-dir ~/Documents/Git/linux-wallpaperengine/deploy/assets # # exec = ~/.config/hypr/wallpaper.sh exec-once = sleep 1; swww init; sleep 1; while true; do swww img /home/maus/Pictures/wallpapers/$(ls /home/maus/Pictures/wallpapers | shuf -n 1) --transition-fps 30 --transition-type=random --transition-bezier=0,0.84,1,1; sleep 600; done # HARDWARE ----------------------------------- monitor=HDMI-A-1, 1920x1080, 240x150, 1 # res -> preferred monitor=DP-3, 1920x1200, 1920x0, 1 input { kb_layout = de kb_variant = nodeadkeys kb_model = kb_options = compose: rwin-altgr kb_rules = evdev repeat_delay = 400 repeat_rate = 40 numlock_by_default = true follow_mouse = true } cursor { no_warps = true } # VISUALS ----------------------------------- general { gaps_in = 5 gaps_out = 7 border_size = 2 col.active_border = rgb(ff00a0) rgb(209f54) 90deg col.inactive_border = rgba(595959aa) #resize_on_border = true layout = dwindle } decoration { blur { enabled = yes size = 3 passes = 1 new_optimizations = on } rounding = 7 drop_shadow = yes shadow_range = 50 shadow_render_power = 100 col.shadow = rgba(1a1a1aee) } animations { # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more enabled = yes bezier = overshoot, 0.35, 0, 0.9, 0.5 animation = windows, 1, 3, overshoot bezier = linear, 0.12, 0, 0.39, 0 animation = border, 1, 3, linear bezier = quickease, 0.76, 0, 0.24, 1 animation = borderangle, 1, 30, quickease, loop animation = windowsOut, 1, 7, default, popin #animation = border, 1, 10, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = yes preserve_split = yes } misc { enable_swallow = true swallow_regex = ^Alacritty$ focus_on_activate = true new_window_takes_over_fullscreen = 2 } binds { scroll_event_delay = 10 } # WINDOW RULES ---------------------------------- # windowrulev2 = nomaximizerequest, class:.* # You'll probably like this. windowrulev2 = float,class:^(Floorp),title:Firefox — Sharing Indicator windowrulev2 = float,class:^(screenkey)$ windowrulev2 = nofocus,class:^(screenkey)$ windowrulev2 = noanim,class:^(screenkey)$ windowrulev2 = move 0% 90%,class:^(screenkey)$ windowrulev2 = size 100% 10%,class:^(screenkey)$ # BINDS ----------------------------------- $mainMod = SUPER bind = $mainMod, SPACE, exec, fuzzel bind = , F12, exec, alacritty bind = SHIFT, PRINT, exec, grim -g "$(slurp -d)" - | swappy -f - -o - bind = CONTROL SHIFT, PRINT, exec, grim -g "$(slurp -o)" - | swappy -f - -o - bind = $mainMod, Q, killactive bind = $mainMod SHIFT, Q, exec, kill -9 $(hyprctl activewindow | grep -Po "(?<=pid: )\d+") bind = $mainMod, F, togglefloating bind = $mainMod SHIFT, F, fullscreen bind = $mainMod, Tab, cyclenext # change focus to another window bind = $mainMod, Tab, bringactivetotop # bring it to the top bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, S, togglesplit, # vertical or horizontal split # 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 bind = $mainMod SHIFT, N, exec, /home/maus/.config/hypr/move_to_empty_workspace.sh # 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, mouse_down, workspace, m+1 bind = $mainMod, mouse_up, workspace, m-1 bind = $mainMod SHIFT, mouse_down, movetoworkspace, m+1 bind = $mainMod SHIFT, mouse_up, movetoworkspace, m-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:273, movewindow bindm = $mainMod, mouse:272, resizewindow # bind = , mouse:274, exec, ; ======Config-End======== ```Description
4186 is back.
All I know is that it worked fine on 0.40.0
This time with slightly different behaviour: Sometimes it does work, but only after triggering the widgets' keyboard input, and while that is active, you can sometimes drag the widget like normal. Other times the cursor jumps to the top left corner of the screen.
If you repeatedly click and drag on any widget it sometimes randomly works too, but more reliably so than with the keyboard input method.
After trying for like 15 seconds this managed to crash xwayland apparently. The bitwig window poofed and it's no longer able to find an x11 server...
How to reproduce
Drag any widget (slider or knob) in bitwig
Crash reports, logs, images, videos
No response