Thanks very much Dominik, Hegel3DReloaded, and Elliot!  I was able to use your 
ideas to craft a solution.

Cheers,

Steve

Dominik Vogt wrote:

> On Wed, Feb 26, 2020 at 03:16:12PM -0500, Stephen Talley wrote:
> > In my FVWM configuration, I can use either Sticky:
> >
> >     # Show window on all desktops
> >     Style *Emulator* Sticky
> >
> > ???or StartsOnDesk:
> >
> >     # Show window on desktop 3 only
> >     Style *Emulator* StartsOnDesk 3
> >
> > But how can I make a window appear on, say, desktops 3 and 4, but not 0, 1, 
> > or 2?
> 
> Fvwm does not manage desk objects.  The desk a window is present
> on is just a property of the window, so there is no direct way to
> do that.  However, you can do some scripting:
> 
> -- snip --
> addtofunc custom_gotodesk
> + I setenv _desk $0
> + I test (envmatch _desk 1) all (xeyes) stick on
> + I test (envmatch _desk 2) all (xeyes) stick on
> + I test (envmatch _desk 3) all (xclock) stick on
> + I test (envmatch _desk 4) all (xclock) stick on
> + I GotoDesk 0 $0
> + I All (xeyes) stick off
> + I All (xclock) stick off
> + I unsetenv _desk
> -- snip --
> 
> Call this function instead of GotoDesk with
> 
>   custom_gotodesk <desknum>
> 
> --
> 
> This won't work if you click on the pager to switch desks because
> the GotoPage command is hard coded there.  In that case, FvwmEvent
> helps:
> 
> -- snip --
> *FvwmEvent: new_desk deskchange
> Module FvwmEvent
> 
> addtofunc deskchange
> + I echo dc $[desk.n]
> + I setenv _desk $[desk.n]
> + I test (envmatch _desk 1) all (xeyes) movetodesk
> + I test (envmatch _desk 2) all (xeyes) movetodesk
> + I test (envmatch _desk 3) all (xclock) movetodesk
> + I test (envmatch _desk 4) all (xclock) movetodesk
> + I unsetenv _desk
> -- snip --
> 
> You'll probably want to put the module execution in the
> initfunction/restartfunction.
> 
> Ciao
> 
> Dominik ^_^  ^_^
> 
> --
> 
> Dominik Vogt

Reply via email to