Moving a window with a hotkey until it reaches another window

In Sawfish there is a function called “pack window”, which moves a window in a given direction (up, down, left, right), until it’s border touches another window’s border. Almost like fvwm’s “Maximize grow” but it moves the window instead of resizing it.

This is useful for moving windows around with the keyboard. Combined with “maximize grow” it becomes like a tiling window manager but with more control.

Do you think this is possible to implement as a function in fvwm?

This was added in fvwm3 version 1.0.4: Moving windows: allow for "warping" to other windows in a given direction. The key bindings used in the default-config for this are

# Shuffle moves a window in a given direction until it hits another window.
# These bindings will shuffle a window using the arrow keys.
#    Ctrl-Alt Up_Arrow     - Shuffle window up
#    Ctrl-Alt Right_Arrow  - Shuffle window right
#    Ctrl-Alt Down_Arrow   - Shuffle window down
#    Ctrl-Alt Left_Arrow   - Shuffle window left
# Holding shift (Ctrl-Alt-Shift) will grow the window in the given direction.
DestroyFunc ShuffleDir
AddToFunc   ShuffleDir
+ I Move shuffle layers $[w.layer] $[w.layer] snap windows $0
+ I WarpToWindow 50 50

Key Up      WTSF    CM  ShuffleDir up
Key Down    WTSF    CM  ShuffleDir down
Key Left    WTSF    CM  ShuffleDir left
Key Right   WTSF    CM  ShuffleDir right
Key Up      WTSF    CSM Maximize True 0 growup
Key Down    WTSF    CSM Maximize True 0 growdown
Key Right   WTSF    CSM Maximize True growright 0
Key Left    WTSF    CSM Maximize True growleft 0

You can find more information about this under the Move command in the manual page for fvwm3 1.0.4.

Wow, thanks! Exactly what I needed.

I should read the changelog more thoroughly :)