Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
CobaltSpace opened this issue Jun 15, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@CobaltSpace
Copy link

CobaltSpace commented Jun 15, 2024

Bug or Regression?

Regression

System Info and Version

System/Version info
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

  • Comment out tablet config
  • Either:
    • Plug in and use tablet
    • run SteamVR with a vr headset & use galister/wlx-overlay-s (which simulates a tablet for passing input to desktop)

Crash reports, logs, images, videos

No response

@CobaltSpace CobaltSpace added the bug Something isn't working label Jun 15, 2024
@CobaltSpace CobaltSpace changed the title Tablet should map to entire output layout, not just focused output Tablet should map to entire output layout, not just focused output by default Jun 15, 2024
@Agent00Ming
Copy link
Contributor

Agent00Ming commented Jun 15, 2024

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

@vaxerski vaxerski closed this as not planned Won't fix, can't repro, duplicate, stale Jun 15, 2024
@CobaltSpace
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants