Bug 265705

Summary: changes in keyboardlayout by xmodmap are ignored
Product: [openSUSE] openSUSE 10.2 Reporter: Sebastian Zschernig <zscherni>
Component: X.OrgAssignee: Stefan Dirsch <sndirsch>
Status: RESOLVED DUPLICATE QA Contact: Stefan Dirsch <sndirsch>
Severity: Minor    
Priority: P5 - None CC: sbrabec, zscherni
Version: Final   
Target Milestone: ---   
Hardware: i686   
OS: openSUSE 10.2   
Whiteboard:
Found By: Customer Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: customised xmodmap-file

Description Sebastian Zschernig 2007-04-18 08:52:22 UTC
gnome2.16.1 (opensuse10.2)

xmodmap

Loading an own xmodmap-file by # xmodmap ·.Xmodmap.customised
takes not the whished effect.
Third level (fifth and sixs column in xmodmap-file, ISO_Level3_Shift) for j and n is ignored!! 
(In suse 10.0 even second level (third and fourth column, Mode_switch) wasn't possible to use for j and n.)

[
also the line
keycode 116 = ISO_Level3_Shift Super_R Multi_key
is always ignored - right win-key (116) still opens the main-menu, what I don't want!
via gnome-control-center or yast/sax I found no way to correct this bad behavior
]
Comment 1 Stefan Dirsch 2007-04-18 09:04:05 UTC
Could you attach your xmodmap file?
Comment 2 Sebastian Zschernig 2007-04-18 09:28:36 UTC
! 0x0100nmij nmij ist unicode-Zeichennummer (hexadezimal)
! Kombinierende Zeichen NACH Grundzeichen eingeben.
!

!!! dead-keys jedoch VOR dem Trägerzeichen eingeben !!!

!
! Achtung
! Bug verhindert Anpassung der rechten Fenstertaste
!
keycode   8 =
keycode   9 = Escape
keycode  10 = 1 exclam dead_breve exclamdown 0x01000306 exclamdown 
keycode  11 = 2 quotedbl dead_diaeresis twosuperior 0x01000308 twosuperior 
keycode  12 = 3 section dead_grave threesuperior 0x01000300 threesuperior 
keycode  13 = 4 dollar dead_caron currency 0x0100030c currency 
keycode  14 = 5 percent dead_acute 0x01002030 0x01000301 0x01002030 
keycode  15 = 6 ampersand dead_circumflex 0x01002260 0x01000302 0x01002260 
keycode  16 = 7 slash braceleft 0x010027e8
keycode  17 = 8 parenleft bracketleft 0x0100221e 
keycode  18 = 9 parenright bracketright 0x01002248 
keycode  19 = 0 equal braceright 0x010027e9
! keycode  20 = ssharp question backslash questiondown backslash questiondown
! keycode  20 = 0x010000df question backslash questiondown backslash questiondown
keycode  20 = ssharp question backslash questiondown 
keycode  21 = acute grave dead_doubleacute plusminus 0x0100030b plusminus 
keycode  22 = BackSpace Terminate_Server
keycode  23 = Tab ISO_Left_Tab
keycode  24 = q Q at Greek_OMEGA 
keycode  25 = w W lstroke Lstroke 
keycode  26 = e E EuroSign 0x01002107 
keycode  27 = r R dead_ogonek registered 0x01000328 registered 
keycode  28 = t T 0x01000326 trademark 
keycode  29 = z Z dead_cedilla 0x01000394 0x01000327 0x01000394 
keycode  30 = u U 0x01000337 0x01000338 
keycode  31 = i I idotless 0x0100222b 
keycode  32 = o O oslash Ooblique 
keycode  33 = p P Greek_pi paragraph 
! keycode  34 = udiaeresis Udiaeresis periodcentered multiply periodcentered multiply
! keycode  34 = 0x010000fc 0x010000dc periodcentered multiply periodcentered multiply
keycode  34 =  udiaeresis Udiaeresis periodcentered multiply
keycode  35 = plus asterisk asciitilde division 
keycode  36 = Return
keycode  37 = Control_L
keycode  38 = a A Greek_alpha 0x01000391 
keycode  39 = s S 0x01002211 0x0100221a 
keycode  40 = d D dead_abovedot Greek_delta 0x01000307 Greek_delta 
keycode  41 = f F dead_belowdot 0x01002640 0x01000323 0x01002640 
keycode  42 = g G dead_tilde 0x01002022 0x01000303 0x01002022 
keycode  43 = h H 0x01000331 0x01002665 0x01000331 0x01002665
! keycode  44 = j J 0x01002660 0x01002661
keycode  44 = j J 0x01000315 0x01002661 0x01000315 0x01002661
keycode  45 = k K downarrow uparrow 
keycode  46 = l L leftarrow rightarrow  
! keycode  47 = odiaeresis Odiaeresis oe OE oe OE
! keycode  47 = 0x010000f6 0x010000d6 oe OE oe OE
keycode  47 = odiaeresis Odiaeresis oe OE
! keycode  48 = adiaeresis Adiaeresis ae AE ae AE
! keycode  48 = 0x010000e4 0x010000c4 ae AE ae AE
keycode  48 = adiaeresis Adiaeresis ae AE 
keycode  49 = asciicircum degree dead_abovering notsign 0x0100030a notsign 
keycode  50 = Shift_L
keycode  51 = numbersign apostrophe 0x01002264 0x01002265 
keycode  52 = y Y guillemotleft Greek_gamma 
keycode  53 = x X guillemotright Greek_beta 
keycode  54 = c C cent copyright 
keycode  55 = v V 0x0100201a 0x01002023
keycode  56 = b B 0x01002018 0x01002019 
keycode  57 = n N 0x01002012 0x0100260e 0x01002012 0x0100260e
keycode  58 = m M mu 0x01002642 
keycode  59 = comma semicolon 0x0100201e 0x01002026
keycode  60 = period colon 0x0100201c 0x0100201d 
keycode  61 = minus underscore 0x01002011 0x010000ad 
keycode  62 = Shift_R
keycode  63 = KP_Multiply XF86_ClearGrab
keycode  64 = Alt_L Meta_L
keycode  65 = space 0x010000a0 0x010000a0 0x0100200b 
keycode  66 = Caps_Lock
keycode  67 = F1 XF86_Switch_VT_1
keycode  68 = F2 XF86_Switch_VT_2
keycode  69 = F3 XF86_Switch_VT_3
keycode  70 = F4 XF86_Switch_VT_4
keycode  71 = F5 XF86_Switch_VT_5
keycode  72 = F6 XF86_Switch_VT_6
keycode  73 = F7 XF86_Switch_VT_7
keycode  74 = F8 XF86_Switch_VT_8
keycode  75 = F9 XF86_Switch_VT_9
keycode  76 = F10 XF86_Switch_VT_10
keycode  77 = Num_Lock Pointer_EnableKeys
keycode  78 = Scroll_Lock
keycode  79 = KP_Home KP_7
keycode  80 = KP_Up KP_8
keycode  81 = KP_Prior KP_9
keycode  82 = KP_Subtract XF86_Prev_VMode
keycode  83 = KP_Left KP_4
keycode  84 = KP_Begin KP_5
keycode  85 = KP_Right KP_6
keycode  86 = KP_Add XF86_Next_VMode
keycode  87 = KP_End KP_1
keycode  88 = KP_Down KP_2
keycode  89 = KP_Next KP_3
keycode  90 = KP_Insert KP_0
keycode  91 = KP_Delete KP_Separator
keycode  92 =
keycode  93 = Mode_switch
! welche Taste?
keycode  94 = less greater bar brokenbar 
keycode  95 = F11 XF86_Switch_VT_11
keycode  96 = F12 XF86_Switch_VT_12
keycode  97 = Home
keycode  98 = Up
keycode  99 = Prior
keycode 100 = Left
keycode 101 =
keycode 102 = Right
keycode 103 = End
keycode 104 = Down
keycode 105 = Next
keycode 106 = Insert
keycode 107 = Delete
keycode 108 = KP_Enter
keycode 109 = Control_R Multi_key
keycode 110 = Pause Break
keycode 111 = Print Sys_Req
keycode 112 = KP_Divide XF86_Ungrab
! keycode 113 = ISO_Level3_Shift
keycode 113 = ISO_Level3_Shift
keycode 114 =
keycode 115 = Super_L
! keycode 116 = Super_R Multi_key
keycode 116 = ISO_Level3_Shift Super_R Multi_key
! keycode 116 = Delete
keycode 117 = Mode_switch Menu
keycode 118 =
keycode 119 =
keycode 120 =
keycode 121 =
keycode 122 =
keycode 123 =
keycode 124 = ISO_Level3_Shift
! welche Taste?
keycode 125 = NoSymbol Alt_L
keycode 126 = KP_Equal
keycode 127 = NoSymbol Super_L
keycode 128 = NoSymbol Hyper_L
keycode 129 =
keycode 130 =
keycode 131 =
keycode 132 =
keycode 133 =
keycode 134 =
keycode 135 =
keycode 136 =
keycode 137 =
keycode 138 =
keycode 139 =
keycode 140 =
keycode 141 =
keycode 142 =
keycode 143 =
keycode 144 =
keycode 145 =
keycode 146 =
keycode 147 =
keycode 148 =
keycode 149 =
keycode 150 =
keycode 151 =
keycode 152 =
keycode 153 =
keycode 154 =
keycode 155 =
keycode 156 = NoSymbol Meta_L
keycode 157 =
keycode 158 =
keycode 159 =
! keycode 160 = XF86XK_AudioMute XF86AudioMute
! keycode 160 = 0x1008ff12
keycode 160 = XF86AudioMute
keycode 161 =
keycode 162 =
keycode 163 =
keycode 164 =
keycode 165 =
keycode 166 =
keycode 167 =
keycode 168 =
keycode 169 =
keycode 170 =
keycode 171 =
keycode 172 =
keycode 173 =
! keycode 174 = 0x1008ff11 XF86AudioLowerVolume 
keycode 174 = XF86AudioLowerVolume 
keycode 175 =
! keycode 176 = 0x1008ff13 XF86AudioRaiseVolume
keycode 176 = XF86AudioRaiseVolume  
keycode 177 =
keycode 178 =
keycode 179 =
keycode 180 =
keycode 181 =
keycode 182 =
keycode 183 =
keycode 184 =
keycode 185 =
keycode 186 =
keycode 187 =
keycode 188 =
keycode 189 =
keycode 190 =
keycode 191 =
keycode 192 =
keycode 193 =
keycode 194 =
keycode 195 =
keycode 196 =
keycode 197 =
keycode 198 =
keycode 199 =
keycode 200 =
keycode 201 =
keycode 202 =
keycode 203 =
keycode 204 =
keycode 205 =
keycode 206 =
keycode 207 =
keycode 208 =
keycode 209 =
keycode 210 =
keycode 211 =
keycode 212 =
keycode 213 =
keycode 214 =
keycode 215 =
keycode 216 =
keycode 217 =
keycode 218 =
keycode 219 =
keycode 220 =
keycode 221 =
keycode 222 =
keycode 223 =
keycode 224 =
keycode 225 =
keycode 226 =
keycode 227 =
keycode 228 =
keycode 229 =
keycode 230 =
keycode 231 =
keycode 232 =
keycode 233 =
keycode 234 =
keycode 235 =
keycode 236 =
keycode 237 =
keycode 238 =
keycode 239 =
keycode 240 =
keycode 241 =
keycode 242 =
keycode 243 =
keycode 244 =
keycode 245 =
keycode 246 =
keycode 247 =
keycode 248 =
keycode 249 =
keycode 250 =
keycode 251 =
keycode 252 =
keycode 253 =
keycode 254 =
keycode 255 =
Comment 3 Stefan Dirsch 2007-04-18 09:48:16 UTC
# xmodmap xmodmap.txt 
xmodmap:  unknown command on line xmodmap.txt:25
xmodmap:  unknown command on line xmodmap.txt:41
xmodmap:  unknown command on line xmodmap.txt:43
xmodmap:  3 errors encountered, aborting.

25: questiondown
41: multiply
43: multiply

This looks strange. Could you explain? BTW, I would prefer file attachments instead of files pasted into the comments field.
Comment 4 Sebastian Zschernig 2007-04-18 12:03:22 UTC
I think it can only be a linebreak-problem (some lines to long for the comment-frame in bugzilla) - next time I'll send a file-attachement (but now I work at another (win-)PC, so I can't send it now)

(questiondown and multiply isn't anything strange - first aoun need for spanisch and second is similiar to a small x)
Comment 5 Stefan Dirsch 2007-04-20 20:46:05 UTC
Ok. So could you attach the file? Thanks.
Comment 6 Sebastian Zschernig 2007-04-21 10:10:25 UTC
Created attachment 132993 [details]
customised xmodmap-file
Comment 7 Stefan Dirsch 2007-04-28 10:05:43 UTC
I can't reproduce the problem with 2nd/3rd level of j/n specification. I don't have a keyboard with RWIN (keycode 116, Super_L?) and I don't know which key needs to be pressed to open the Gnome main menu. This seems to be a Gnome configuration issue. Stanislav, can you help here? What is the default to open Gnome main menu. How can it be changed?
Comment 8 Stefan Dirsch 2007-05-05 11:12:01 UTC
Stanislav, feedback by your side would be really appreciated.
Comment 9 Stanislav Brabec 2007-05-07 12:35:51 UTC
It might be a duplicate of bug 217044.

Please run gconf-editor, turn /apps/metacity/general/enable_windows_keys off and try again.
Comment 11 Stefan Dirsch 2007-05-07 19:05:17 UTC
Stanislav, does this information help?
Comment 12 Stanislav Brabec 2007-05-09 14:02:51 UTC
It's strange. Can you confirm, that the menu opened for you is the GNOME main menu (the same as from the panel)? Did you run gconf-editor from the user account?  (or as root, but using "Save as default" from the context menu)

Turning off /apps/metacity/general/enable_windows_keys should immediately disable binding of both Windows keys to GNOME Menu in GNOME. I have tested it just now and it works for me.

This binding is a SuSE-specific feature. And yes, it ignores keymap. See bug 217044 for more.

Only "Menu" key binding is defined on application level.
Comment 13 Sebastian Zschernig 2007-05-10 14:15:31 UTC
Yes, it is the same menu (gnome-main-menu from the panel).

As root I did
# gconf-editor
chose
apps-metacity-general
unchecked checkbox behind "enable_windows_keys"
closed gconf-editor-window

(wondering about the fact, that there is no "save chenges"/"save settings" question/button... but opening gconf-editor next time the setting was remembered (still unchecked))

(I didn't find any context menu (to choose "save as default") - 
o.k. - now I found out - right click on that entry...)

But still win-keys open gnome-menu!!

Now I did as user - succes! (strange - but I'm happy now)

So - the whole thing has a solution, but it is not easy to find out.


Isn't it possible to make gnome capable to read an X-keyboard-input like Super_L (or something else, which is provided by xmodmap) and to open menu then?
So everything could be done with xmodmap. e.g. I could put lines

! keycode 113 = ISO_Level3_Shift
keycode 113 = Mode_switch
! keycode 115 = Super_L 
keycode 115 = Super_L Multi_key
! keycode 116 = Super_R Multi_key
keycode 116 = ISO_Level3_Shift Super_R 

to my .Xmodmap-file 
and (if connected Super_L and Super_R with "open gnome-menu") left-win-key and shift+right-win-key would open gnome menu, while Alt-Gr would switch Mode and right-win-key would work as level-3-chooser as I want.


(also wondering about the fact, there is no possibility to choose either left or right win-key only in gconf-editor)

(also possibilities to choose alt- and win-key-behavior via gnome-control-center and via yast are very strange and seems to conflict extern and even *intern*)
Comment 14 Stefan Dirsch 2007-05-10 14:25:50 UTC
Stanislav, is this now a Gnome bug?
Comment 15 Stefan Dirsch 2007-05-12 15:57:28 UTC
Maybe a duplicate of bug #217044, as you mentioned before?
Comment 16 Sebastian Zschernig 2007-05-15 06:12:56 UTC
At least there is still the strange behavior of j and n [maybe only in german opensuse (?) becaus j means yes and n no?]
Comment 17 Stefan Dirsch 2007-05-22 11:07:43 UTC
Stanislav, could you comment on my question in comment #14?
Comment 18 Stanislav Brabec 2007-05-22 12:06:52 UTC
Yes, launching the menu described in comment #13 is the GNOME feature, which is also considered as a bug #217044 by others, especially because there is no GUI to disable it.

If gconf-editor is started by root, it changes only settings for root. Other users are not affected. The only exception are two items in the context menu of the key: "Save as default" and "Save as mandatory". These two items set the value as default resp. as mandatory immutable setting for all users (but users may need to relogin or reload gconfd to take the new value into effect).


The problem of j and n is not related to GNOME.
Comment 19 Stefan Dirsch 2007-05-22 12:39:04 UTC
Ok. Closing as duplicate. I've already written that I cannot reproduce the j/n issue.

*** This bug has been marked as a duplicate of bug 217044 ***
Comment 20 Sebastian Zschernig 2007-11-24 12:26:08 UTC
Just tried out a little more:

gnome2.16.1 (opensuse10.2)

Loading an own xmodmap-file by 
# xmodmap xmodmap.customised
takes not the whished effect for some (at least 4) keys.

Fifth and sixs column in xmodmap-file (see example-lines) [that is "third level" ISO_Level3_Shift] for key 9 (Esc), 44 (j), 57 (n) and 65 (space) is ignored.

example lines:
keycode   9 = Escape slash backslash slash backslash slash
keycode  44 = j J backslash slash backslash slash
keycode  57 = n N backslash slash backslash slash
keycode  65 = space 0x010000a0 0x010000a0 0x0100200b 0x01002002 0x01002003 

Third and fourth column ["second level" Mode_switch] are interpreted for all these 4 keys. (In SuSE 10.0 even second level wasn't were ignored for j and n.)

For Esc it's no problem, I also can live with j and n (but why?), but I really would like to use third level of space to have easy access to n-space and m-space.
Comment 21 Stefan Dirsch 2007-11-24 23:23:33 UTC
This looks again like the well known xkb/xmodmap incompatibility. I'm afraid I can't help here. For the average user this is a minor issue IMO.
Comment 22 Stefan Dirsch 2007-11-25 16:08:22 UTC

*** This bug has been marked as a duplicate of bug 281965 ***