Hyprland
Hyprland copied to clipboard
dual monitors: Touchpad gestures for moving create extra workspaces
Regression?
Yes
System Info and Version
System/Version info
Hyprland, built from branch at commit 918d8340afd652b011b937d29d5eea0be08467f5 (flake.lock: update).
Date: Tue Jun 25 12:06:02 2024
Tag: v0.41.2, commits: 4886
flags: (if any)
System Information:
System name: Linux
Node name: thing
Release: 6.10.2-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Sat, 27 Jul 2024 16:49:55 +0000
GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 620 [8086:5917] (rev 07) (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/tom/.config/hypr/hyprland.conf: Read Succeeded
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1,preferred,0x0,1
monitor=HDMI-A-2,preferred,-320x-1440,1, # mirror, eDP-1
monitor=HDMI-A-1,preferred,-320x-1440,1, # mirror, eDP-1
monitor=DP-2,preferred,-320x-1440,1, # mirror, eDP-1
# monitor=DP-2,preferred,auto,1.6,mirror, eDP-1
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Set programs that you use
$terminal = kitty
$fileManager = nemo
$menu = rofi -show drun
$browser = brave
$browser-private = firefox --private-window
$editor = code
$wallpaper-setter = /home/tom/.config/hypr/swaptheme.sh
# Execute your favorite apps at launch
exec-once = waybar
exec-once = nm-applet
exec-once = blueman-applet
exec-once = swaync
exec-once = $wallpaper-setter
exec-once = hypridle
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Some default env vars.
env = XCURSOR_SIZE, 16
env = QT_QPA_PLATFORMTHEME, qt5ct # change to qt6ct if you have that
env = WLR_NO_HARDWARE_CURSORS,1
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = de
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
accel_profile = flat
sensitivity = 1 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = true
disable_while_typing = false
middle_button_emulation = true
}
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5
gaps_out = 5
border_size = 1
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
layout = master
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 7
blur {
enabled = true
size = 4
passes = 2
}
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0, 1.0
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
}
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_status = master
new_on_top = true
mfact = 0.5
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = true
workspace_swipe_forever = true
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
animate_manual_resizes = true
animate_mouse_windowdragging = true
}
device {
name = elan-touchpad
sensitivity = 0.85
accel_profile = flat
}
device {
name = logitech-usb-receiver
sensitivity = 0.3
}
workspace = 1, monitor:eDP-1
workspace = 2, monitor:eDP-1
workspace = 3, monitor:eDP-1
workspace = 4, monitor:eDP-1
workspace = 5, monitor:eDP-1
workspace = 6, monitor:HDMI-A-2
workspace = 7, monitor:HDMI-A-2
workspace = 8, monitor:HDMI-A-2
workspace = 9, monitor:HDMI-A-2
workspace = 0, monitor:HDMI-A-2
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod SHIFT, Return, exec, $terminal
bind = $mainMod SHIFT, C, killactive,
bind = $mainMod SHIFT, Q, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod CTRL, space, togglefloating,
bind = $mainMod, P, exec, $menu
bind = $mainMod, F, exec, $browser
bind = $mainMod SHIFT, F, exec, $browser-private
bind = $mainMod, D, exec, discord
bind = $mainMod, S, exec, spotify-launcher
bind = $mainMod, C, exec, $editor
bind = $mainMod CTRL, S, exec, systemctl suspend
bind = $mainMod, M, fullscreen, 0
bind = $mainMod CTRL, M, fullscreen, 1
bind = $mainMod CTRL, W, exec, $wallpaper-setter
bind = , Print, exec, grim -g "$(slurp -d)" - | wl-copy -t image/png
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, J, layoutmsg, cycleprev
bind = $mainMod, K, layoutmsg, cyclenext
bind = $mainMod, Return, layoutmsg, swapwithmaster master
# 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, 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
# Resize windows in master layout
binde=$mainMod,L,resizeactive,20 0
binde=$mainMod,H,resizeactive,-20 0
# fn buttons
binde=,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
binde=,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bind =,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bind =,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
binde=,XF86MonBrightnessUp, exec, blight set +10%
binde=,XF86MonBrightnessDown, exec, blight set -10%
# Example special workspace (scratchpad)
bind = $mainMod, R, togglespecialworkspace, magic
bind = $mainMod SHIFT, R, 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
windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$
windowrulev2 = noanim,class:^(xwaylandvideobridge)$
windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$
windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$
windowrulev2 = noblur,class:^(xwaylandvideobridge)$
======Config-End========
Description
When moving between workspaces on 2 different monitors, moving from a workspace with a window in it to the right (empty workspace) goes to workspace n+1, where n is the max workspace on the other monitor
Im not sure if it is a regression, i never realized this up until recently I guess. I dont really have time to build the whole thing and bisect it, as I am using the aur git version.
How to reproduce
- use my config for workspace split (1-5 on first monitor, 6-0 on other one)
- open 1 window on of of each monitor (e.g. firefox on workspace 4 and spotify on workspace 8)
- use touchpad gestures to move to the right workspace (i.e. swipe right-to-left) on screen A
- do the same for screen B
- go to screen A and move to the left and then to the right workspace (i.e. swipe left-to-right to come back to the window you opened, and then swipe right to left to go to a new workspace again
- do the same for screen B
repeat steps 5 and 6. Even though you bound only workspaces 1-0, you will eventually land on workspaces 11, 12, 13, 14 I would expect the swipe to the left (i.e. moving the the right workspace) bring me to the next empty workspace, and not the next I havent opened before.
Crash reports, logs, images, videos
Sorry for the poor quality, still havent figured out screen recording on wayland) Streamable Link
can you bisect
Sadly not in a timely manner. I have no clue how to do it and am currently too busy. I can try it end of next week if noone is faster..
Ok seems like touchpad navigation is completely fawked. I am encountering 2 more bugs with it. I'll try to bisect in the next few days and see if they all came with the same change/commit. Should I then post all of the bugs here or make separate issues for each of them?
I tried my best but I cant bisect. I am too stupid. Manually building fails for some reason, downgrading through linux archive doesnt work because of unmatched dependencies, installing binaries from github releases doesnt include the mentioned binary for hyprpm and thus seems to be incomplete and I cannot downgrade all system packages on my main machine just to bisect. I am sorry, but I cant help here :/
Hello there!
This issue has been closed, as we are moving from issues to discussions. More about this can be found here and in #9854.
Firstly, please make sure this issue is still relevant in latest Hyprland. If so, we ask you to open a discussion (please read the discussion guidelines first, in the pinned post)
Thank you for your understanding!