bakkeby / dwm-flexipatch

A dwm build with preprocessor directives to decide which patches to include during build time

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

similar patches, which to use?

Zerogaku opened this issue · comments

Hi I've noticed some patches which are functionally the same, such as the FLOATPOS_PATCH and EXRESIZE_PATCH being similar to the MOVERESIZE_PATCH and MOVEPLACE_PATCHES patches, and same with STACKER_PATCH and MOVESTACK_PATCH PUSH_PATCH .
Can you help me out in choosing which one to use?

From what i can tell EXRESIZE_PATCH is basically MOVERESIZE_PATCH and MOVEPLACE_PATCHES combined, and the STACKER_PATCH seems to have more functionality over MOVESTACK_PATCH and PUSH_PATCH (which seem to actually be the same), and finally the FLOATPOS_PATCH might be the better pick over EXRESIZE_PATCH and MOVERESIZE_PATCH

The aim of dwm-flexipatch is to allow users to try patches out before they commit to integrating them into their own build of dwm.

dwm-flexipatch do not include all patches out there; patches providing similar or duplicate functionality is often omitted and a good example of this are the many different gap patches.

In some cases, however, where the functionality is in isolation and do not conflict with other patches then they may all be included.

Can you help me out in choosing which one to use?

No. Figuring out what works best for you and what your optimal workflow may be is a journey that you will have to do on your own.

A short summary of the patches mentioned.

The exresize is the oldest of these patches and the intent is to allow the user to resize and move a window around using keyboard shortcuts.

The moveplace patch extracted one of the features of the exresize patch to present it as a standalone patch.

The moveresize patch focuses on being able to resize windows using keyboard shortcuts. This patch also has a feature to resize a window to the edge of the screen in a given direction, or to move the window to the edge of the screen in one direction.

The floatpos patch allows for more comprehensive resizing and positioning using keyboard shortcuts as well as to control the starting position of floating windows using client rules. This is obviously the most bloated of all of the above.

The stacker patch adds dedicated keybindings allowing you to focus directly on the first n clients in the stack (rather than having to move one by one using MOD+j/MOD+k). Additionally it offers keyboard shortcuts to move to the last client in the stack as well as the previously selected client. This is a rather popular patch among keyboard driven users. I have a variant of this called the masterstacker patch.

The movestack patch essentially just allows for two adjacent clients in the stack to swap places. Given that the focus remains with the client being moved you can then repeat the keybinding to move a client up or down the stack, hence the name.

i see, so using exresize is no different from using moveplace and moveresize patch correct?

And the movestack patch only swaps between 2 windows whilst the the stacker can select first and last client in the stack and swap between windows (or move the windows up and down the list)?

I don't quite understand masterstacker though, does it prevent you from focusing on floating windows?

i see, so using exresize is no different from using moveplace and moveresize patch correct?

In principle they are the same, less the extra functionality offered by moveresize to work with monitor edges.

And the movestack patch only swaps between 2 windows whilst the the stacker can select first and last client in the stack and swap between windows (or move the windows up and down the list)?

The movestack patch is more comparable with the push patch.

With the stacker patch you can both focus and push the nth client in the stack using dedicated keybindings. The only drawback of the stacker patch is that it consumes a lot of keybindings.

I don't quite understand masterstacker though, does it prevent you from focusing on floating windows?

Using the dedicated keybindings yes. The stacker patch allow you to select the nth client in the stack regardless of whether it is tiled or not, whereas the masterstacker patch strictly only allow you to select tiled clients this way.

Besides that the main difference between the two patches is that let's say that you have dedicated keybindings for the first, second and third client in the stack area; with the masterstacker patch these keybindings will always remain the same regardless of how many clients you have in the master area. With the stacker patch the keybinding will be for the nth client (floating windows included).

thank you for clearing up the confusion, it's all clear now.