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.07k stars 881 forks source link

Tablet should map to entire output layout, not just focused output by default #6511

Closed CobaltSpace closed 4 months ago

CobaltSpace commented 4 months ago

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: ROGArch Release: 6.9.4-zen1-1-zen Version: #1 ZEN SMP PREEMPT_DYNAMIC Wed, 12 Jun 2024 20:16:55 +0000 GPU information: 0c:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] [1002:731f] (rev c1) (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/cobalt/.config/hypr/hyprland.conf: Read Succeeded # hyprland config source = ./hyprland.conf.d/env.conf source = ./hyprland.conf.d/keys.conf source = ./hyprland.conf.d/output.conf source = ./hyprland.conf.d/locker.conf source = ./hyprland.conf.d/autostart.conf source = ./hyprland.conf.d/keybinds.conf source = ./hyprland.conf.d/windows.conf # 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 # 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 = numlock_by_default = true follow_mouse = 1 # mouse_refocus = false touchpad { natural_scroll = true } tablet { # relative_input = 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 = 0 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 = 0 blur { enabled = true size = 3 passes = 1 new_optimizations = true } drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) } animations { enabled = true # 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, 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 } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # you probably want this } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_is_master = true } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = true workspace_swipe_forever = true workspace_swipe_fingers = 4 workspace_swipe_create_new = false workspace_swipe_min_speed_to_force = 0 workspace_swipe_cancel_ratio = 0 } # # Example per-device config # # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more # device:epic-mouse-v1 { # sensitivity = -0.5 # } misc:allow_session_lock_restore = true misc:force_default_wallpaper = 3 # 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 source = ./hyprland.conf.d/toggles.conf Config File: /home/cobalt/.config/hypr/hyprland.conf.d/env.conf: Read Succeeded env = _JAVA_AWT_WM_NONREPARENTING,1 env = QT_QPA_PLATFORMTHEME,qt5ct env = BROWSER,firefox env = TERMINAL,alacritty # env = AMD_VULKAN_ICD,RADV Config File: /home/cobalt/.config/hypr/hyprland.conf.d/keys.conf: Read Succeeded # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER $up = k $down = j $left = h $right = l Config File: /home/cobalt/.config/hypr/hyprland.conf.d/output.conf: Read Succeeded $primary_monitor = desc:LG Electronics 27GL850 005NTSU7W526 $right_monitor = desc:NEC Corporation EA192M 11117027TA # monitor = $primaty_monitor, 2560x1440@144, 0x0, 1, bitdepth, 10 monitor = desc:LG Electronics 27GL850 005NTSU7W526, 2560x1440@144, 1280x0, 1, bitdepth, 10 monitor = desc:NEC Corporation EA192M 11117027TA, 1280x1024@75, 0x416, 1 # monitor = $right_monitor, disable # monitor = HEADLESS-1, 1920x1080@60, 5760x3240, 1 workspace = 99,monitor:HEADLESS-1 misc { vrr = 1 # no_direct_scanout = false } # $rotate_primary_script = hyprctl keyword monitor desc:LG Electronics 27GL850 005NTSU7W526", 2560x1440@144, 0x0, 1, transform, " # $rotate_right_script = hyprctl keyword monitor $right_monitor", 1280x1024@75, " # bind = SUPER_ALT, up, exec, hyprctl keyword animations:enabled false && $rotate_primary_script 0 && $rotate_right_script "2560x416, 1" && hyprctl keyword animations:enabled true # bind = SUPER_ALT, down, exec, hyprctl keyword animations:enabled false && $rotate_primary_script 2 && $rotate_right_script "2560x416, 1" && hyprctl keyword animations:enabled true # bind = SUPER_ALT, left, exec, hyprctl keyword animations:enabled false && $rotate_primary_script 1 && $rotate_right_script "1440x416, 1" && hyprctl keyword animations:enabled true # bind = SUPER_ALT, right, exec, hyprctl keyword animations:enabled false && $rotate_primary_script 3 && $rotate_right_script "1440x416, 1" && hyprctl keyword animations:enabled true $rotate_primary_script = hyprctl keyword monitor desc:LG Electronics 27GL850 005NTSU7W526", 2560x1440@144, 1280x0, 1, transform, " bind = SUPER_ALT, up, exec, $rotate_primary_script 0 bind = SUPER_ALT, down, exec, $rotate_primary_script 2 bind = SUPER_ALT, left, exec, $rotate_primary_script 1 bind = SUPER_ALT, right, exec, $rotate_primary_script 3 # bind = SUPER_ALT, up, exec, $rotate_right_script "2560x416, 1" # bind = SUPER_ALT, down, exec, $rotate_right_script "2560x416, 1" # bind = SUPER_ALT, left, exec, $rotate_right_script "1440x416, 1" # bind = SUPER_ALT, right, exec, $rotate_right_script "1440x416, 1" Config File: /home/cobalt/.config/hypr/hyprland.conf.d/locker.conf: Read Succeeded $Locker = loginctl lock-session Config File: /home/cobalt/.config/hypr/hyprland.conf.d/autostart.conf: Read Succeeded exec-once = swaync exec-once = dex -ae hyprland # exec-once = until waybar; do done exec-once = waybar # exec-once = swayidle exec-once = hypridle # exec-once = systemctl --user stop xdg-desktop-portal-gtk.service # exec-once = systemctl --user stop xdg-desktop-portal-gnome.service exec-once = wl-paste -t text -w sh -c '[ "$(xclip -selection clipboard -o)" = "$(wl-paste -n)" ] || xclip -selection clipboard' # exec-once = wl-paste -t text -w sh -c 'xclip -selection clipboard -o < /dev/null > /dev/null 2> /dev/null || xclip -selection clipboard' exec-once = ../acpid.sh Config File: /home/cobalt/.config/hypr/hyprland.conf.d/keybinds.conf: Read Succeeded # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Return, exec, rofi-sensible-terminal bind = $mainMod, w, killactive, bind = $mainMod, Space, exec, rofi -show drun || wofi --show drun # bind = $mainMod, x, exec, env -u WAYLAND_DISPLAY rofi -show drun || wofi --show drun # bind = $mainMod, Space, exec, wofi --show drun bind = , XF86Calculator, exec, qalculate-qt bind = $mainMod, e, exec, emacsclient -c # bind = $mainMod CTRL, v, exec, wl-paste -n | wtype - bind = $mainMod CTRL, v, exec, wl-paste -n | xdotool type --clearmodifiers --delay 50 --file - # Move focus with mainMod + arrow keys bind = $mainMod, $up, movefocus, u bind = $mainMod, $down, movefocus, d bind = $mainMod, $left, movefocus, l bind = $mainMod, $right, movefocus, r bind = $mainMod SHIFT, $up, movewindow, u bind = $mainMod SHIFT, $down, movewindow, d bind = $mainMod SHIFT, $left, movewindow, l bind = $mainMod SHIFT, $right, movewindow, r bind = $mainMod, bracketleft, focusmonitor, l bind = $mainMod, bracketright, focusmonitor, r bind = $mainMod SHIFT, bracketleft, movewindow, mon:l bind = $mainMod SHIFT, bracketright, movewindow, mon:r bind = $mainMod CTRL, bracketleft, movecurrentworkspacetomonitor, l bind = $mainMod CTRL, bracketright, movecurrentworkspacetomonitor, r bind = $mainMod, f, fullscreen, 0 bind = $mainMod, s, togglefloating, # 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, minus, workspace, 11 bind = $mainMod, equal, workspace, 12 # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1 bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3 bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10 bind = $mainMod SHIFT, minus, movetoworkspacesilent, 11 bind = $mainMod SHIFT, equal, movetoworkspacesilent, 12 # 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 # bind = $mainMod, M, exit, # bind = $mainMod, P, pseudo, # dwindle # bind = $mainMod, J, togglesplit, # dwindle bindl =, XF86AudioRaiseVolume, exec, amixer -D pulse sset Master 2%+ unmute bindl =, XF86AudioLowerVolume, exec, amixer -D pulse sset Master 2%- unmute bindl =, XF86AudioMute, exec, amixer -D pulse sset Master toggle bindl =, XF86AudioPlay, exec, playerctl play-pause -i firefox || xdotool search --class itunes.exe key --clearmodifiers XF86AudioPlay bindl =, XF86AudioPause, exec, playerctl pause -i firefox || xdotool search --class itunes.exe key --clearmodifiers XF86AudioPause bindl =, XF86AudioNext, exec, playerctl next -i firefox || xdotool search --class itunes.exe key --clearmodifiers XF86AudioNext bindl =, XF86AudioPrev, exec, playerctl previous -i firefox || xdotool search --class itunes.exe key --clearmodifiers XF86AudioPrev bind =, Print, exec, grimshot --notify save active bind = SHIFT, Print, exec, grimshot --notify save area bind = ALT, Print, exec, grimshot --notify save output bind = CTRL, Print, exec, grimshot --notify save window $submap_system = "System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown" bind = SUPER ALT , q , submap , $submap_system submap = $submap_system bind =, l, exec, $Locker bind =, l, submap, reset bind =, e, exit, bind =, s, exec, systemctl suspend bind =, s, submap, reset bind =, h, exec, systemctl hibernate bind =, h, submap, reset bind =, r, exec, reboot bind = SHIFT, s, exec, shutdown now bind =, Return, submap, reset bind =, Escape, submap, reset submap = reset bindl = SUPER CTRL ALT SHIFT, BackSpace, exec, pkill hyprlock && hyprlock --immediate Config File: /home/cobalt/.config/hypr/hyprland.conf.d/windows.conf: Read Succeeded # windowrule = rounding 3, ^itunes.exe$ # windowrulev2 = tile, class:^itunes.exe$, title:^iTunes$ # windowrulev2 = nofullscreenrequest, class:^itunes.exe$, title:^iTunes$ windowrulev2 = size 472 700, class:^itunes.exe$, title:Info$ windowrulev2 = center, class:^itunes.exe$, title:Info$ windowrulev2 = pseudo, class:^itunes.exe$, title:MiniPlayer$ windowrulev2 = size 600 600, class:^itunes.exe$, title:MiniPlayer$ windowrulev2 = forcergbx, class:^itunes.exe$, title:^$ windowrulev2 = noanim, class:^itunes.exe$, title:^$ windowrulev2 = float, class:^firefox$, title:^Picture-in-Picture$ windowrulev2 = size 1920 1080, class:^firefox$, title:^Picture-in-Picture$ windowrule = float, ^(qalculate-(qt|gtk)|org\.(gnome\.Calculator|kde\.kruler))$ windowrule = noborder, ^org\.kde\.kruler$ windowrulev2 = size 410 448, class:^winecfg.exe$, title:^Wine configuration$ windowrule = size 500 500, ^msiexec.exe$ windowrulev2 = noanim, class:^vrmonitor$, title:^vrmonitor$ windowrulev2 = noblur, class:^vrmonitor$, title:^vrmonitor$ windowrulev2 = noborder, class:^vrmonitor$, title:^vrmonitor$ # windowrulev2 = monitor current, class:^Unity$, title:^UnityEditor\.ObjectSelector$ # windowrulev2 = monitor current, class:Unity, floating:1 # windowrulev2 = center, class:Unity, floating:1 windowrule = fullscreen, ^(steam_app_1229490|hl2_linux)$ windowrulev2 = nofocus, class:^steam$, title:^notificationtoasts # windowrulev2 = stayfocused, class:^steam$, title:^$ windowrulev2 = stayfocused, class:^Unity$, title:^Select windowrule = idleinhibit always, ^vrmonitor$ # windowrule = idleinhibit focus, ^(gamescope|steam_app_(858210|253030))$ windowrule = idleinhibit focus, ^(steam_app_(438100|1468260)|virt-manager)$ # windowrule = idleinhibit fullscreen, ^itunesvisualizerhost\.exe$ # windowrulev2 = opacity 0.0 override 0.0 override, class:^xwaylandvideobridge$, title:^Wayland to X Recording bridge — Xwayland Video Bridge$ # windowrulev2 = nofocus, class:^xwaylandvideobridge$, title:^Wayland to X Recording bridge — Xwayland Video Bridge$ # windowrulev2 = noinitialfocus, class:^xwaylandvideobridge$, title:^Wayland to X Recording bridge — Xwayland Video Bridge$ windowrulev2 = float, class:^mpv$, xwayland:1 windowrulev2 = nomaxsize, class:^mpv$, xwayland:1 misc { # enable_swallow = true swallow_regex = ^Alacritty$ } Config File: /home/cobalt/.config/hypr/hyprland.conf.d/toggles.conf: Read Succeeded ======Config-End======== ```

Description

Tablet is being restricted to output only on monitor currently focused on, even when set to unbound.

It should instead be that the tablet maps to the entire layout of all active outputs. This matches the behavior of other desktops (xorg, kde, gnome, sway, hyprland <= 0.40.0)

How to reproduce

Crash reports, logs, images, videos

No response

Agent00Ming commented 4 months ago

dupe of #6023 :) Maybe I'll give it another look after all.

CobaltSpace commented 4 months ago

At the very least, there should be a way to map the tablet to the entire layout, instead of just being mapped to the focused output.