imawizard / MiguruWM

A tiling window manager for Windows
BSD 2-Clause "Simplified" License
39 stars 3 forks source link

Error message when switching to the previous desktop from the first desktop #35

Open oulongwen opened 2 months ago

oulongwen commented 2 months ago

I get the error message below when running command mwm.Do("focus-workspace", { workspace: "previous" }) from the first workspace: image The expected behavior is to switch to the last workspace.

imawizard commented 2 months ago

Thanks for the report!

With "last workspace" do you mean wrapping around? Like if you have 4 virtual desktops and you recently switched from the 3rd to the 1st: 1¹ | 2 | 3² | 4 ¹: active, ²: last active Do you now expect workspace: "previous" to go to workspace 4 or 3? For going back to 3, there is workspace: "mru"

Also how about making it a no-op when on the first workspace, and making it wrap around to 4 with workspace: { anchor: "previous", wrap: true }, or equivalently workspace: { offset: -1, wrap: true }?

As for workspace: "next" when on workspace 4, the current behavior is that workspace 5 gets automatically created and switched to, so there wouldn't be neither a wrap-around nor a no-op. What would the expected behavior be in your opinion? Maybe something like

oulongwen commented 2 months ago

I was expecting to go to workspace 4 in your example because I have been using VD.ahk before and this is how it works.

What you suggested makes good sense to me. IMHO it is good to allow users to choose among no-op, wrapping, and creating a new workspace.

Similarly, mwm.Do("focus-monitor", { monitor: "previous" }) is a no-op on monitor 1. It would be great if there is a { anchor: "previous", wrap: true } option for monitors.

BTW thank you a lot for creating this tool. I have tried a few windows tiling managers and this is the best so far. Looking forward to Windows 11 compatibility since my personal desktop is running Win 11 (I currently use this tool on my work laptop which runs Win 10).