On Mon, Jun 23, 2003 at 09:16:59PM -0400, Thomas R. Dean wrote: > Hi. I've been using fvwm since I don't remember when, somewhere back > around Redhat 5 anyways. Great WM, not as heavyweight as some > of the others, and not as visually busy as the others as well. > > Anyhow, I just recently upgraded the Motherboard in my system and > the keyboard. The new keyboard has multimedia keys and I wanted > to used them to control XMMS. I also have a mac powerbook and having > the volume keys work regardless of the application is very convenient. > > Target System is RedHat 9, FVWM version 2.4.16. > > So i've done the following: > Used xmodmap in .xinitrc to bind XF86AudioRaiseVolume, etc. to the > appropriate keycodes. (and verified with xev) > > Added the following to my .fvwm2rc: > > Key XF86AudioRaiseVolume A A ALL (XMMS*) Echo up $[w.id] $[w.name] > Key XF86AudioLowerVolume A A ALL (XMMS*) Echo down $[w.id] $[w.name] > Key XF86AudioMute A A ALL (XMMS*) Echo mute $[w.id] $[w.name] > > I was going to replace echo with an exec to execute a command that will > send an KP_Up or KP_Down event directly to the XMMS window (which > will adjust the volume). As I understand the man page, the $[w.id] is > supposed to return > the window id that the command is called on. There are two xmms windows, the > main control and the playlist window. Each press of the button should > echo two window > ids (and the window name). > > If the focus is on the root, then the correct window ids and titles are > echoed: > > 0x1400066 XMMS - song title info > 0x14000cf XMMS Playlist > > All is well so far. However, if any window has the focus then I get the > window id of the window with the focus -- twice. So if the focus is on > an xterm, I get two lines of: > up 0x1200026 xterm. > > I've looked through several months worth of archive and used google to > search > the site, but I haven't found any help. > > Do I have the correct interpretation of $[w.id]? If not, what should I use?
All (XMMS*) Echo $[w.id] is actually two commands and thus the $[w.id] string is expanded twice. The first time is *before* the All command is run. At that moment, the context window is the window with the focus and $[w.id] is replaced by its window id. You need to protect the $[w.id] from this step of variable expansion by adding additional '$'s in front of it (even for me it's usually trial and error to find out the correct number of '$'s): Key foo a a All (XMMS*) Echo $$$[w.id] ^^^^^ Bye Dominik ^_^ ^_^ -- Visit the official FVWM web page at <URL: http://www.fvwm.org/>. To unsubscribe from the list, send "unsubscribe fvwm" in the body of a message to [EMAIL PROTECTED] To report problems, send mail to [EMAIL PROTECTED]