Hyprland
Hyprland copied to clipboard
Binding a persistent workspace to a monitor does not work
Already reported ? *
- [x] I have searched the existing open and closed issues.
Regression?
Definitely a regression - something broke after update (requires bisect)
System Info and Hyprland Version
System/Version info
Hyprland 0.47.1 built from branch at commit 75dff7205f6d2bd437abfb4196f700abee92581a (version: bump to 0.47.1).
Date: Wed Jan 29 23:19:39 2025
Tag: v0.47.1, commits: 5756
built against:
aquamarine 0.7.2
hyprlang 0.6.0
hyprutils 0.5.0
hyprcursor 0.1.11
hyprgraphics 0.1.1
no flags were set
System Information:
System name: Linux
Node name: Asgard
Release: 6.12.10-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Sat, 18 Jan 2025 02:26:57 +0000
GPU information:
29:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev cf) (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:
Description
Persistent workspaces that should be attached to a monitor with
workspace = $NAME,monitor:$MONITOR,persistent:true
are not attached to the specified monitor.
Reloading Hyprland does fix some of the workspaces, but not all of them (in the hyprctl_log.txt R2 is still on the wrong monitor). This does not occur when workspaces are not marked as persistent.
I bisected the problem to this commit: 16aeb24bc1395b46d675ec3522ed452e487f5b69
How to reproduce
- Start a Hyprland session with the attached config
Attach not paste
- [x] I understand that all text files must be attached, and not pasted directly. If not respected, this issue will likely get closed as spam
Checklist of files to include below
- [x] Hyprland config -
hyprctl systeminfo -c(always include) - [ ] Crash report (always include in case of crash)
- [ ] Video (always include in case of a visual bug)
- [x] Logs (might contain useful info such as errors)
Additional info & File uploads
it does work for me...
then I create WAYLAND-2 and it does get opened there
I have done a bit more testing and here are the results:
| W order | Persistent | Default | Monitor_L | Monitor_R | Is correct |
|---|---|---|---|---|---|
| L1L2 R1R2 | Yes | Yes | L1 L2 | R1 R2 | Yes |
| R1R2 L1L2 | Yes | Yes | R1 L1 L2 | R2 | No |
| L1L2 R1R2 | No | Yes | L1 L2 | R1 R2 | Yes |
| R1R2 L1L2 | No | Yes | L1 L2 | R1 R2 | Yes |
| L1L2 R1R2 | Yes | No | L2 | 1 L1 R1 R2 | No |
| R1R2 L1L2 | Yes | No | R1 L1 L2 | 1 R2 | No |
| L1L2 R1R2 | No | No | L1 L2 | 1 R1 R2 | Yes |
| R1R2 L1L2 | No | No | L1 L2 | 1 R1 R2 | Yes |
W ordershows the order of the workspace rules in the config:-
L1L2 R1R2workspace = name:L1, monitor:$MONITOR_L,... workspace = name:L2, monitor:$MONITOR_L,... workspace = name:R1, monitor:$MONITOR_R,... workspace = name:R2, monitor:$MONITOR_R,... -
R1R2 L1L2workspace = name:R1, monitor:$MONITOR_R,... workspace = name:R2, monitor:$MONITOR_R,... workspace = name:L1, monitor:$MONITOR_L,... workspace = name:L2, monitor:$MONITOR_L,...
-
Persistentwhether there is apersistent:truein workspace rulesDefaultwhether there is adefault:truein workspace rulesMonitor_L/Monitor_Rshows workspaces on the$MONITOR_L/$MONITOR_R(checked withhyprctl workspacesafter going through each named workspace and opening an empty terminal on each of them)Is correctshows whether the result is correct.
I also tried swapping the monitors (so $MONITOR_R is put on the left instead of the right), but it did not change anything).
$MONITOR_L is the "default" one - it has the cursor when Hyprland starts, is the one recognized by games.
I'll put this under 0.48 to not forget... but thats weird
@LokiNaBoki i just modified a bit the persistence handling function, could you please remake your test with the latest main and see if you still have issues?
I have remade the test at 897ee276dc0a8a6b11a8102b225a9e969faac0bf (3 commits after yours, neither related to workspaces), and the results are the same.
im going to attempt to fix this, i was able to repro
are u sure https://github.com/hyprwm/Hyprland/commit/16aeb24bc1395b46d675ec3522ed452e487f5b69 caused this
Tested again 74d0f34 (parent of 16aeb24) works correctly, while both 16aeb24 and f1ef724 (current HEAD) are wrong. I used this config:
$MONITOR_L = HDMI-A-1
$MONITOR_R = DP-3
monitor = $MONITOR_L, 1280x1024@75, 0x0, 1
monitor = $MONITOR_R, 1920x1080@60, 1280x0, 1
workspace = name:R1, monitor:$MONITOR_R,persistent:true
workspace = name:R2, monitor:$MONITOR_R,persistent:true
workspace = name:L1, monitor:$MONITOR_L,persistent:true
workspace = name:L2, monitor:$MONITOR_L,persistent:true
bind = SUPER, 1, workspace,name:L1
bind = SUPER, 2, workspace,name:L2
bind = SUPER SHIFT, 1, workspace,name:R1
bind = SUPER SHIFT, 2, workspace,name:R2
bind = SUPER, M, exit
bind = SUPER, T, exec,kitty
Initially I did a bisect between v0.46.0 (788ae58) and 32c0fa2f (a bit after v0.47.0)
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!