hyprwm / Hyprland

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

wp_single_pixel_buffer_manager_v1 no longer present? #6624

Open marcelohdez opened 1 week ago

marcelohdez commented 1 week ago

Regression?

Yes

System Info and Version

System/Version info Using slightly modified default config, just to match my personal sway config for debugging ```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: fedora-fw Release: 6.9.4-200.fc40.x86_64 Version: #1 SMP PREEMPT_DYNAMIC Wed Jun 12 13:33:34 UTC 2024 GPU information: c1:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev c4) (prog-if 00 [VGA controller]) os-release: NAME="Fedora Linux" VERSION="40 (Forty)" ID=fedora VERSION_ID=40 VERSION_CODENAME="" PLATFORM_ID="platform:f40" PRETTY_NAME="Fedora Linux 40 (Forty)" ANSI_COLOR="0;38;2;60;110;180" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora:40" DEFAULT_HOSTNAME="fedora" HOME_URL="https://fedoraproject.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/" SUPPORT_URL="https://ask.fedoraproject.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=40 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=40 SUPPORT_END=2025-05-13 plugins: ======Config-Start====== Config File: /home/mhdez/.config/hypr/hyprland.conf: Read Succeeded # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=,preferred,auto,auto monitor=eDP-1,preferred,auto,1.5 # Variables $mainMod = SUPER $specialMod = SUPER_SHIFT $left = H $up = K $down = J $right = L # Programs $calculator = gnome-calculator $search = fuzzel $term = foot $files = $term ranger $web = firefox $webPriv = firefox --private-window # Long-running processes exec-once = /usr/libexec/polkit-gnome-authentication-agent-1 exec-once = ~/.local/share/fn-scripts/auto_brightness.sh exec-once = ~/.local/share/fn-scripts/battery_watch.sh BAT1 exec-once = wl-paste -w ~/.local/share/fn-scripts/clipboard_write.sh exec-once = kanshi exec-once = kdeconnect-indicator exec-once = swayidle -w exec-once = waybar exec-once = wlsunset -s 21:00 -S 8:00 -t 4200 # set up correct theme $setupTheme = ~/.local/share/fn-scripts/theme_setup.sh $startDarkman = systemctl --user restart darkman exec-once = 'pgrep darkman && $startDarkman || $setupTheme' ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 ##################### ### LOOK AND FEEL ### ##################### general { gaps_in = 3 gaps_out = 6 border_size = 2 col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) resize_on_border = true # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false layout = dwindle } decoration { rounding = 6 active_opacity = 1.0 inactive_opacity = 0.92 drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true size = 4 passes = 1 vibrancy = 0.1696 } } 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, 4, myBezier animation = windowsOut, 1, 4, default, popin 80% animation = border, 1, 4, default animation = borderangle, 1, 4, default animation = fade, 1, 4, default animation = workspaces, 1, 4, default } 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 } misc { force_default_wallpaper = 0 disable_hyprland_logo = true } ############# ### INPUT ### ############# input { kb_layout = us follow_mouse = 1 sensitivity = 0 touchpad { natural_scroll = true } } gestures { workspace_swipe = true } device { name = epic-mouse-v1 sensitivity = -0.5 } #################### ### KEYBINDINGSS ### #################### bind = $mainMod, T, exec, $term bind = ALT, T, exec, $term bind = $mainMod, F, exec, $web bind = $specialMod, F, exec, $webPriv bind = $mainMod, X, killactive, bind = $specialMod, ESC, exit, bind = $mainMod, B, exec, $files bind = $mainMod, V, togglefloating, bind = $mainMod, SPACE, exec, $search # 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 # 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 ############################## ### WINDOWS AND WORKSPACES ### ############################## # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. ############# ### HACKS ### ############# debug { disable_scale_checks = true } ======Config-End======== ```

Description

My personal project, dim (packaged as dim-screen), uses the Smithay Client Toolkit to access the single pixel buffer manager (spbm) global and covers the screen with a certain opacity black in order to dim the screen, but it seems newer versions of Hyprland fail to give it access to said spbm global (due to wlroots fork?).

This did not occur in Hyprland v0.36 through v0.39 (didn't test v0.40) but fails on both v0.41.1 and hyprland-git (using solopasha's COPR).

Here is the issue for reference (on my comment with better stacktrace): single_pixel_buffer_manager_v1 error on new Hyprland v0.41

I am not sure if this would need a fix in Hyprland or the Smithay toolkit/wayland-protocols Rust crates. (Or, I am just doing something incorrectly)

How to reproduce

Install the dim package (see installing), or preferably for a better stacktrace, build dim from master, and attempt to run it with RUST_BACKTRACE=full. See panic because wp_single_pixel_buffer_manager_v1 is NotPresent.

Crash reports, logs, images, videos

No response

marcelohdez commented 1 week ago

Forgot to add: works on Sway 1.9, and river 0.3.3 (latest of both)

vaxerski commented 6 days ago

yes, single pixel has been dropped. It will be reimplemented in the future.