Since I use EXWM as a window manager, I can dedicate the super key to window management.

Some simple, yet efficient rules:

s-TAB : Switch to last buffer.

: Switch to last buffer. s-<arrows> (or s-<hjkl> with Evil): select window in the chosen direction.

(or with Evil): select window in the chosen direction. S-s-<arrows> (or S-s-<hjkl> with Evil): swap current window with window in the chosen direction.

(or with Evil): swap current window with window in the chosen direction. s-\ : Toggle between horizontal and vertical splitting.

: Toggle between horizontal and vertical splitting. s-o : Toggle-hide all other windows.

With Helm, I use C-c o (or my custom binding S-RET ) to find a file or a buffer in a new split window.

I need some extra functions to implement the above workflow: