Provided by: fvwm3_1.0.4+ds-1build1_amd64 bug

NAME

       FvwmEvent - the fvwm event module

SYNOPSIS

       FvwmEvent is a more versatile replacement for FvwmAudio. It can in general be used to hook
       any fvwm function or program to any window manager event. E.g: Delete unwanted Netscape
       Pop ups or application error pop ups as they appear, play sounds, log events to a file and
       the like. Be creative, you’ll find a use for it.

       FvwmEvent is spawned by fvwm, so no command line invocation will work. From within the
       .fvwm2rc file, FvwmEvent is spawned as follows:

           Module FvwmEvent

       or from within an fvwm pop-up menu:

           DestroyMenu Module-Popup
           AddToMenu Module-Popup "Modules" Title
           + "Event"        Module FvwmEvent
           + "Auto"         Module FvwmAuto 200
           + "Buttons"      Module FvwmButtons
           + "Console"      Module FvwmConsole
           + "Ident"        Module FvwmIdent
           + "Banner"       Module FvwmBanner
           + "Pager"        Module FvwmPager 0 3

DESCRIPTION

       The FvwmEvent module communicates with the fvwm window manager to bind actions to window
       manager events. Different actions may be assigned to distinct window manager events.

       FvwmEvent can be used to bind sound files to events like FvwmAudio (RiP) did. It can be
       used for logging event traces to a log file, while debugging fvwm.

INVOCATION

       The invocation method was shown in the synopsis section. No command line invocation is
       possible. FvwmEvent must be invoked by the fvwm window manager.

CONFIGURATION OPTIONS

       FvwmEvent gets config info from fvwm's module configuration database (see fvwm(1), section
       MODULE COMMANDS), and looks for certain configuration options:

       *FvwmEvent: Cmd command
           This determines the fvwm function that is to be called with the event parameters. You
           might want to do one of the following (details below):

                       # execute distinct fvwm functions
                       *FvwmEvent: Cmd

                       # execute distinct external programs
                       *FvwmEvent: Cmd exec

           FvwmEvent has support for any other external program. e.g: the rsynth 'say' command:

                       *FvwmEvent: Cmd "Exec /rsynth/say"
                       *FvwmEvent: destroy_window "window closed"

           You can also use fvwm's builtin Echo command as FvwmEvent: Cmd to obtain debug output
           for fvwm events quietly. I used this setup to debug FvwmAuto:

                       *FvwmEvent: Cmd Echo
                       *FvwmEvent: focus_change "focus change"
                       *FvwmEvent: raise_window "raise window"

           You can even call different shell commands for each event just by setting

                       *FvwmEvent: Cmd exec
                       *FvwmEvent: add_window 'killname "APPL ERROR"'

       *FvwmEvent: PassId
           Specifies that the event action will have an ID parameter added to the end of the
           command line. Most events will have the windowID of the window that the event refers
           to, new_desk will have the new desk number. The windowID is a hexadecimal string
           preceded by 0x, desk numbers are decimal.

       *FvwmEvent: window-manager-event action-or-filename
           Binds particular actions to window manager events.

           The following events are valid:

           ┌─────────────────────┬──────────────────────────────────┐
           │                     │                                  │
           │EventDescription                      │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │add_window           │ Occurs when a new window is      │
           │                     │ mapped and visible               │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │config_info          │ Occurs when a module asks for    │
           │                     │ configuration                    │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │configure_window     │ Occurs when a ConfigureNotify    │
           │                     │ event happens                    │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │default_icon         │ Occurs when a window’s           │
           │                     │ DefaultIcon changes              │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │deiconify            │ Occurs when a window id          │
           │                     │ deiconified                      │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │destroy_window       │ Occurs when a window is          │
           │                     │ destroyed                        │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │dewindowshade        │ Occurs when a window is unshaded │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │echo                 │ Occurs when an Echo command is   │
           │                     │ run                              │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │end_config_info      │ Occurs when there’s no more      │
           │                     │ module config to send            │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │end_windowlist       │ Occurs when the windowlist has   │
           │                     │ finished sending                 │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │enter_window         │ Occurs when a window receives a  │
           │                     │ EnterNotify event                │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │error                │ DEPRECATED                       │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │focus_change         │ Occurs when a window gains or    │
           │                     │ loses focus                      │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │icon_file            │ DEPRECATED                       │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │icon_location        │ DEPRECATED                       │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │icon_name            │ DEPRECATED                       │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │iconify              │ Occurs when a window is          │
           │                     │ iconified                        │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │leave_window         │ Occurs when a window receives a  │
           │                     │ LeaveNotify event                │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │lower_window         │ Occurs when a window is lowered  │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │map                  │ Occurs when a window is Mapped   │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │mini_icon            │ Occurs when a window’s mini icon │
           │                     │ changes                          │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │monitor_changed      │ Occurs when a monitor’s          │
           │                     │ resolution changes               │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │monitor_disabled     │ Occurs when a monitor is         │
           │                     │ disabled (via RandR)             │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │monitor_enabled      │ Occurs when a monitor is enabled │
           │                     │ (via RandR)                      │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │monitor_focus        │ Occurs when a monitor gains      │
           │                     │ focus                            │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │new_desk             │ Occurs when a new desk is        │
           │                     │ switched to                      │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │new_page             │ Occurs when a new page is        │
           │                     │ switched to                      │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │old_add_window       │ DEPRECATED                       │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │old_configure_window │ DEPRECATED                       │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │property_change      │ Occurs when a window receives a  │
           │                     │ PropertNotify event              │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │raise_window         │ Occurs when a window is raised   │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │res_class            │ Occurs when a window’s Class is  │
           │                     │ set                              │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │res_name             │ Occurs when a window’s Resource  │
           │                     │ is set                           │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │restack              │ Occurs when windows are          │
           │                     │ restacked                        │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │sendconfig           │ Occurs when FvwmEvent asks for   │
           │                     │ its config                       │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │shutdown             │ DEPRECATED                       │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │startup              │ DEPRECATED                       │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │string               │ Occurs when the SendToModule     │
           │                     │ command is used                  │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │unknown              │ DEPRECATED                       │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │visible_icon_name    │ Occurs when a window’s visible   │
           │                     │ icon name changes                │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │visible_name         │ Occurs when a window’s visible   │
           │                     │ name changes                     │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │window_name          │ Occurs when a window’s name      │
           │                     │ (WM_NAME) is set                 │
           ├─────────────────────┼──────────────────────────────────┤
           │                     │                                  │
           │windowshade          │ Occurs when a window is shaded   │
           └─────────────────────┴──────────────────────────────────┘

           The window related event handlers are executed within a window context. Previously
           PassId was used for this purpose, but now using PassId is not needed.

           The monitor_* events do not operate in a window context (as there isn’t one), but
           react to when a monitor is plugged in (enabled), unplugged (disabled), focused (focus)
           or changed (resized/rotated, etc., which will only be true if the monitor is already
           active). In all cases, the monitor name is is passed through to the command, hence the
           following example prints out the changed monitor’s name, and width/height values:

                       DestroyFunc MonitorExample
                       AddToFunc   MonitorExample
                       + I Echo "Monitor $0 changed ($[monitor.$0.width] x $[monitor.$0.height])

                       *FvwmEvent: monitor_changed MonitorExample

           The echo event is generated whenever Fvwm receives an Echo command.

           Note: The enter_window event is generated when the pointer enters a window. With the
           -passid option, that window’s id is passed to fvwm. An enter_window event is generated
           too when the pointer leaves a window and moves into the root window. In this case, the
           id passed is 0.

           Note: When the shutdown event arrives, FvwmEvent may be killed before it can trigger
           the associated action.

       *FvwmEvent: Delay 5
           Specifies that an event-action will only be executed if it occurs at least 5 seconds
           after the previous event. Events that occur during the delay period are ignored. The
           default delay is 0 which disables the Event.

       *FvwmEvent: StartDelay delay
           Specifies that an event-action will only be executed if it occurs at least delay
           seconds after the startup event. Events that occur during the delay period are
           ignored. This option is useful when fvwm starts and restarts using an audio player.
           The default delay is 0.

HISTORY

       This module has evolved of FvwmAudio, which in term is heavily based on a similar Fvwm
       module called FvwmSound by Mark Boyns. FvwmAudio simply took Mark’s original program and
       extended it to make it generic enough to work with any audio player. Due to different
       requests to do specific things on specific events, FvwmEvent took this one step further
       and now calls any fvwm function, or builtin-rplay. If fvwm's Exec function is used, any
       external program can be called with any parameter.

AUTHORS

           1994  FvwmSound  Mark Boyns       (boyns@sdsu.edu)
           1994  FvwmAudio  Mark Scott       (mscott@mcd.mot.com)
           1996  FvwmAudio  Albrecht Kadlec
           1998  FvwmEvent  Albrecht Kadlec  (albrecht@auto.tuwien.ac.at)

                                            2022-10-07                               FVWMEVENT(1)