FVWMMFL(1)
π FVWMMFL(1) π
Okay bestie, this is the manual page for FvwmMFL, filed under the Fvwm Modules section πΈ
β¨ NAME β¨
FvwmMFL, the Fvwm3 front-loader module π
π SYNOPSIS π
FvwmMFLcan only be invoked by Fvwm3. Command line invocation of theFvwmMFLwill not work. π
This module has no command-line options, so don't even try π
π§ DESCRIPTION π§
Okay so the FvwmMFL module gives you access to Fvwm events over a unix-domain socket π¦ It's basically made for externally-written programs (aka clients) that want to receive info from Fvwm and then do something about that event. Iconic behaviour, honestly π
The info Fvwm3 sends is in the form of JSON packets π Each packet has different fields depending on which type was requested, so it's lowkey a whole vibe.
πΈ COMMUNICATION πΈ
The default unix-domain socket for FvwmMFL is $TMPDIR/fvwmmfl/fvwm_mfl_$DISPLAY.sock β¨
Want it somewhere else? Set the FVWMMFL_SOCKET_PATH environment variable to change where fvwm_mfl_$DISPLAY.sock gets created π§ FvwmMFL will make that path if it doesn't exist yet, and it'll set the relevant permissions for you. Main character energy π
π₯ REGISTERING INTEREST π₯
Clients can send commands to FvwmMFL to decide which info gets sent to them. The set command handles this π Here's every event you can subscribe to, bestie:
new_windowβ fires when a new window is mapped and visible πͺmapβ fires when a window is mapped πΊοΈconfigure_windowβ fires when a window is moved or resized πdestroy_windowβ fires when a window is closed πnew_pageβ fires when a new page is switched to πnew_deskβ fires when a new desk is switched to π₯οΈraise_windowβ fires when a window is raised (or changes layer) π¦lower_windowβ fires when a window is lowered (or changes layer) πfocus_changeβ fires when a window loses or gains focus π―enter_windowβ fires when the pointer moves into a window πleave_Windowβ fires when the pointer moves out of a window πͺwindow_shadeβ fires when a window is shaded π«οΈwindow_unshadeβ fires when a window is unshaded βοΈwindow_nameβ fires when the window name changes π·οΈvisible_nameβ fires when the visible window name changes ποΈres_classβ fires when the class of the window is set π§res_nameβ fires when the resource of the window is set πiconifyβ fires when a window is iconified π«§deiconifyβ fires when a window is deiconified πicon_nameβ fires when the icon name changes π«visible_icon_nameβ fires when the icon's visible name changes πicon_fileβ fires when the path to the icon changes πicon_locationβ fires when the icon location changes πrestackβ fires when the window stacking order changes π₯echoβ fires when Fvwm receives an Echo command π£
For example, to register interest in new_window and focus_change, you'd send these commands over the socket:
set new_window
set focus_change
Changed your mind? Use the unset command to remove interest in an event:
unset focus_change
π¦ JSON FORMAT π¦
Each packet sent to a client is plain JSON π«Ά What's inside each packet depends on the event, so keep that in mind.
TODO: document each JSON structure. (Still on the list, bestie π)
π EXAMPLE π
Want to watch focus_change events from the shell and see the JSON that comes back? Slay:
echo set focus_change | nc -U /tmp/fvwm_mfl.sock 2>&1 | jq --unbuffered
It outputs something like this:
{ "focus_change": { "window": "0x5400022", "type": 0, "hilight": {
"text_colour": 16777215, "bg_colour": 32767 } } }
π AUTHORS π
This module first appeared in 2020 π
That's a wrap, bestie π¦ FVWMMFL(1), from the Fvwm Modules pages, dated 2026-06-28. Love you, mean it πβ¨
π¦ where this page comes from
- arch rolling: fvwm3 1.1.5-1 Β· GPL-2.0-or-later
- fedora 43: fvwm3 1.1.5-1.fc43 Β· GPL-2.0-or-later AND NTP AND MIT and BSD-2-Clause AND BSD-3-Clause
- fedora 44: fvwm3 1.1.5-1.fc44 Β· GPL-2.0-or-later AND NTP AND MIT and BSD-2-Clause AND BSD-3-Clause
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms