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

When moving workspace to another monitor workspace, previous_per_monitor does not work #6684

Closed
leon-erd opened this issue Jun 27, 2024 · 7 comments · Fixed by #9010
Closed
Labels
bug Something isn't working stale Not much going on

Comments

@leon-erd
Copy link
Contributor

leon-erd commented Jun 27, 2024

Regression?

No

System Info and Version

System/Version info
Hyprland, built from branch  at commit eddef4afded63a6ae5dfd7f1c3652e8cdc331002  ().
Date: 2024-06-26
Tag: , commits: eddef4afded63a6ae5dfd7f1c3652e8cdc331002

flags: (if any)


System Information:
System name: Linux
Node name: inspiron-laptop
Release: 6.9.6
Version: #1-NixOS SMP PREEMPT_DYNAMIC Fri Jun 21 12:40:40 UTC 2024


GPU information:
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:9a49] (rev 01) (prog-if 00 [VGA controller])


os-release: ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.11.20240624.2893f56"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.11 (Vicuna)"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.11 (Vicuna)"
VERSION_CODENAME=vicuna
VERSION_ID="24.11"


plugins:
  hyprexpo by Vaxry ver 1.0

======Config-Start======


Config File: /home/leon/.config/hypr/hyprland.conf: Read Succeeded
exec-once = /nix/store/y29cbwfiwb9nyi4db4apk9dgylzdjm1v-dbus-1.14.10/bin/dbus-update-activation-environment --systemd --all && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target
plugin=/nix/store/qig51v1023yqiicmpdagg1qqr43d9rdx-hyprexpo-0.1/lib/libhyprexpo.so
$mainMod=SUPER
bezier=linear, 0, 0, 1, 1
source=./monitors.conf
source=./workspaces.conf
source=./monitors.conf
source=./workspaces.conf
binds {
  allow_workspace_cycles=true
}

decoration {
  blur {
    ignore_opacity=true
    passes=4
    popups=true
    size=4
    special=true
  }
  rounding=5
}

device {
  name=cust0000:00-04f3:2a4a-stylus
  output=eDP-1
}

dwindle {
  force_split=2
  preserve_split=true
  pseudotile=true
}

general {
  border_size=2
  col.active_border=rgba(33ccffff) rgba(00ff99ff) 45deg
  col.inactive_border=rgba(444444aa)
  gaps_in=3
  gaps_out=3
  layout=master
  resize_on_border=true
}

gestures {
  workspace_swipe=true
  workspace_swipe_forever=true
}

group {
  groupbar {
    col.active=rgba(6600ccee)
    col.inactive=rgba(6600cc99)
  }
  col.border_active=rgba(8800ffff) rgba(aa0055ff) 45deg
  col.border_inactive=rgba(444444aa)
}

input {
  touchpad {
    drag_lock=true
    natural_scroll=true
  }
  kb_layout=de
  numlock_by_default=true
}

misc {
  animate_manual_resizes=true
  animate_mouse_windowdragging=true
  focus_on_activate=true
  force_default_wallpaper=0
  initial_workspace_tracking=false
  new_window_takes_over_fullscreen=2
}

plugin {
  hyprexpo {
    bg_col=rgb(111111)
    columns=3
    enable_gesture=true
    gap_size=5
    gesture_distance=300
    gesture_positive=false
    workspace_method=first 1
  }
}
animation=specialWorkspace, 1, 5, default, slidefadevert
animation=borderangle, 1, 40, linear, loop
animation=layers, 1, 5, default, popin
bind=$mainMod, B, togglespecialworkspace, btop
bind=$mainMod, H, togglespecialworkspace, htop
bind=$mainMod, S, togglespecialworkspace, spotify
bind=$mainMod, T, togglespecialworkspace, terminal
bind=ALT, F4 , killactive,
bind=$mainMod, F, togglefloating,
bind=$mainMod, G, togglegroup
bind=$mainMod, M, fullscreen,
bind=$mainMod, E, exec, dolphin
bind=, XF86Calculator , exec, qalculate-qt
bind=$mainMod + SHIFT, left, movewindoworgroup, l
bind=$mainMod + SHIFT, right, movewindoworgroup, r
bind=$mainMod + SHIFT, up, movewindoworgroup, u
bind=$mainMod + SHIFT, down, movewindoworgroup, d
bind=$mainMod + CTRL, left, movecurrentworkspacetomonitor, l
bind=$mainMod + CTRL, right, movecurrentworkspacetomonitor, r
bind=$mainMod + CTRL, up, movecurrentworkspacetomonitor, u
bind=$mainMod + CTRL, down, movecurrentworkspacetomonitor, d
bind=$mainMod, RETURN, layoutmsg, swapwithmaster
bind=$mainMod + SHIFT, RETURN, layoutmsg, addmaster
bind=$mainMod + SHIFT + CTRL, RETURN, layoutmsg, removemaster
bind=ALT, Tab, cyclenext,
bind=ALT + CTRL, Tab, changegroupactive
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, Tab, workspace, previous_per_monitor
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, mouse_down, workspace, e+1
bind=$mainMod, mouse_up, workspace, e-1
bind=CTRL + ALT, B, exec, ~/scripts/launch_waybar.sh
bind=CTRL + ALT, W, exec, ~/scripts/wallpaper/update_wallpaper.sh
bind=$mainMod, N, exec, swaync-client -t -sw
bind=CTRL + ALT, S, exec, wl-paste | swappy -f -
bind=, Print, exec, grimblast --notify --freeze copy area
bind=$mainMod, P, exec, nwg-displays
bind=$mainMod, W, hyprexpo:expo, toggle
bind=$mainMod, V, exec, cliphist list | rofi -dmenu -theme /nix/store/r5gfsxb7srsncmxd996bh39ag8h64qcl-spotlight-dark.rasi | cliphist decode | wl-copy && wtype -M ctrl v -m ctrl
bind=CTRL + ALT, T, exec, alacritty
binde=$mainMod, left, resizeactive, -30 0
binde=$mainMod, right, resizeactive, 30 0
binde=$mainMod, up, resizeactive, 0 -30
binde=$mainMod, down, resizeactive, 0 30
bindl=, XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
bindl=, XF86AudioPlay, exec, playerctl play-pause
bindl=, XF86AudioStop, exec, playerctl stop
bindl=, XF86AudioPrev, exec, playerctl previous
bindl=, XF86AudioNext, exec, playerctl next
bindl=CTRL, left, exec, playerctl previous
bindl=CTRL, right, exec, playerctl next
bindle=, XF86AudioRaiseVolume, exec, pamixer --unmute; swayosd-client --output-volume raise
bindle=, XF86MonBrightnessUp, exec, swayosd-client --brightness raise
bindle=, XF86MonBrightnessDown, exec, swayosd-client --brightness lower
bindle=, XF86AudioLowerVolume, exec, pamixer --unmute; swayosd-client --output-volume lower
bindm=$mainMod, mouse:272, movewindow
bindm=$mainMod, mouse:273, resizewindow
bindr=$mainMod, $mainMod_L, exec, pkill --exact tofi-drun || tofi-drun --drun-launch=true
bindr=$mainMod, L, exec, /nix/store/h53bah665mn9zvn5wfqznbvpfzawr1j1-hyprlock.sh
env=XCURSOR_SIZE, 12
env=QT_QPA_PLATFORMTHEME, qt5ct
env=XCURSOR_THEME, breeze_cursors
env=XCURSOR_SIZE, 24
exec-once=sleep 5 && nextcloud --background
exec-once=sleep 5 && ~/scripts/hibernate_on_low_battery.sh
exec-once=sleep 5 && ~/scripts/restart_failed_systemd_user_services.sh
exec-once=~/scripts/launch_waybar.sh
exec-once=sleep 1 && swww init
exec-once=sleep 2 && swww img --transition-type grow ~/scripts/wallpaper/wallpaper.jpg
exec-once=swaync
exec-once=rm ~/.cache/tofi-drun
exec-once=/nix/store/qjfzpww5g3zahmb8gx3d5nm13irc81hd-polkit-kde-agent-1-5.27.11/libexec/polkit-kde-authentication-agent-1
exec-once=wl-paste --type text --watch cliphist store
exec-once=wl-paste --type image --watch cliphist store
layerrule=blur, waybar
layerrule=blurpopups, waybar
layerrule=ignorealpha 0.1, waybar
layerrule=blur, swaync-control-center
layerrule=blur, swaync-notification-window
layerrule=ignorezero, swaync-control-center
layerrule=ignorezero, swaync-notification-window
layerrule=animation popin 90%, swaync-control-center
layerrule=animation popin, swaync-notification-window
layerrule=noanim, hyprpicker
layerrule=noanim, selection
layerrule=blur, launcher
layerrule=animation slide, launcher
layerrule=blur, swayosd
layerrule=ignorezero, swayosd
layerrule=animation slide, rofi
layerrule=blur, rofi
monitor=, preferred, auto, 1
windowrulev2=float, class:^(org.kde.polkit-kde-authentication-agent-1)$
windowrulev2=tile, class:^(DesktopEditors)$
windowrulev2=tag +vscode, class:^(code-url-handler)$
windowrulev2=tag +vscode, class:^(codium-url-handler)$
windowrulev2=opacity 0.85, tag:vscode
windowrulev2=opacity 1.00, tag:vscode, title:.pdf
windowrulev2=workspace 1, tag:vscode
windowrulev2=workspace 5, class:^(firefox)$
windowrulev2=tag +social, class:^(org.telegram.desktop)$
windowrulev2=tag +social, class:^(signal)$
windowrulev2=tag +social, class:^(Slack)$
windowrulev2=tag +social, class:^(thunderbird)$
windowrulev2=tag +social, class:^(WebCord)$
windowrulev2=tag +social, class:^(whatsapp-for-linux)$
windowrulev2=workspace 9, tag:social
windowrulev2=noblur, class:^(org.kde.kdeconnect.daemon)$
windowrulev2=noborder, class:^(org.kde.kdeconnect.daemon)$
windowrulev2=noshadow, class:^(org.kde.kdeconnect.daemon)$
windowrulev2=noanim, class:^(org.kde.kdeconnect.daemon)$
windowrulev2=nofocus, class:^(org.kde.kdeconnect.daemon)$
windowrulev2=suppressevent fullscreen, class:^(org.kde.kdeconnect.daemon)$
windowrulev2=float, class:^(org.kde.kdeconnect.daemon)$
windowrulev2=move 0 0, class:^(org.kde.kdeconnect.daemon)$
windowrulev2=size 100% 100%, class:^(org.kde.kdeconnect.daemon)$
windowrulev2=noblur, onworkspace:special:hyprlock
workspace=2, on-created-empty:dolphin
workspace=5, on-created-empty:firefox
workspace=special:btop, on-created-empty:[fullscreen] alacritty -e btop
workspace=special:htop, border:false, on-created-empty:[float; size 100% 35%; move 0% 65%] alacritty -e htop
workspace=special:spotify, on-created-empty:[fullscreen] spotify
workspace=special:terminal, on-created-empty:[fullscreen] alacritty
workspace=name:hyprlock, monitor:eDP-1
workspace=name:hyprlock, decorate:false
workspace=name:hyprlock, border:false
workspace=name:hyprlock, shadow:false
workspace=special:hyprlock, monitor:eDP-1
workspace=special:hyprlock, decorate:false
workspace=special:hyprlock, border:false
workspace=special:hyprlock, shadow:false


Config File: /home/leon/.config/hypr/monitors.conf: Read Succeeded
# Generated by myKanshiPlus (2024-06-27 10:02:51.287034). Do not edit manually.

monitor = desc:Dell Inc. DELL P2412H TTMDG2AQ15EU, preferred, 0x0, 1
monitor = desc:LG Display 0x0637, preferred, 3600x0, 1
monitor = desc:LG Electronics E2210      205NDMT1D051, preferred, 1920x0, 1

Config File: /home/leon/.config/hypr/workspaces.conf: Read Succeeded
# Generated by myKanshiPlus (2024-06-27 10:02:51.287133). Do not edit manually.

workspace = 1, monitor:desc:Dell Inc. DELL P2412H TTMDG2AQ15EU, default:true
workspace = 10, monitor:desc:LG Display 0x0637, default:true
workspace = 2, monitor:desc:LG Electronics E2210      205NDMT1D051, default:true

Config File: /home/leon/.config/hypr/monitors.conf: Read Succeeded
# Generated by myKanshiPlus (2024-06-27 10:02:51.287034). Do not edit manually.

monitor = desc:Dell Inc. DELL P2412H TTMDG2AQ15EU, preferred, 0x0, 1
monitor = desc:LG Display 0x0637, preferred, 3600x0, 1
monitor = desc:LG Electronics E2210      205NDMT1D051, preferred, 1920x0, 1

Config File: /home/leon/.config/hypr/workspaces.conf: Read Succeeded
# Generated by myKanshiPlus (2024-06-27 10:02:51.287133). Do not edit manually.

workspace = 1, monitor:desc:Dell Inc. DELL P2412H TTMDG2AQ15EU, default:true
workspace = 10, monitor:desc:LG Display 0x0637, default:true
workspace = 2, monitor:desc:LG Electronics E2210      205NDMT1D051, default:true
======Config-End========

Description

In a specific use case the dispatcher workspace, previous_per_monitor does not switch to the previous monitor (see how to reproduce).
First mentioned in #6641

How to reproduce

  1. go to monitor 1 and open a workspace with an app on it (lets say ws number 1)
  2. go to monitor 2 and open a workspace with an app on it (lets say ws number 2)
  3. use dispatcher movecurrentworkspacetomonitor to move ws 2 to monitor 1
  4. on ws 2 the dispatcher workspace, previous_per_monitor will not change to ws 1 even though that's the previous ws on that monitor

Crash reports, logs, images, videos

@Truenya

@leon-erd leon-erd added the bug Something isn't working label Jun 27, 2024
@Truenya
Copy link
Contributor

Truenya commented Jun 27, 2024

@leon-erd can u check please? #6688

@leon-erd
Copy link
Contributor Author

Will check tmr :)

@leon-erd
Copy link
Contributor Author

Does not fix the issue unfortunately :(
I just saw that it got merged in the meantime. Maybe its a good idea to mark the MR as draft initially

@Truenya
Copy link
Contributor

Truenya commented Jun 28, 2024

maybe, but it can fix situation, when

  1. go to monitor 2 and open a workspace with an app on it (lets say ws number 2)
    
  2. go to monitor 1 and open a workspace with an app on it (lets say ws number 1)
    
  3. go back to monitor 2
    
  4. use dispatcher movecurrentworkspacetomonitor to move ws 2 to monitor 1
    
  5. on ws 2 the dispatcher workspace, previous_per_monitor will change to ws 1
    

first problem was more about all workspace:previous logic, not just about previous_per_monitor

@Truenya
Copy link
Contributor

Truenya commented Jun 28, 2024

at the moment I have no plans to fix or optimize the existing logic, I'm just enjoying implementing some new features (and, ofc, taking responsibility for them)

@leon-erd
Copy link
Contributor Author

maybe, but it can fix situation, when

1. ```
   go to monitor 2 and open a workspace with an app on it (lets say ws number 2)
   ```

2. ```
   go to monitor 1 and open a workspace with an app on it (lets say ws number 1)
   ```

3. ```
   go back to monitor 2
   ```

4. ```
   use dispatcher movecurrentworkspacetomonitor to move ws 2 to monitor 1
   ```

5. ```
   on ws 2 the dispatcher workspace, previous_per_monitor will change to ws 1
   ```

first problem was more about all workspace:previous logic, not just about previous_per_monitor

I just tried it and it does not work. Step 5 will not change to ws 1 but stay on ws 2

@vaxerski vaxerski added the stale Not much going on label Aug 27, 2024
@Truenya
Copy link
Contributor

Truenya commented Jan 9, 2025

finally done

#9010

@vaxerski vaxerski linked a pull request Jan 11, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working stale Not much going on
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants