FvwmRearrange(1)
๐ FvwmRearrange(1) ๐
Hey bestie ๐ซถ this is the manual page for FvwmRearrange, from the Fvwm Modules section. Let's get into it ๐
๐ธ NAME ๐ธ
FvwmRearrange - rearrange fvwm windows โจ
๐ SYNOPSIS ๐
okay so FvwmRearrange is spawned by fvwm, which means no command line invocation will work ๐
don't even try typing it in your terminal, it's not gonna slay that way ๐
๐ DESCRIPTION ๐
This module can be called to tile or cascade windows ๐ฆ
When tiling, the module tries to tile windows on the current screen, subject to certain constraints. Horizontal or vertical tiling is done so that no window overlaps another, and by default each window gets resized to its nearest resize increment. ngl sometimes you'll see a little space between tiled windows, and this is why ๐
When cascading, the module tries to cascade windows on the current screen, subject to certain constraints. Layering happens so that each consecutive window keeps its window title visible underneath the previous one. It's giving stacked-cards energy ๐
๐ง INVOCATION ๐ง
FvwmRearrange is best invoked from a menu, pop up, or button โจ there's a bunch of command line options that let you constrain the layering, and we'll go through them below. Here are the example calls:
FvwmRearrange -tile -h 10 10 90 90
or
FvwmRearrange -cascade -resize 10 2 80 70
The first one horizontally tiles windows inside a bounding box that starts at 10 by 10 percent into and down the screen and ends at 90 by 90 percent into and down the screen. Main character tiling ๐
The second one cascades windows starting 10 by 2 percent into and down the screen. The windows get constrained to 80 by 70 percent of the screen dimensions. Since -resize is also in the mix, the windows get resized to that constrained width and height ๐ฅ
โ ๏ธFvwmRearrangecan also be called asFvwmTileorFvwmCascade. That's the same as passing-tileor-cascade, BUT this form is obsolete and only kept around for backwards compatibility, so maybe don't build your new stuff on it ๐ฅบ
Here's the rundown on the command line arguments ๐
๐ OPTIONS ๐
-aโ affects every window type, even the ones with theWindowListSkipstyle ๐-animateโ tries to do an animated move. This gets ignored if-resizeor-maximizeare used ๐๏ธ-cascadeโ cascades windows. This must be the very first thing on the command line. It's the default too ๐ฅฐ-deskโ cascades or tiles all the windows on the desk, instead of just the current screen ๐ฅ๏ธ-flatxโ inhibits the border width increment. Only matters when cascading ๐ โโ๏ธ-flatyโ inhibits the border height increment. Only matters when cascading ๐ โโ๏ธ-hโ tiles horizontally (the default is vertical). Tiling only ๐-incxarg โ adds a horizontal increment to each cascaded window, one after another. arg is a percentage of the screen width, or a pixel value if you slap apon the end. Default is zero, and it's cascading only ๐-incyarg โ same vibe as-incx, but vertical. arg is a percentage of the screen height, or pixels with apsuffix. Default is zero, cascading only ๐-mโ also affects maximized windows (implied by-a) ๐ช-maximizeโ when you move or resize a window, it also gets put into the maximized state ๐-mnarg โ tiles up to arg windows in the tile direction. If there are more windows than that, a new row or column gets made, so basically a matrix is born ๐งฎ Tiling only.-noanimateโ no animated move for you ๐-nomaximizeโ don't put windows into the maximized state ๐-noraiseโ stops windows from being raised, so the depth ordering stays exactly as it was ๐ชจ-noresizeโ stops windows from being resized, so their sizes stay intact. This is the default when cascading ๐ง-nostretchโ if you're tiling, this stops windows from growing to fill the tile. They get shrunk to fit but never expanded. If you're cascading, it stops windows from expanding when you use-resize, so they'll only shrink to fit the maximal width and height (if you gave those) ๐ค-rโ reverses the window sequence ๐-resizeโ forces every window to resize to the constrained width and height (if given). This is the default when tiling ๐ช-sโ makes sticky windows get affected too (implied by-a) ๐-spโ makes windows that are sticky across pages get affected too (implied by-a) ๐-sdโ makes windows that are sticky across desks get affected too (implied by-a) ๐๏ธ-tโ makes transient windows get affected too (implied by-a) ๐ซง-tileโ tiles windows. This must be the first argument on the command line ๐งฉ-uโ makes untitled windows get affected too (implied by-a) ๐ซฅ-ewmhiwaโ when rearranging, the calculation ignores the working area, likeEwmhBaseStruts. By default,FvwmRearrangehonours the working area ๐ค๏ธ
Also, up to four numbers can go on the command line as long as they aren't switches. The first pair sets an x and y offset to start the first window (default is 0, 0). What the second pair means depends on the mode:
- When tiling, it's an absolute coordinate reference for the lower right bounding box for tiling ๐
- When cascading, it's a maximal width and height for the layered windows. If an affected window goes over either of those, it gets resized down to the maximal width or height ๐ฆ
If any number ends with the letter p, it's taken as a pixel value. Otherwise it's a screen percentage. And specifying zero for any parameter is the same as not specifying it at all ๐ซถ
๐ BUGS ๐
๐จ It is probably not a good idea to delete windows while windows are being rearranged. Bestie, I'm begging you, don't do that ๐ญ
๐ AUTHORS ๐
- Andrew Veliath (original FvwmTile and FvwmCascade modules) ๐
- Dominik Vogt (merged FvwmTile and FvwmCascade to FvwmRearrange) ๐ซถ
And that's the whole page, bestie ๐ Source is the 3rd Berkeley Distribution, version 2.7.0, dated 19 October 2022. Now go rearrange something iconic ๐๐ฆโจ
๐ฆ where this page comes from
- alpine 3.24: fvwm-doc 2.7.0-r3 ยท GPL-2.0-or-later
- fedora 43: fvwm 2.7.0-15.fc43 ยท GPL-2.0-or-later
- fedora 44: fvwm 2.7.0-16.fc44 ยท GPL-2.0-or-later
- nixos 26.05: fvwm 2.7.0
- nixpkgs unstable: fvwm 2.7.0
- opensuse-leap 16.0: fvwm2 2.7.0-bp160.1.11 ยท GPL-2.0-or-later
- opensuse-leap 16.0: fvwm2 2.7.0-bp160.1.11 ยท GPL-2.0-or-later
- opensuse-leap 16.0: fvwm2 2.7.0-bp160.1.11 ยท GPL-2.0-or-later
- opensuse-leap 16.0: fvwm2 2.7.0-bp160.1.11 ยท GPL-2.0-or-later
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms