- main problem of slowness of kxkb is function XkbGetKeyboardByName() function  which takes
     about 240 (min 200, max 360) ms on my K6-2 500
     that is about 90% of total time for switching
     Simplest way to bypass this - to work only with groups - not layouts :(
     Though there seems to be the way using several Xkb functions to bypass XkbGetKeyboardByName()
     with the help of next functions:
    XkbGetKeyboard()/XkbGetKeyMap() + XkbSetKeyMap() or XkbChangeMap()

- honor "hidden" variants in layouts
- read rules with XkbRF... functions instead of reading/parsing files 
    (this does not help with variants)

- do not change xkb options on each layout change - we just have to set up them once
    on start of kxkb or when kxkb settings changed

- disable "xkb options" tab on disabling kxkb or call it separately

- code for reading variants from config should be common - now it's duplicated in
     kcmlayout.cpp and kxkb.cpp

- allow to choose default group (for xkb) - needs some GUI redesign for primary/seconday layout

- it seems like with qt>=2.3.0 'encoding' parameter is not used. Can we remove it?

- setting up own layout (e.g. in ~/.layouts/) - using "-I" option of setxkbmap?

- allowing non-typical layouts (e.g. "ua+dvorak")
-- before this we have to implement error checking (check exit of setxkbmap)

- allow to choose flag, label... (??)
