[xmonad] Re-inserting keystrokes as X events for client

Spencer Janssen spencerjanssen at gmail.com
Thu Sep 11 05:15:18 EDT 2008

On Thu, Sep 11, 2008 at 08:59:08AM +0200, Bárður Árantsson wrote:
> Hi all,
> Is there a way to re-insert the original keystroke as an X event for the
> currently focused client in response to a keybinding?
> Basically I want to do a keybindings along these lines:
> ((controlMask, xK_t), submap . M.fromList $
>   [ ((0, xK_r), whatever)
>   , ((0, xK_f), whatever)
>   ...
>   , ((0, xK_t), <re-send the original keystroke to the focused client>)
>   ])
> so that I essentially have a "prefix" key of C-t for all my rarely used
> xmonad commands, but if I need to actually send a C-t to the client I
> can still do so by pressing C-t twice.
> (I've tried searching around for an answer to this but my Google-fu
> seems to be lacking.)
> Cheers,
> -- 
> Bardur Arantsson
> <bardurREMOVE at THISscientician.net>
> - You don't exist. I've killed you. Jill Layton is dead.
> - Care for a little necrophilia?
>                                Sam Lowry and Jill Layton / Brazil

It is possible, but I don't think the code is written.  What you want to do is
construct a XKeyEvent and send it to the focused window with XSendEvent (bound
in Haskell as sendEvent).

Spencer Janssen

More information about the xmonad mailing list