FVWM-THEMES-COM(1)

NAME
fvwm-themes-com - fvwm-themes communication center

SYNOPSIS
fvwm-themes-com [ --help] [ --version] [ --name name ] [ --message message ] [ --lock-and-get ] [ --get-buffer ] [ --clear-buffer ] [ --buffer-name name ] [ --line lineNbr]

DESCRIPTION
This script is not a user script. It is used by Fvwm-Themes for communication between some FvwmScript scripts and some other programs. Basically, you want to start a programs in the background which support the fvwm-themes-com communication protocol (e.g., fvwm-themes-menuapp and fvwm-themes-config with the com-mode option can be used as generic examples), then you can use fvwm-themes-com to ask questions or to give instructions to the background program. The answer are displayed by fvwm-themes-com in the standard out put and can be used by a FvwmScript script via the GetoutPut instruction. The advantage of using this method is that the background program have to do its main job only once (e.g., parsing a lot of informations and storing them in some variables) and a script can have very fast answer from the background program via fvwm-themes-com.

OPTIONS
--help - show the help and exit

--version - show the version and exit

--name name - the name of the communication (e.g., if you start fvwm-themes-menuapp with --com-name pid option you must use menuapp-pid as name to communicate with it). The pipe used for communication are $FVWM_DATADIR/{.tmp-com-in-name,tmp-com-out-name,tmp-com-lock-name}. The "buffer" file is $FVWM_USERDIR/.tmp-com-buffer-name

--message - A one line message to be sent to the back program.

--lock-and-get - Wait (a certain "time out") for an answer of the message. Then, the answer is displayed on STDOUT.

--line n - n must be an integer n > 0. In the case of a lock and get message, fvwm-themes-com will out put only the nth line of the answer of the back program on STDOUT and will copy the complete answer in a "buffer" file. If you use the get-buffer option the nth line of the buffer is out put on STDOUT.

--get-buffer - Out put the buffer file on STDOUT.

--buffer-name othername - Use an alternative name for the buffer file: $FVWM_USERDIR/.tmp-com-buffer-othername. This is usefull if two programs use the same background program and both use the buffer.

--clear-buffer - remove the buffer file.

USAGE
Here an example:

In the Script FvwmScript-Menus you first start the background program, here fvwm-themes-menuapp, and you set some variables for an easy use of fvwm-themes-com:

  # found the FvwmScript pid
  Set $CMD = {perl -e '$t=getppid; print $t . "\n"'}
  Set $PID = (GetOutput $CMD 1 -1)
  # Run fvwm-themes-menuapp until the end of the script
  Do {Exec fvwm-themes-menuapp --com-mode --com-name=menuapp-}$PID{ &}
  # to send fvwm-themes-com command
  Set $SendMsgAndGet = {fvwm-themes-com --name menuapp-}$PID{ --lock-and-get --message=}
  Set $SendMsg = {fvwm-themes-com --name menuapp-}$PID{  --message=}
  Set $GetLine = {fvwm-themes-com --name menuapp-}$PID{  --get-buffer --line=}
Then in the Script you can ask fvwm-themes-menuapp for some informations:

  # Get the menu list
  Set $CMD = $SendMsgAndGet{"menu-items }$MENU{"}
  Set $ItemsList = (GetOutput $CMD 1 -1)
  ChangeTitle 11 $ItemsList
You can also just send an instruction to fvwm-themes-menuapp:

  Set $CMD = $SendMsg{"exit"}
  Do {Exec }$CMD
Of course your back program have to support the fvwm-themes-com protocol. See fvwm-themes-menuapp and fvwm-themes-config for examples (com-mode option). See also FvwmScript-Menus and FvwmScript-ThemesCenter.

AUTHORS
Olivier Chapuis <olivier.chapuis@free.fr>, 5 May 2000.

COPYING
The script is distributed by the same terms as fvwm itself. See GNU General Public License for details.

BUGS
Report bugs to fvwm-themes-devel@lists.sourceforge.net