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.
 
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 compatibility 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
     
	<URL:ftp://ftp.sdsu.edu/pub/rplay> or
	<URL:ftp://ftp.x.org/contrib/Event/audio/rplay>
 
    
     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
 
    
    The toggle_paging event will be supported, as soon, as it's resurrected by
      fvwm:
     
	*FvwmEvent: toggle_paging fwop.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 backwards 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 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.
 
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)