nikitabobko / AeroSpace

AeroSpace is an i3-like tiling window manager for macOS
https://nikitabobko.github.io/AeroSpace/guide
MIT License
7.56k stars 124 forks source link

Add `--when-visible (focus|swap)` option to the summon-workspace command #681

Open lynaghk opened 1 week ago

lynaghk commented 1 week ago

First, let me say AeroSpace is really cool! I've been trying to relive my XMonad memories on Mac for years and am excited about the possibilities with AeroSpace.

This PR implements the swapping behavior discussed in https://github.com/nikitabobko/AeroSpace/issues/603.

I could be misunderstanding the AeroSpace internals, but it doesn't seem like this feature is blocking on workspace renaming. I've tested it locally with multiple monitors and tiling / accordion layouts and it seemed to work as intended. (Note: I have not attempted to wire up any automated tests, though would be happy to do so if you'd like me to.)

Even though in that issue you said you wanted swap to be the default behavior, in the PR I have focus as the default for backwards compatibility.

Finally, I live and work in Oud-West, so if you would prefer to discuss in person --- beverages are on me =D

lynaghk commented 1 week ago

I've been driving this today and have noticed a bug: I have

on-focus-changed = ['move-mouse window-lazy-center']
on-focused-monitor-changed = ['move-mouse monitor-lazy-center']

enabled and when I summon a workspace the mouse jumps to the other monitor. I'll investigate and see if I can push up a fix.

raisjn commented 1 week ago

@lynaghk: I also implemented a similar summon workspace feature - https://github.com/nikitabobko/AeroSpace/pull/606 - see the discussion for some of the nuances to keep in mind. the reference to renaming workspaces was for a separate feature idea: xmonad supports swap workspaces on monitors.

your other PR (https://github.com/nikitabobko/AeroSpace/pull/682) is similar to another PR i implemented (https://github.com/nikitabobko/AeroSpace/pull/605), so it looks like we have been thinking similarly 😄

lynaghk commented 1 week ago

Thanks for the pointers @raisjn! I didn't see your PR referenced from #603 so I totally missed it. I agree with you that:

"when using workspace switching, it should never move the mouse off the current monitor".

I'll update this PR once I understand more what's happening and can resolve.