[xmonad] Issue 295 in xmonad: X.A.Submap doesn't work in russian layout.

codesite-noreply at google.com codesite-noreply at google.com
Fri May 22 10:28:29 EDT 2009

Status: New
Owner: ----

New issue 295 by alexey.skladnoy: X.A.Submap doesn't work in russian layout.

Submap actions don't work when in russian layout. In english
layout it does work without problem. Standard xmonad key bindings
work in both layouts. I'm using version from darcs. 0.8 is
affected to AFAIR.

Layout are set up with XCB.

  $ setxkbmap -model pc104 -layout us,ru -variant basic,winkeys
  $ setxkbmap -option -option

What is the expected output? What do you see instead?

Working combinations, of cource.

Please provide any additional information below.

Below is snippet from X.A.Submap. Quick research shown that
keymasks m and m' has bit (1<<13) set when russian layout chosen.
I have no idea how to interpert it.

> -- | Like 'submap', but executes a default action if the key did not  
> match.
> submapDefault :: X () -> M.Map (KeyMask, KeySym) (X ()) -> X ()
> submapDefault def keys = do
>      XConf { theRoot = root, display = d } <- ask

>      io $ grabKeyboard d root False grabModeAsync grabModeAsync currentTime

>      (m, s) <- io $ allocaXEvent $ \p -> fix $ \nextkey -> do
>          maskEvent d keyPressMask p
>          KeyEvent { ev_keycode = code, ev_state = m } <- getEvent p
>          keysym <- keycodeToKeysym d code 0
>          if isModifierKey keysym
>              then nextkey
>              else return (m, keysym)

>      m' <- cleanMask m

>      maybe def id (M.lookup (m', s) keys)

>      io $ ungrabKeyboard d currentTime

You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:

More information about the xmonad mailing list