FVWMAUTO(1)
π FVWMAUTO π
okay bestie, pull up a chair, because today we're talking about FvwmAuto β the fvwm auto-raise module. it lives in the Fvwm Modules family, and honestly? it's giving quiet-overachiever. no cap.
β¨ NAME β¨
FvwmAuto β the fvwm auto-raise module π«Ά
β¨ SYNOPSIS β¨
Module FvwmAuto Timeout [-passid] [-menter|-menterleave|-mfocus]
[EnterCommand [LeaveCommand]]
real talk: FvwmAuto can only be invoked by fvwm. typing it on the command line yourself? nope. it will not work. it's not being rude, it's just built different. π
β¨ DESCRIPTION β¨
so what does it do. The FvwmAuto module is most often used to automatically raise focused windows. that's the whole vibe. icon behavior. πΈ
β¨ INVOCATION β¨
the correct syntax, no skips π
Module FvwmAuto Timeout [-passid] [-menter|-menterleave|-mfocus] [EnterCommand [LeaveCommand]]
AddToMenu Modules
+ "Auto Raise (300 ms)" Module FvwmAuto 300
+ "Auto Raise/Lower" Module FvwmAuto 300 "Silent Raise" "Silent Lower"
Timeout β required, no exceptions
The Timeout argument is required. it says how long a window has to hold onto the keyboard input focus before the command actually fires. the delay is measured in milliseconds, and literally any integer greater than zero is valid. zero? no. negative? absolutely not. greater than zero? periodt. β±οΈ
-passid β the id-dropper
if you pass the literal option -passid, the window id of the window that was just entered or left gets appended to the command sent to fvwm. super handy with fvwm's WindowId command. iykyk. π₯
-menter, -menterleave, -mfocus β pick ONE, bestie
these options decide which actions FvwmAuto reacts to. and the rule is: no more than one of them can be chosen. one. not two. do not test it.
-mfocusmode βFvwmAutoraises the window that has the focus. π-mentermode βFvwmAutoraises the window under the pointer when the pointer enters a window. TheLeaveCommandgets executed on the window that was below the pointer before it entered the new one. and when the pointer leaves a window and lands on the root window, theEnterCommandis executed too β but with no window to operate on. awkward but legal.-menterleavemode β same energy as-menter, but theLeaveCommandalso fires if the pointer moves out of a window and does not enter a new window.
those last two modes are useful with windows that don't accept the focus. they're just like that. π
β οΈ warning, listen up: -menterleave mode can interfere with popup windows of some applications. one example is the zoom menu of Ghostview. please do not come complain to us about this β it is a bug in Ghostview. not ours. not our problem. fr fr. π
EnterCommand and LeaveCommand β optional but iconic
both are optional. here's the timing:
EnterCommandrunsTimeoutmilliseconds after a window gets the input focus.LeaveCommandrunsTimeoutmilliseconds after the window has lost focus.
π important: you should always use theSilentkeyword before the command itself.FvwmAutowill prepend"Silent "to the command string on its own if you forget. and why do we care? because without that prefix, fvwm would ask you for a window to act on if the window has died before the command sent byFvwmAutogot processed by fvwm. this can for example happen with popup menus. so. yeah. useSilent.
"Silent Raise" is the default for EnterCommand, but any fvwm function is allowed. that said β i would not use "Close" or "Destroy" with a low timeout. just. don't. π
the LeaveCommand can be super handy for a tidy desktop. go experiment, queen:
Module FvwmAuto 0 Nop "Silent Lower"
Module FvwmAuto 0 Nop "Silent Iconify"
example: auto raising windows with ClickToFocus
Style * ClickToFocus
FvwmAuto 0 -menter "Silent Raise"
example: auto raising + lowering only some windows
to start FvwmAuto:
FvwmAuto 0 -passid -menter \
"Silent selective_raiselower raise" \
"Silent selective_raiselower lower"
and put this in your .fvwm2rc:
AddToFunc selective_raiselower
+ I WindowId $1 (FvwmIconMan) $0
+ I WindowId $1 (FvwmButtons) $0
+ IWindowId $1 (xclock) $0
...
the more complex example (three FvwmAuto's are running, she's booked and busy) π
DestroyFunc RestoreIconified
AddToFunc RestoreIconified
+ I Current (Iconic) Iconify false
DestroyFunc RegisterFocus
AddToFunc RegisterFocus
+ I Exec date +"%T $n focused" >>/tmp/focus-stats.txt
DestroyFunc RegisterUnfocus
AddToFunc RegisterUnfocus
+ I Exec date +"%T $n unfocused" >>/tmp/focus-stats.txt
KillModule FvwmAuto
Module FvwmAuto 250 Raise Nop
Module FvwmAuto 800 RestoreIconified Nop
Module FvwmAuto 0 RegisterFocus RegisterUnfocus
β¨ NOTES β¨
there's a special Raise/Lower support in FvwmAuto and it's lowkey the coolest part. it was added to improve Raise/Lower callbacks, since most of FvwmAuto usages is auto-raising or auto-lowering. what does the improvement include? locking on M_RAISE_WINDOW and M_LOWER_WINDOW packets, and not raising/lowering windows that were explicitly raised. π₯
the catch: that special Raise/Lower support is enabled only when either EnterCommand or LeaveCommand contain the substring "Raise" or "Lower". so if FvwmAuto is not automatically doing what you expect it to do, you can use this fact to enable/disable any special support by renaming those commands. your call, bestie. β¨
also β using FvwmAuto in conjunction with EdgeCommand can be even more powerful. there's a short example in the fvwm man page. go look. π¦
β¨ AUTHOR β¨
FvwmAuto just appeared one day. nobody knows how. FvwmAuto was simply rewritten 09/96, nobody knows by whom. mysterious. unbothered. thriving. π
okay that's the whole page bestie, ty for reading!! this one came out of the Fvwm Modules collection, page FVWMAUTO(1), dated 2026-07-31. mwah, go raise some windows. π
πβ¨
π¦ where this page comes from
- ubuntu stonking: fvwm3 1.1.5+ds-2 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms