STANNIX Community


Manual: Fvwm2Event

FvwmEvent(1)						Fvwm Modules						FvwmEvent(1)

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 pro‐
       gram  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.

       FvwmEvent can also have builtin support for the rplay library.  (heritage of FvwmAudio)

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. FvwmEvent accepts a single argument:

       -audio Enables FvwmAudio compatibility mode.

       alias  Makes FvwmEvent use alias as its name. This affects which lines from the user's configuration file are used.

	      Invoking FvwmEvent as FvwmAudio (either by using an alias or creating a symlink) enables FvwmAudio compatibil‐
	      ity mode.

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):

		   # play sounds
		   *FvwmEvent: Cmd builtin-rplay

		   # execute distinct fvwm functions
		   *FvwmEvent: Cmd

		   # execute distinct external programs
		   *FvwmEvent: Cmd exec

	      This  version of FvwmEvent has builtin rplay support which does not need to invoke an external audio player to
	      play sounds.  The rplay support is enabled when  FvwmEvent  is  compiled	with  HAVE_RPLAY  defined  and	when
	      FvwmEvent:  Cmd  is set to builtin-rplay. See remarks below if FvwmEvent is invoked in FvwmAudio compatibility
	      mode.

	      For example:

		   *FvwmEvent: Cmd builtin-rplay
		   *FvwmEvent: add_window drip.au

	      rplay can be obtained via anonymous ftp at

		    or
		   

	      FvwmEvent also 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.

	      e.g. for audio-events:

		   *FvwmEvent: startup TaDa.au
		   *FvwmEvent: shutdown Elvis_Left.au
		   *FvwmEvent: unknown doh.au

		   *FvwmEvent: new_page beam_trek.au
		   *FvwmEvent: new_desk beam_trek.au
		   *FvwmEvent: old_add_window drip.au
		   *FvwmEvent: raise_window swoosh.au
		   *FvwmEvent: lower_window swoosh.au
		   *FvwmEvent: old_configure_window hammer.au
		   *FvwmEvent: focus_change boing.au
		   *FvwmEvent: enter_window boing.au
		   *FvwmEvent: leave_window boing.au
		   *FvwmEvent: destroy_window explosion.au
		   *FvwmEvent: iconify ploop.au
		   *FvwmEvent: deiconify ploop.au
		   *FvwmEvent: window_name huh.au
		   *FvwmEvent: icon_name beep.au
		   *FvwmEvent: visible_icon_name beep.au
		   *FvwmEvent: res_class beep.au
		   *FvwmEvent: res_name beep.au
		   *FvwmEvent: end_windowlist twang.au

		   *FvwmEvent: icon_location beep.au
		   *FvwmEvent: map beep.au
		   *FvwmEvent: error beep.au
		   *FvwmEvent: config_info beep.au
		   *FvwmEvent: end_config_info beep.au
		   *FvwmEvent: icon_file beep.au
		   *FvwmEvent: default_icon beep.au
		   *FvwmEvent: string plapper.au
		   *FvwmEvent: mini_icon beep.au
		   *FvwmEvent: windowshade beep.au
		   *FvwmEvent: dewindowshade beep.au

		   *FvwmEvent: visible_name beep.au
		   *FvwmEvent: sendconfig beep.au
		   *FvwmEvent: restack beep.au
		   *FvwmEvent: add_window beep.au
		   *FvwmEvent: configure_window beep.au

		   *FvwmEvent: visible_icon_name beep.au
		   *FvwmEvent: enter_window beep.au
		   *FvwmEvent: leave_window beep.au
		   *FvwmEvent: property_change beep.au

	      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.

	      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.

	      Provided fvwm supports it (not yet), there's an additional event to replace all fvwm beeps with a sound:

		   *FvwmEvent: beep beep.au

       *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.  This option is useful if you don't want several sounds
	      playing at the same time.	 The default delay is 0 which disables the Event delay.

       *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.

RPLAY OPTIONS
       The  following  options	are only valid with builtin rplay support.  i.e: when FvwmEvent was compiled with HAVE_RPLAY
       defined.	 They are used only if FvwmEvent: Cmd is set to builtin-rplay.

       *FvwmEvent: RplayHost hostname
	      Specifies what host the rplay sounds will play on.  The hostname can also be an environment variable  such  as
	      $HOSTDISPLAY.

       *FvwmEvent: RplayPriority 0
	      Specifies what priority will be assigned to the rplay sounds when they are played.

       *FvwmEvent: RplayVolume 127
	      Specifies what volume will be assigned to the sounds when they are played.

FvwmAudio Compatibility Mode
       When  invoked  in  FvwmAudio compatibility mode (see above), FvwmEvent accepts the following options to provide back‐
       wards compatibility for FvwmAudio:

       *FvwmEvent: PlayCmd command
	      This is equivalent to using *FvwmEvent: Cmd to Exec commands. This determines  the  independent  audio  player
	      program that will actually play the sounds. If the play command is set to builtin-rplay then the builtin rplay
	      support will be used.

       *FvwmAudio: Dir directory
	      Specifies the directory to look for the audio files.  This option is ignored when rplay is used.

BUGS
       It's REALLY noisy when fvwm starts and restarts using an audio player.  You can use FvwmEvent: StartDelay to fix this
       problem.

COPYRIGHTS
       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 fur‐
       ther 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.

       The concept for interfacing this module to the Window Manager, is original work by Robert Nation.

       Copyright  1998 Albrecht Kadlec.	 Copyright 1994, Mark Boyns and Mark Scott.  No guarantees or warranties or anything
       are provided or implied in any way whatsoever.  Use this program at your own risk.  Permission to use and modify this
       program for any purpose is given, as long as the copyright is kept intact.

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)

3rd Berkeley Distribution			   19 October 2022 (2.7.0)					FvwmEvent(1)