ianyh / Amethyst

Automatic tiling window manager for macOS à la xmonad.
https://ianyh.com/amethyst/
MIT License
14.68k stars 487 forks source link

Make layout switcher "lazy" #1547

Open burdiyan opened 1 year ago

burdiyan commented 1 year ago

Is your feature request related to a problem? Please describe. I just downloaded Amethyst and it's my first time using a tiling window manager. The issue I'm going to describe might be a duplicate, but I couldn't find anything similar as it might be phrased totally different.

The problem I immediately felt as a newcomer is that the shortcut for cycling layout backward and forward make the layout immediately be reflected on the screen. So if I'm switching layouts, they layout name will be shown on the screen, and immediately applied. So if the layout I want is actually not the next one, I'd have to switch multiple times and wait intermediate layout changes, which take time with many windows.

I know that you can attach shortcuts to specific layouts to switch to them quickly, but as a newcomer I don't really know yet which layouts I prefer. So experimenting with a quick switcher is nice.

Describe the solution you'd like The immediate solution that I thought about is similar to how macOS switches keyboard languages. I'm using 3 keyboard languages, and I'm very used to switching between them.

In macOS pressing the language shortcut quickly will cycle between the two most recent languages. But if you press ctrl+space and then lift the space but leave ctrl, the you'll see a list with all the languages, and then pressing space you can switch between them, and when you lift the shortcut the selected language will be applied.

Amethyst could have some "debounce" timeout before applying the layout so one could switch between layouts quickly before they have time to get reflected on the screen.