On Thu, Aug 29, 2019 at 8:43 AM Dave Weller-Fahy
<l.f...@dave.caterva.org> wrote:
>
> On Thu, Aug 29, 2019 at 2:16 AM Martin Cermak <marti...@gmail.com> wrote:
> > On  Wed  2019-08-28  13:03 , Dave Weller-Fahy wrote:
> > > My goal is to have the following rules followed.
> > >
> > > Rules about keys being pressed and (possibly) held.
> > > - If Ctrl-Alt are pressed ...
> > >   - and if no other keys are pressed within some period of time ...
> > >     - then pop up the pager
> > >   - and if other keys (such as arrow keys) are pressed ...
> > >     - then execute some other action
> > >
> > > Rules about keys being released.
> > > - If Ctrl-Alt are released ...
> > >     - and if the pager is displayed ...
> > >       - then remove the pager
> > >
> > > The use case is to have Ctrl-Alt-(up|down|left|right) change desks,
> >
> > I have this setup too (as an option).  But primarily I use
> > Ctrl-Alt-(<keypad key 1..9>).  This gives me a clear idea which
> > of my 9 desks (arranged as a 3x3 matrix) I am switching to.
> > Nothing visual involved.
>
> Thanks for the confirmation! I have the Ctrl-Alt-direction (or any other
> arbitrary key combination to change desktops) working perfectly: I
> should have been more clear on that. The thing I've not been able to
> accomplish is getting the pager to pop up when keys are pressed and
> then go away when those same keys are released.
>
> I was reaching the conclusion that what I wanted was not possible with
> fvwm (at least, not possible without an external utility), but figured I
> would check with the mailing list before giving up and looking for an
> external utility to help. I may also try fvwm3 to see if what I want is
> possible there.
>

You can bind a key to a modifier and set the unbound one as your
modifier (Key Control_L A M Exec exec executable.name    or  Key Alt_L
A C Exec exec executable.name   or ...)
And that can still be used for some other action (Key T A CM Exec exec
other-executable.name would still work, for example) but it will cause
your executable to be executed even when you're just using the alt and
control as modifiers.

You could make a wrapper script that uses xlib and does a
`display.query_keymap()` to see if the keys are still being held down.
Then if after a set time the key isn't still held, you might decide
that the wrapper was invoked intentionally and should then call a
function in fvwm to toggle your pager.  It would take a little getting
used to, as you'd train yourself to hold modifier keys for a brief
pause when executing stuff other than toggling the pager, but it's not
impossible.

I had experimented with using the windows key to do something on its
own when not being used as a modifier key, but I eventually discarded
it.  I posted about it to the fvwm forums, which can be found here:
https://fvwmforums.org/phpBB3/viewtopic.php?f=6&t=2832#p14222

Reply via email to