[xmonad] Issue 610 in xmonad: Can't use GridSelect with non-us keyboard layout

codesite-noreply at google.com codesite-noreply at google.com
Sun Aug 2 13:45:31 UTC 2015


Status: New
Owner: ----

New issue 610 by mic.li... at gmail.com: Can't use GridSelect with non-us  
keyboard layout
https://code.google.com/p/xmonad/issues/detail?id=610

What steps will reproduce the problem?
1. Invoke `GS.gotoSelected GS.defaultGSConfig`
2. Switch to another keyboard layout.
3. Try to write anything and watch unresponsive screen.
4. Switch back to us keyboard layout.
5. Choose what you want.

Steps 1 and 2 may be swapped with the same result.

What is the expected output? What do you see instead?
- Grid select recognizes configured keys with any keyboard layout selected.

What version of the product are you using? On what operating system?
- xmonad-0.11-12.fc21.x86_64
- OS: Fedora 21

I'm using MATE keyboard layout applet to switch between layouts.

My keyboard settings look like this:
setxkbmap -print
xkb_keymap {
	xkb_keycodes  { include "evdev+aliases(qwerty)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete+ledscroll(group_lock)"	};
	xkb_symbols   {  
include "pc+us+cz(qwerty):2+inet(evdev)+group(switch)+group(shift_caps_toggle)"	 
};
	xkb_geometry  { include "microsoft(natural)"	};
};
setxkbmap -query
rules:      evdev
model:      microsoft4000
layout:     us,cz
variant:    ,qwerty
options:    grp_led:scroll,grp:switch,grp:shift_caps_toggle

Even with modified gs config to allow all possible modificator, it still  
fails for me:

     gsConfig :: HasColorizer a => GSConfig a
     gsConfig = defaultGSConfig
         { gs_cellheight = 40
         , gs_cellwidth = 100
         , gs_navigate = navigation'
         }
       where
         navigation' :: TwoD a (Maybe a)
         navigation' = makeXEventhandler
                     $ shadowWithKeymap navKeyMap navHandler

         navKeyMap = M.fromList (allowModifs modifs
               [ ((0, xK_Escape)  , cancel)
               , ((0, xK_Return)  , select)
               , ((0, xK_slash)   , substringSearch navigation')
               , ((0, xK_question), substringSearch navigation')
               , ((0, xK_Left)    , move (-1, 0)  >> navigation')
               , ((0, xK_h)       , move (-1, 0)  >> navigation')
               , ((0, xK_H)       , move (-1, 0)  >> navigation')
               , ((0, xK_Right)   , move (1 , 0)  >> navigation')
               , ((0, xK_l)       , move (1 , 0)  >> navigation')
               , ((0, xK_L)       , move (1 , 0)  >> navigation')
               , ((0, xK_Down)    , move (0 , 1)  >> navigation')
               , ((0, xK_j)       , move (0 , 1)  >> navigation')
               , ((0, xK_J)       , move (0 , 1)  >> navigation')
               , ((0, xK_Up)      , move (0 , -1) >> navigation')
               , ((0, xK_k)       , move (0 , -1) >> navigation')
               , ((0, xK_K)       , move (0 , -1) >> navigation')
               , ((0, xK_n)       , moveNext      >> navigation')
               , ((0, xK_N)       , moveNext      >> navigation')
               , ((0, xK_p)       , movePrev      >> navigation')
               , ((0, xK_P)       , movePrev      >> navigation')
               ]
             ++ allowModifs (drop 1 modifs)
               [ ((0, xK_Tab)        , moveNext >> navigation')
               , ((shiftMask, xK_Tab), moveNext >> navigation')
               ]
             )
         modifs :: [KeyMask]
         modifs = [ shiftMask, lockMask, mod1Mask, mod2Mask
                  , mod3Mask, mod4Mask, mod5Mask ]

         allowModifs :: [ KeyMask ] -> [((KeyMask, a), b)] -> [((KeyMask,  
a), b)]
         allowModifs mods keymap =
             [ ((m .|. o, k), a)
             | m <- map (foldl (.|.) 0) $ subsequences mods
             , ((o, k), a) <- keymap
             ]

         -- The navigation handler ignores unknown key symbols
         navHandler = const navigation'


-- 
You received this message because this project is configured to send all  
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings


More information about the xmonad mailing list