public inbox for cygwin-xfree@sourceware.org
help / color / mirror / Atom feed
* Re: AltGr key mostly fires an additional CONTROL key
       [not found] <006301cc4fb3$2696d060$73c47120$@de>
@ 2011-08-01 14:57 ` Jon TURNEY
       [not found]   ` <000001cc5085$6b711fb0$42535f10$@de>
  0 siblings, 1 reply; 13+ messages in thread
From: Jon TURNEY @ 2011-08-01 14:57 UTC (permalink / raw)
  To: cygwin-xfree

On 31/07/2011 19:53, Paul Maier wrote:
> Hi Jon,
>
> another issue with the keyboard on a Lenovo T60 (Windows XP) and
> Lenovo T510 (Windows 7).
>
> The AltGr key mostly fires and locks (!) an additional CONTROL key press.
> This makes the AltGr key basically inusable (and a xmodmap workaround is not
> possible).
>
> The AltGr key is a modifier key e. g. needed to get the @ sign (AltGr + Q) on a
> German keyboard.
>
>
> This is, what I found out on this issue:
> ----------------------------------------
>
> This is the output of xev when that occured. I pressed AltGR+Q once and
> released it again.
> Then (without any other modifier key pressed) I hit once a normal A.
> As you can see, instead of a @ I get a CONTROL-@ (= control character 00) and
> instead of an a I get a CONTROL-A (= control character 01).
> xev logs out very clear that there is an additionally (unwanted) KeyPress for
> key 37 = CONTROL_L.
> There is no KeyRelease for the keycode 37 = CONTROL_L in the log:
>
>
> KeyPress event, serial 23, synthetic NO, window 0xa00001,
>      root 0x101, subw 0xa00002, time 32794468, (47,57), root:(73,99),
>      state 0x10, keycode 113 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
>      XLookupString gives 0 bytes:
>      XFilterEvent returns: False
>
> KeyPress event, serial 23, synthetic NO, window 0xa00001,
>      root 0x101, subw 0xa00002, time 32795046, (47,57), root:(73,99),
>      state 0x90, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
>      XLookupString gives 0 bytes:
>      XFilterEvent returns: False
>
> KeyPress event, serial 23, synthetic NO, window 0xa00001,
>      root 0x101, subw 0xa00002, time 32795531, (47,57), root:(73,99),
>      state 0x94, keycode 24 (keysym 0x40, at), same_screen YES,
>      XLookupString gives 1 bytes: (00) ""
>      XFilterEvent returns: False
>
> KeyRelease event, serial 23, synthetic NO, window 0xa00001,
>      root 0x101, subw 0xa00002, time 32795640, (47,57), root:(73,99),
>      state 0x94, keycode 24 (keysym 0x40, at), same_screen YES,
>      XLookupString gives 1 bytes: (00) ""
>      XFilterEvent returns: False
>
> KeyRelease event, serial 23, synthetic NO, window 0xa00001,
>      root 0x101, subw 0xa00002, time 32798390, (47,57), root:(73,99),
>      state 0x94, keycode 113 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
>      XLookupString gives 0 bytes:
>      XFilterEvent returns: False
>
> KeyPress event, serial 23, synthetic NO, window 0xa00001,
>      root 0x101, subw 0xa00002, time 32799890, (47,57), root:(73,99),
>      state 0x14, keycode 38 (keysym 0x61, a), same_screen YES,
>      XLookupString gives 1 bytes: (01) ""
>      XFilterEvent returns: False
>
> KeyRelease event, serial 23, synthetic NO, window 0xa00001,
>      root 0x101, subw 0xa00002, time 32800015, (47,57), root:(73,99),
>      state 0x14, keycode 38 (keysym 0x61, a), same_screen YES,
>      XLookupString gives 1 bytes: (01) ""
>      XFilterEvent returns: False
>
>
> The ISO_Level3_Shift without the additional Control_L (left control key) would
> be the expected behaviour.
> It happens quite often (but I couldn't find the rule behind), pressing the
> AltGr ONCE also LOCKS the Control_L key in a way that if you later press a
> normal letter, say: a normal c, you get a CONTROL-C into the application.
> The Control_L (left control key) stays locked until you press the real CONTROL
> key.

>
> Meanwhile XWin.0.log logs out this:
>
> [ 32804,781] winSendKeyEvent: dwKey: 105, fDown: 1, nEvents 2
> [ 32805,984] winTranslateKey: wParam 00000011 lParam e01d0001
> [ 32805,984] winSendKeyEvent: dwKey: 29, fDown: 0, nEvents 2
> [ 32805,984] winTranslateKey: wParam 00000012 lParam c1380001
> [ 32805,984] winSendKeyEvent: dwKey: 105, fDown: 0, nEvents 2
> [ 32809,859] winTranslateKey: wParam 00000041 lParam 001e0001
> [ 32809,859] winSendKeyEvent: dwKey: 30, fDown: 1, nEvents 2
> [ 32809,968] winTranslateKey: wParam 00000041 lParam c01e0001
> [ 32809,968] winSendKeyEvent: dwKey: 30, fDown: 0, nEvents 2
>
> Key 29 seems to be the stuck control key.
> To emphasize again, I didn't press the control key on my keyboard.
> I just pressed AltGr Q (in the intention to get a @), released it again, then I
> pressed "a".

Thanks for the detailed report.

The actual issue here is that Windows apparently inserts a fake Ctrl-L 
keypress/release when AltGr is pressed/released (except when the keyboard 
layout is US).  I have never found any documentation of this behavior, and 
I've no idea why it does this.

There is some code in the X server which attempts to detect and discard these 
fake keypress/release events, but it not working reliably for some people has 
been reported a few times, but I've never been able to reproduce the problem 
or get to the bottom of what causes it.

If you are willing to help, I've put together a test build with some extra 
debugging at [1].  If you could run that with '-logverbose 3' as before and 
attach the output, that would be helpful.

[1] ftp://cygwin.com/pub/cygwinx/XWin.20110801-git-2d9f9305cb559907.exe.bz2

-- 
Jon TURNEY
Volunteer Cygwin/X X Server maintainer

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: AW: AltGr key mostly fires an additional CONTROL key
       [not found]   ` <000001cc5085$6b711fb0$42535f10$@de>
@ 2011-08-03 13:15     ` Jon TURNEY
  2011-08-04  2:22       ` AW: " Paul Maier
  2011-10-03 10:16       ` AW: AW: AltGr key mostly fires an additional CONTROL key Paul Maier
  0 siblings, 2 replies; 13+ messages in thread
From: Jon TURNEY @ 2011-08-03 13:15 UTC (permalink / raw)
  To: 'cygwin-xfree'; +Cc: Paul Maier


>> The actual issue here is that Windows apparently inserts a fake Ctrl-L
>> keypress/release when AltGr is pressed/released (except when the keyboard
>> layout is US).  I have never found any documentation of this behavior, and
>> I've no idea why it does this.
>>
>> There is some code in the X server which attempts to detect and discard these
>> fake keypress/release events, but it not working reliably for some people has
>> been reported a few times, but I've never been able to reproduce the problem
>> or get to the bottom of what causes it.
>>
>> If you are willing to help, I've put together a test build with some extra
>> debugging at [1].  If you could run that with '-logverbose 3' as before and
>> attach the output, that would be helpful.
>>
>> [1] ftp://cygwin.com/pub/cygwinx/XWin.20110801-git-2d9f9305cb559907.exe.bz2
>>
> no problem - here we go:
> The logs are attached.
>
> This is what I did:
>
> 1. /bin/startxwin -- XWin.20110801-git-2d9f9305cb559907.exe -emulate3buttons 100 -logverbose 3
> 2. It took me more attempts than usual to reproduce it, therefore the interesting part will be at the end of the log.
> 3. I manually killed the X-Server and took the log.
> 4. XWin.0.log is the full log of the session.
> 5. xev.txt: I have taken only the "interesting" part.
>
> My session in detail:
>
> I pressed several times AltGr and Q, nothing special, I get "@" (it doesn't happen always - just then and when).
> I hold down AltGr for 2 seconds ... I play around.
> Then I get into the bug:
> I press AltGr and Q, then release both keys: I get CHAR 00.
> I just hit key A and instead of "a" I get CHAR 01 = CONTROL-A.
> I just hit key C and instead of "c" I get CHAR 03 = CONTROL-C.
> Then I (first time) hit the real CONTROL key to unlock that situation. In the xev-log you see only(!) a ReleaseEvent at that point.
> Then I press AltGr and Q again and I get CHAR HEX 40 = letter "@".
> I hit key A and get "a".

Thanks for the logs, that was very useful.

I still can't reproduce this (although holding AltGr down to make it 
autorepeat seems the best way to try to do that).  It is a timing issue with 
the keypress/release messages so it might be sensitive to CPU speed, or 
perhaps you have some software installed which looks at keypress/release 
messages and changes the timing?

I've had a go at fixing it.  Can you please try the build I've uploaded at [1] 
and see if it still shows the problem for you?

[1] ftp://cygwin.com/pub/cygwinx/XWin.20110803-git-a493c0465e56ce0b.exe.bz2

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/


^ permalink raw reply	[flat|nested] 13+ messages in thread

* AW: AW: AltGr key mostly fires an additional CONTROL key
  2011-08-03 13:15     ` AW: " Jon TURNEY
@ 2011-08-04  2:22       ` Paul Maier
  2011-08-08 15:32         ` 'de' keyboard layout issues (Re: AW: AW: AltGr key mostly fires an additional CONTROL key) Jon TURNEY
  2011-10-03 10:16       ` AW: AW: AltGr key mostly fires an additional CONTROL key Paul Maier
  1 sibling, 1 reply; 13+ messages in thread
From: Paul Maier @ 2011-08-04  2:22 UTC (permalink / raw)
  To: 'cygwin-xfree'; +Cc: 'Jon TURNEY'

[-- Attachment #1: Type: text/plain, Size: 2839 bytes --]

> Thanks for the logs, that was very useful.
> 
> I still can't reproduce this (although holding AltGr down to make it
> autorepeat seems the best way to try to do that).  It is a timing issue with
> the keypress/release messages so it might be sensitive to CPU speed, or
> perhaps you have some software installed which looks at keypress/release
> messages and changes the timing?
> 
> I've had a go at fixing it.  Can you please try the build I've uploaded at [1]
> and see if it still shows the problem for you?
> 
> [1] ftp://cygwin.com/pub/cygwinx/XWin.20110803-git-a493c0465e56ce0b.exe.bz2


Hi Jon,

works fine for me. I Played around quite a while, but the CONTROL-locking didn't occur any more. Yippie!
Is it ok, if I leave the hotfix file permanently in on my PC (I mean, did you base it on a recent XWin released version with just my
bug fix in - or is there other experimental stuff inside?), then I'll use it automatically during work and I can let you know in
case of problems.

I wouldn't have started a thread with the following, but since we have already started looking at this keyboard, maybe you are
interested in some of these:

Tilde sign (~) should be a normal (not a blind) key.
  In Windows I hit AltGr+"+" to get ~, in XWin I need to type AltGr+"+" then space to get a ~.
  See attachment for the initial XWin xmodmap -pke table.
  Possible xmodmap correction (works fine):
  keycode  35 = plus asterisk plus asterisk asciitilde

Euro Currency sign doesn't work.
  I know - it's not a latin1 character, but together with CP1252 this xmodmap correction works like Windows:
  keycode  26 = e E e E 0x0080

ALT+Space produces a NBSP character (HEX A0) in Windows, but not in XWin.
  xmodmap correction is unfortunately not possible, because the xmodmap setting on ISO_Level3_Shift+Space is just thrown away:
  Something like
  keycode  65 = space NoSymbol space NoSymbol nobreakspace
  or
  keycode  65 = space space space space nobreakspace
  doesn't work: it's discarded and the setting is not shown on a "xmodmap -pke".
  So I put nobreakspace to the fifth place of another key - there it works.
  That would be good if key 65 (space key) would accept above xmodmap setting or have it initially.

Number block is not working.
  See attachment for the initial XWin xmodmap -pke table (all these KP_* settings look good at the first sight, but the keys don't
produce numbers).
  Possible xmodmap correction (works fine):
  keycode  63 = asterisk asterisk
  keycode  79 = 7 7
  keycode  80 = 8 8
  keycode  81 = 9 9
  keycode  82 = minus minus
  keycode  83 = 4 4
  keycode  84 = 5 5
  keycode  85 = 6 6
  keycode  86 = plus plus
  keycode  87 = 1 1
  keycode  88 = 2 2
  keycode  89 = 3 3
  keycode  90 = 0 0
  keycode  91 = period period
  keycode 108 = Return Return
  keycode 112 = slash slash

Regards,
  Paul


[-- Attachment #2: xmodmap.txt --]
[-- Type: text/plain, Size: 9170 bytes --]

keycode   8 =
keycode   9 = Escape NoSymbol Escape
keycode  10 = 1 exclam 1 exclam onesuperior exclamdown onesuperior
keycode  11 = 2 quotedbl 2 quotedbl twosuperior oneeighth twosuperior
keycode  12 = 3 section 3 section threesuperior sterling threesuperior
keycode  13 = 4 dollar 4 dollar onequarter currency onequarter
keycode  14 = 5 percent 5 percent onehalf threeeighths onehalf
keycode  15 = 6 ampersand 6 ampersand notsign fiveeighths notsign
keycode  16 = 7 slash 7 slash braceleft seveneighths braceleft
keycode  17 = 8 parenleft 8 parenleft bracketleft trademark bracketleft
keycode  18 = 9 parenright 9 parenright bracketright plusminus bracketright
keycode  19 = 0 equal 0 equal braceright degree braceright
keycode  20 = ssharp question ssharp question backslash questiondown U1E9E
keycode  21 = dead_acute dead_grave dead_acute dead_grave dead_cedilla dead_ogonek dead_cedilla
keycode  22 = BackSpace NoSymbol BackSpace
keycode  23 = Tab ISO_Left_Tab Tab ISO_Left_Tab
keycode  24 = q Q q Q at Greek_OMEGA at
keycode  25 = w W w W lstroke Lstroke lstroke
keycode  26 = e E e E EuroSign EuroSign EuroSign
keycode  27 = r R r R paragraph registered paragraph
keycode  28 = t T t T tslash Tslash tslash
keycode  29 = z Z z Z leftarrow yen leftarrow
keycode  30 = u U u U downarrow uparrow downarrow
keycode  31 = i I i I rightarrow idotless rightarrow
keycode  32 = o O o O oslash Oslash oslash
keycode  33 = p P p P thorn THORN thorn
keycode  34 = udiaeresis Udiaeresis udiaeresis Udiaeresis dead_diaeresis dead_abovering dead_diaeresis
keycode  35 = plus asterisk plus asterisk dead_tilde dead_macron dead_tilde
keycode  36 = Return NoSymbol Return
keycode  37 = Control_L NoSymbol Control_L
keycode  38 = a A a A ae AE ae
keycode  39 = s S s S U017F U1E9E U017F
keycode  40 = d D d D eth ETH eth
keycode  41 = f F f F dstroke ordfeminine dstroke
keycode  42 = g G g G eng ENG eng
keycode  43 = h H h H hstroke Hstroke hstroke
keycode  44 = j J j J dead_belowdot dead_abovedot dead_belowdot
keycode  45 = k K k K kra ampersand kra
keycode  46 = l L l L lstroke Lstroke lstroke
keycode  47 = odiaeresis Odiaeresis odiaeresis Odiaeresis dead_doubleacute dead_belowdot dead_doubleacute
keycode  48 = adiaeresis Adiaeresis adiaeresis Adiaeresis dead_circumflex dead_caron dead_circumflex
keycode  49 = dead_circumflex degree dead_circumflex degree U2032 U2033 U2032
keycode  50 = Shift_L NoSymbol Shift_L
keycode  51 = numbersign apostrophe numbersign apostrophe rightsinglequotemark dead_breve rightsinglequotemark
keycode  52 = y Y y Y guillemotright U203A guillemotright
keycode  53 = x X x X guillemotleft U2039 guillemotleft
keycode  54 = c C c C cent copyright cent
keycode  55 = v V v V doublelowquotemark singlelowquotemark doublelowquotemark
keycode  56 = b B b B leftdoublequotemark leftsinglequotemark leftdoublequotemark
keycode  57 = n N n N rightdoublequotemark rightsinglequotemark rightdoublequotemark
keycode  58 = m M m M mu masculine mu
keycode  59 = comma semicolon comma semicolon periodcentered multiply periodcentered
keycode  60 = period colon period colon U2026 division U2026
keycode  61 = minus underscore minus underscore endash emdash endash
keycode  62 = Shift_R NoSymbol Shift_R
keycode  63 = KP_Multiply XF86_ClearGrab KP_Multiply XF86_ClearGrab
keycode  64 = Alt_L Meta_L Alt_L Meta_L
keycode  65 = space NoSymbol space
keycode  66 = Caps_Lock NoSymbol Caps_Lock
keycode  67 = F1 XF86_Switch_VT_1 F1 XF86_Switch_VT_1
keycode  68 = F2 XF86_Switch_VT_2 F2 XF86_Switch_VT_2
keycode  69 = F3 XF86_Switch_VT_3 F3 XF86_Switch_VT_3
keycode  70 = F4 XF86_Switch_VT_4 F4 XF86_Switch_VT_4
keycode  71 = F5 XF86_Switch_VT_5 F5 XF86_Switch_VT_5
keycode  72 = F6 XF86_Switch_VT_6 F6 XF86_Switch_VT_6
keycode  73 = F7 XF86_Switch_VT_7 F7 XF86_Switch_VT_7
keycode  74 = F8 XF86_Switch_VT_8 F8 XF86_Switch_VT_8
keycode  75 = F9 XF86_Switch_VT_9 F9 XF86_Switch_VT_9
keycode  76 = F10 XF86_Switch_VT_10 F10 XF86_Switch_VT_10
keycode  77 = Num_Lock Pointer_EnableKeys Num_Lock Pointer_EnableKeys
keycode  78 = Scroll_Lock NoSymbol Scroll_Lock
keycode  79 = KP_Home KP_7 KP_Home KP_7
keycode  80 = KP_Up KP_8 KP_Up KP_8
keycode  81 = KP_Prior KP_9 KP_Prior KP_9
keycode  82 = KP_Subtract XF86_Prev_VMode KP_Subtract XF86_Prev_VMode
keycode  83 = KP_Left KP_4 KP_Left KP_4
keycode  84 = KP_Begin KP_5 KP_Begin KP_5
keycode  85 = KP_Right KP_6 KP_Right KP_6
keycode  86 = KP_Add XF86_Next_VMode KP_Add XF86_Next_VMode
keycode  87 = KP_End KP_1 KP_End KP_1
keycode  88 = KP_Down KP_2 KP_Down KP_2
keycode  89 = KP_Next KP_3 KP_Next KP_3
keycode  90 = KP_Insert KP_0 KP_Insert KP_0
keycode  91 = KP_Delete KP_Separator KP_Delete KP_Separator
keycode  92 =
keycode  93 = Mode_switch NoSymbol Mode_switch
keycode  94 = less greater less greater bar brokenbar bar
keycode  95 = F11 XF86_Switch_VT_11 F11 XF86_Switch_VT_11
keycode  96 = F12 XF86_Switch_VT_12 F12 XF86_Switch_VT_12
keycode  97 = Home NoSymbol Home
keycode  98 = Up NoSymbol Up
keycode  99 = Prior NoSymbol Prior
keycode 100 = Left NoSymbol Left
keycode 101 =
keycode 102 = Right NoSymbol Right
keycode 103 = End NoSymbol End
keycode 104 = Down NoSymbol Down
keycode 105 = Next NoSymbol Next
keycode 106 = Insert NoSymbol Insert
keycode 107 = Delete NoSymbol Delete
keycode 108 = KP_Enter NoSymbol KP_Enter
keycode 109 = Control_R NoSymbol Control_R
keycode 110 = Pause Break Pause Break
keycode 111 = Print Sys_Req Print Sys_Req
keycode 112 = KP_Divide XF86_Ungrab KP_Divide XF86_Ungrab
keycode 113 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
keycode 114 =
keycode 115 = Super_L NoSymbol Super_L
keycode 116 = Super_R NoSymbol Super_R
keycode 117 = Menu NoSymbol Menu
keycode 118 =
keycode 119 =
keycode 120 =
keycode 121 =
keycode 122 =
keycode 123 =
keycode 124 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
keycode 125 = NoSymbol Alt_L NoSymbol Alt_L
keycode 126 = KP_Equal NoSymbol KP_Equal
keycode 127 = NoSymbol Super_L NoSymbol Super_L
keycode 128 = NoSymbol Hyper_L NoSymbol Hyper_L
keycode 129 = XF86AudioMedia NoSymbol XF86AudioMedia
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 = XF86AudioPrev NoSymbol XF86AudioPrev
keycode 145 =
keycode 146 =
keycode 147 =
keycode 148 =
keycode 149 =
keycode 150 = XF86Sleep NoSymbol XF86Sleep
keycode 151 =
keycode 152 =
keycode 153 = XF86AudioNext NoSymbol XF86AudioNext
keycode 154 =
keycode 155 =
keycode 156 = NoSymbol Meta_L NoSymbol Meta_L
keycode 157 =
keycode 158 =
keycode 159 =
keycode 160 = XF86AudioMute NoSymbol XF86AudioMute
keycode 161 = XF86Calculator NoSymbol XF86Calculator
keycode 162 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause
keycode 163 =
keycode 164 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject
keycode 165 =
keycode 166 =
keycode 167 =
keycode 168 =
keycode 169 =
keycode 170 = XF86Eject NoSymbol XF86Eject
keycode 171 =
keycode 172 =
keycode 173 =
keycode 174 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume
keycode 175 =
keycode 176 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume
keycode 177 =
keycode 178 = XF86WWW NoSymbol XF86WWW
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 = XF86Eject NoSymbol XF86Eject
keycode 205 =
keycode 206 =
keycode 207 =
keycode 208 =
keycode 209 =
keycode 210 =
keycode 211 =
keycode 212 =
keycode 213 =
keycode 214 = XF86Display NoSymbol XF86Display
keycode 215 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff
keycode 216 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown
keycode 217 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp
keycode 218 =
keycode 219 =
keycode 220 =
keycode 221 =
keycode 222 = XF86PowerOff NoSymbol XF86PowerOff
keycode 223 = XF86Standby NoSymbol XF86Standby
keycode 224 =
keycode 225 =
keycode 226 =
keycode 227 = XF86WakeUp NoSymbol XF86WakeUp
keycode 228 =
keycode 229 = XF86Search NoSymbol XF86Search
keycode 230 = XF86Favorites NoSymbol XF86Favorites
keycode 231 = XF86Reload NoSymbol XF86Reload
keycode 232 = XF86Stop NoSymbol XF86Stop
keycode 233 = XF86Forward NoSymbol XF86Forward
keycode 234 = XF86Back NoSymbol XF86Back
keycode 235 = XF86MyComputer NoSymbol XF86MyComputer
keycode 236 = XF86Mail NoSymbol XF86Mail
keycode 237 = XF86AudioMedia NoSymbol XF86AudioMedia
keycode 238 =
keycode 239 =
keycode 240 =
keycode 241 =
keycode 242 =
keycode 243 =
keycode 244 = XF86Battery NoSymbol XF86Battery
keycode 245 =
keycode 246 = XF86WLAN NoSymbol XF86WLAN
keycode 247 =
keycode 248 =
keycode 249 =
keycode 250 =
keycode 251 =
keycode 252 =
keycode 253 =
keycode 254 =
keycode 255 =


[-- Attachment #3: Type: text/plain, Size: 223 bytes --]

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* 'de' keyboard layout issues (Re: AW: AW: AltGr key mostly fires an additional CONTROL key)
  2011-08-04  2:22       ` AW: " Paul Maier
@ 2011-08-08 15:32         ` Jon TURNEY
  2011-08-08 23:17           ` AW: " Paul Maier
  0 siblings, 1 reply; 13+ messages in thread
From: Jon TURNEY @ 2011-08-08 15:32 UTC (permalink / raw)
  To: cygwin-xfree; +Cc: Paul Maier

On 04/08/2011 03:21, Paul Maier wrote:
>> Thanks for the logs, that was very useful.
>>
>> I still can't reproduce this (although holding AltGr down to make it
>> autorepeat seems the best way to try to do that).  It is a timing issue with
>> the keypress/release messages so it might be sensitive to CPU speed, or
>> perhaps you have some software installed which looks at keypress/release
>> messages and changes the timing?
>>
>> I've had a go at fixing it.  Can you please try the build I've uploaded at [1]
>> and see if it still shows the problem for you?
>>
>> [1] ftp://cygwin.com/pub/cygwinx/XWin.20110803-git-a493c0465e56ce0b.exe.bz2
>
>
> Hi Jon,
>
> works fine for me. I Played around quite a while, but the CONTROL-locking didn't occur any more. Yippie!
> Is it ok, if I leave the hotfix file permanently in on my PC (I mean, did you base it on a recent XWin released version with just my
> bug fix in - or is there other experimental stuff inside?), then I'll use it automatically during work and I can let you know in
> case of problems.

That particular build is 1.10.3-1 plus the patch for your issue.

> I wouldn't have started a thread with the following, but since we have already started looking at this keyboard, maybe you are
> interested in some of these:

A new thread would have been fine :-)

I am assuming you are using the 'de' keyboard layout:

> [ 29391,484] (--) Windows keyboard layout: "00000407" (00000407) "Deutsch", type 4
> [ 29391,484] (--) Found matching XKB configuration "German (Germany)"
> [ 29391,484] (--) Model = "pc105" Layout = "de" Variant = "none" Options = "none"
> [ 29391,484] Rules = "base" Model = "pc105" Layout = "de" Variant = "none" Options = "none"

> Tilde sign (~) should be a normal (not a blind) key.
>    In Windows I hit AltGr+"+" to get ~, in XWin I need to type AltGr+"+" then space to get a ~.
>    See attachment for the initial XWin xmodmap -pke table.
>    Possible xmodmap correction (works fine):
>    keycode  35 = plus asterisk plus asterisk asciitilde

This is a can of worms I don't want to open :-)

At the moment, in the 'de' layout, the tilde deadkey will add a macron 
diacritic, e.g. AltGr + "+" + a = ã.

I really lack the expertise to determine if this is a bug in xkeyboard-config 
(if this german keyboard behavior is something no german keyboard user would 
ever expect or want)

The xkb configurations we use come from the xkeyboard-config project, and 
aren't trying to be identical to Windows, but to conform to the appropriate 
national standards and user expectations.

However, I can see in the case of XWin this is problematic, as it will be 
confusing to switch between X and normal Windows windows which have different 
keyboard behavior.

As a workaround, you might find specifying -xkbvariant nodeadkeys, 
deadgraveacute or deadacute helpful.

> Euro Currency sign doesn't work.
>    I know - it's not a latin1 character, but together with CP1252 this xmodmap correction works like Windows:
>    keycode  26 = e E e E 0x0080

I guess this is another symptom of Xlib not understanding the de_DE.CP1252 locale.

This works fine in the de_DE.UTF-8 locale.

I suppose I could patch Xlib to fix this, but I'd rather encourage people to 
use UTF-8 locales.

> ALT+Space produces a NBSP character (HEX A0) in Windows, but not in XWin.
>    xmodmap correction is unfortunately not possible, because the xmodmap setting on ISO_Level3_Shift+Space is just thrown away:
>    Something like
>    keycode  65 = space NoSymbol space NoSymbol nobreakspace
>    or
>    keycode  65 = space space space space nobreakspace
>    doesn't work: it's discarded and the setting is not shown on a "xmodmap -pke".
>    So I put nobreakspace to the fifth place of another key - there it works.
>    That would be good if key 65 (space key) would accept above xmodmap setting or have it initially.

Reading [1], this looks like an (undocumented) Windows-ism

http://en.wikipedia.org/wiki/Non-breaking_space#Keyboard_entry_methods

> Number block is not working.
>    See attachment for the initial XWin xmodmap -pke table (all these KP_* settings look good at the first sight, but the keys don't
> produce numbers).
>    Possible xmodmap correction (works fine):
>    keycode  63 = asterisk asterisk
>    keycode  79 = 7 7
>    keycode  80 = 8 8
>    keycode  81 = 9 9
>    keycode  82 = minus minus
>    keycode  83 = 4 4
>    keycode  84 = 5 5
>    keycode  85 = 6 6
>    keycode  86 = plus plus
>    keycode  87 = 1 1
>    keycode  88 = 2 2
>    keycode  89 = 3 3
>    keycode  90 = 0 0
>    keycode  91 = period period
>    keycode 108 = Return Return
>    keycode 112 = slash slash

I can't reproduce this problem.

I wonder if this is a problem with handling numpad overlaid onto normal keys 
on a laptop keypad?  Again, -logverbose 3 output together with xev output 
would be helpful.

-- 
Jon TURNEY
Volunteer Cygwin/X X Server maintainer

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/


^ permalink raw reply	[flat|nested] 13+ messages in thread

* AW: 'de' keyboard layout issues (Re: AW: AW: AltGr key mostly fires an additional CONTROL key)
  2011-08-08 15:32         ` 'de' keyboard layout issues (Re: AW: AW: AltGr key mostly fires an additional CONTROL key) Jon TURNEY
@ 2011-08-08 23:17           ` Paul Maier
  2011-08-10 12:12             ` Jon TURNEY
  0 siblings, 1 reply; 13+ messages in thread
From: Paul Maier @ 2011-08-08 23:17 UTC (permalink / raw)
  To: 'cygwin-xfree'; +Cc: 'Jon TURNEY'

Hi Jon,


1. Tilde sign
-------------

> > Tilde sign (~) should be a normal (not a blind) key.
> >    In Windows I hit AltGr+"+" to get ~, in XWin I need to type AltGr+"+" then space to
> get a ~.
> >    See attachment for the initial XWin xmodmap -pke table.
> >    Possible xmodmap correction (works fine):
> >    keycode  35 = plus asterisk plus asterisk asciitilde
> 
> This is a can of worms I don't want to open :-)
> 
> At the moment, in the 'de' layout, the tilde deadkey will add a macron
> diacritic, e.g. AltGr + "+" + a = ã.
> 
> I really lack the expertise to determine if this is a bug in xkeyboard-config
> (if this german keyboard behavior is something no german keyboard user would
> ever expect or want)
> 
> The xkb configurations we use come from the xkeyboard-config project, and
> aren't trying to be identical to Windows, but to conform to the appropriate
> national standards and user expectations.
> 
> However, I can see in the case of XWin this is problematic, as it will be
> confusing to switch between X and normal Windows windows which have different
> keyboard behavior.

I did some research: German computer keyboard layout is defined in DIN 2137-2.
And to my surprise I found, that tilde is a dead key there.
That means, that the xkeyboard-config project perfectly matches the DIN norm,
while Windows (where the key is not dead) does not match it.
So I understand, that you may want to stick to the DIN norm.
A workaround for guys like me, who want the XWin keyboard work the same like Windows,
is possible with xmodmap, so yeah ... let's close this point.


2. Euro currency sign
---------------------

> > Euro Currency sign doesn't work.
> >    I know - it's not a latin1 character, but together with CP1252 this xmodmap
> correction works like Windows:
> >    keycode  26 = e E e E 0x0080
> 
> I guess this is another symptom of Xlib not understanding the de_DE.CP1252 locale.
> This works fine in the de_DE.UTF-8 locale.

I agree to concentrate on more important stuff.


3. Non breaking space (NBSP) on ALT+space
-----------------------------------------

> > ALT+Space produces a NBSP character (HEX A0) in Windows, but not in XWin.
> >    xmodmap correction is unfortunately not possible, because the xmodmap setting on
> ISO_Level3_Shift+Space is just thrown away:
> >    Something like
> >    keycode  65 = space NoSymbol space NoSymbol nobreakspace
> >    or
> >    keycode  65 = space space space space nobreakspace
> >    doesn't work: it's discarded and the setting is not shown on a "xmodmap -pke".
> >    So I put nobreakspace to the fifth place of another key - there it works.
> >    That would be good if key 65 (space key) would accept above xmodmap setting or have
> it initially.
> 
> Reading [1], this looks like an (undocumented) Windows-ism
> 
> http://en.wikipedia.org/wiki/Non-breaking_space#Keyboard_entry_methods

I found out, that DIN 2137-2:2003-09 defines two different keyboard layouts, the one having ALT+space
undefinied (the common layout with an extra "<"/">" key left to the y key; see page 27 of that DIN norm), 
the other one defining ALT+space as NBSP (see page 9 of that DIN norm, table 2, line 1).

So it's fine, that ALT+space is undefined by default. But it wouldn't harm anybody, if
ALT+space were xmodmap redefinable, so that those guys, who got used to using ALT+space
in Windows, have a chance to xmodmap it themselves.

And: for all other keys you can xmodmap what you like on ALT+key, so why not for ALT+space?
I can easily xmodmap the NBSP onto another key, but if you try to do the same with the space key,
XWin doesn't take it:

Try xmodmapping
  keycode  65 = space NoSymbol space NoSymbol nobreakspace
    or
  keycode  65 = space space space space nobreakspace
then issue a "xmodmap -pke" ... and the NBSP is not on the space key.


4. Number block
---------------

> I can't reproduce this problem.
> 
> I wonder if this is a problem with handling numpad overlaid onto normal keys
> on a laptop keypad?  Again, -logverbose 3 output together with xev output
> would be helpful.

That was referring to plugging an external (USB) keyboard to the Laptop.
I got a new external keyboard recently.
The number block was not working with my old external keyboard, but with
the new one I can't reproduce the problem, with other words, it is working there.
Unfortunately I don't have the old keyboard any more, so I can't help you
debugging this issue. Maybe somebody else calls.


Regards,
  Paul



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: AW: 'de' keyboard layout issues (Re: AW: AW: AltGr key mostly fires an additional CONTROL key)
  2011-08-08 23:17           ` AW: " Paul Maier
@ 2011-08-10 12:12             ` Jon TURNEY
  2011-08-12  6:49               ` Paul Maier
  0 siblings, 1 reply; 13+ messages in thread
From: Jon TURNEY @ 2011-08-10 12:12 UTC (permalink / raw)
  To: Paul Maier; +Cc: 'cygwin-xfree'

[-- Attachment #1: Type: text/plain, Size: 2863 bytes --]

On 09/08/2011 00:17, Paul Maier wrote:
> 1. Tilde sign
> -------------
>
>>> Tilde sign (~) should be a normal (not a blind) key.
>>>     In Windows I hit AltGr+"+" to get ~, in XWin I need to type AltGr+"+" then space to
>> get a ~.
>>>     See attachment for the initial XWin xmodmap -pke table.
>>>     Possible xmodmap correction (works fine):
>>>     keycode  35 = plus asterisk plus asterisk asciitilde
>>
>> This is a can of worms I don't want to open :-)

In case it wasn't clear, the can of worms here is ensuring that XWin selects a 
keyboard layout which matches the Windows one in all cases.

>> At the moment, in the 'de' layout, the tilde deadkey will add a macron
>> diacritic, e.g. AltGr + "+" + a = ã.

Obviously I meant to write 'tilde diacritic' here :-)

>> I really lack the expertise to determine if this is a bug in xkeyboard-config
>> (if this german keyboard behavior is something no german keyboard user would
>> ever expect or want)
>>
>> The xkb configurations we use come from the xkeyboard-config project, and
>> aren't trying to be identical to Windows, but to conform to the appropriate
>> national standards and user expectations.
>>
>> However, I can see in the case of XWin this is problematic, as it will be
>> confusing to switch between X and normal Windows windows which have different
>> keyboard behavior.
>
> I did some research: German computer keyboard layout is defined in DIN 2137-2.
> And to my surprise I found, that tilde is a dead key there.
> That means, that the xkeyboard-config project perfectly matches the DIN norm,
> while Windows (where the key is not dead) does not match it.
> So I understand, that you may want to stick to the DIN norm.

Usability comes before standards compliance :-)

> A workaround for guys like me, who want the XWin keyboard work the same like Windows,
> is possible with xmodmap, so yeah ... let's close this point.

Doing some more research, I found an upstream bug [1], which seems to make the 
opposite claim about DIN 2137-2(1998)

I also discovered that the nodeadkeys variant of the de layout was at one 
stage the default used by XWin when a German Windows keyboard layout was 
reported [2]

Maybe the 'correct' solution is possibly to create a 'nodeadtilde' variant of 
the de layout in xkeyboard-config, and then to arrange for that to be the 
default used by XWin when Windows reports a German keyboard layout.

Perhaps you'd like to try the attached patch to /usr/share/X11/xkb/symbols/de, 
which adds a nodeadtilde variant, which you can then select with -xkbvariant 
nodeadtilde.

Or perhaps the correct solution is to use one of the existing deadgraveacute 
or deadacute variants as the XWin default when Windows reports a German 
keyboard layout?

[1] https://bugs.freedesktop.org/show_bug.cgi?id=9752
[2] http://cygwin.com/ml/cygwin-xfree/2003-05/msg00495.html


[-- Attachment #2: de.patch --]
[-- Type: text/plain, Size: 582 bytes --]

--- de.old	2011-08-09 20:17:57.406250000 +0100
+++ de	2011-08-09 20:26:52.156250000 +0100
@@ -96,6 +96,17 @@
 };
 
 partial alphanumeric_keys
+xkb_symbols "nodeadtilde" {
+    // modify the basic German layout to not have the tilde dead key
+
+    include "de(basic)"
+
+    name[Group1]="German (nodeadtilde)";
+
+    key <AD12>	{ [      plus,   asterisk,   asciitilde,       macron ]	};
+};
+
+partial alphanumeric_keys
 xkb_symbols "ro" {
     // add romanian-specific letters to the basic German layout.
     // Romanian symbols are accessible with combination of <AltGr> and



[-- Attachment #3: Type: text/plain, Size: 223 bytes --]

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* AW: 'de' keyboard layout issues (Re: AW: AW: AltGr key mostly fires an additional CONTROL key)
  2011-08-10 12:12             ` Jon TURNEY
@ 2011-08-12  6:49               ` Paul Maier
  2011-08-16 13:10                 ` Jon TURNEY
  0 siblings, 1 reply; 13+ messages in thread
From: Paul Maier @ 2011-08-12  6:49 UTC (permalink / raw)
  To: 'Jon TURNEY'; +Cc: 'cygwin-xfree'

[-- Attachment #1: Type: text/plain, Size: 4705 bytes --]

> > 1. Tilde sign
> > -------------
> >
> >>> Tilde sign (~) should be a normal (not a blind) key.
> >>>     In Windows I hit AltGr+"+" to get ~, in XWin I need to type AltGr+"+" then space
> to
> >> get a ~.
> >>>     See attachment for the initial XWin xmodmap -pke table.
> >>>     Possible xmodmap correction (works fine):
> >>>     keycode  35 = plus asterisk plus asterisk asciitilde
> >>
> >> This is a can of worms I don't want to open :-)
> 
> In case it wasn't clear, the can of worms here is ensuring that XWin selects a
> keyboard layout which matches the Windows one in all cases.
> 
> >> At the moment, in the 'de' layout, the tilde deadkey will add a macron
> >> diacritic, e.g. AltGr + "+" + a = ã.
> 
> Obviously I meant to write 'tilde diacritic' here :-)
> 
> >> I really lack the expertise to determine if this is a bug in xkeyboard-config
> >> (if this german keyboard behavior is something no german keyboard user would
> >> ever expect or want)
> >>
> >> The xkb configurations we use come from the xkeyboard-config project, and
> >> aren't trying to be identical to Windows, but to conform to the appropriate
> >> national standards and user expectations.
> >>
> >> However, I can see in the case of XWin this is problematic, as it will be
> >> confusing to switch between X and normal Windows windows which have different
> >> keyboard behavior.
> >
> > I did some research: German computer keyboard layout is defined in DIN 2137-2.
> > And to my surprise I found, that tilde is a dead key there.
> > That means, that the xkeyboard-config project perfectly matches the DIN norm,
> > while Windows (where the key is not dead) does not match it.
> > So I understand, that you may want to stick to the DIN norm.
> 
> Usability comes before standards compliance :-)
> 
> > A workaround for guys like me, who want the XWin keyboard work the same like Windows,
> > is possible with xmodmap, so yeah ... let's close this point.
> 
> Doing some more research, I found an upstream bug [1], which seems to make the
> opposite claim about DIN 2137-2(1998)
> 
> I also discovered that the nodeadkeys variant of the de layout was at one
> stage the default used by XWin when a German Windows keyboard layout was
> reported [2]
> 
> Maybe the 'correct' solution is possibly to create a 'nodeadtilde' variant of
> the de layout in xkeyboard-config, and then to arrange for that to be the
> default used by XWin when Windows reports a German keyboard layout.
> 
> Perhaps you'd like to try the attached patch to /usr/share/X11/xkb/symbols/de,
> which adds a nodeadtilde variant, which you can then select with -xkbvariant
> nodeadtilde.
> 
> Or perhaps the correct solution is to use one of the existing deadgraveacute
> or deadacute variants as the XWin default when Windows reports a German
> keyboard layout?
> 
> [1] https://bugs.freedesktop.org/show_bug.cgi?id=9752
> [2] http://cygwin.com/ml/cygwin-xfree/2003-05/msg00495.html


Hi Jon,

thanks for your work.
I myself have made 2 patches and include them in this mail:

- One patch for files /usr/share/x11/locale/iso8859-1/Compose and
  /usr/share/x11/locale/iso8859-15/Compose.

- My patch for the "de" file:
  de.patch.patch patches your patch, whereas de.patch is the same thing
  patching the original de file.

Here is the explanation (I'm referring to the original pargraph numbering):

1. Tilde sign
-------------

Yes, file "de" patched with your de.patch and XWin invoked with "-xkbvariant nodeadtilde"
results in a German Windows keyboard (regarding the tilde).

I did just a renaming of the Group description there to match the pattern of the other
xkbvariants.

3. Non breaking space (NBSP) on ALT+space
-----------------------------------------

In my patch I provide a xkbvariant "windowscompatible", that puts nobreakspace onto Alt+Space,
like Windows has it.

Furthermore, I added a line to the default German layout.
It doesn't change the behaviour of the space key with shift, Alt, AltGr,
but (and that's the reason why I've put it there), it makes the space key
xmodmap redefinable in regard to the Alt key.
Without that patch the key definition has not enough numbers of layers,
resulting in that xmodmap discards a change of AltGr layer of space.

5. New dead acute issue
-----------------------

Sorry to say, I found another difference while testing.
This is, what the Compose.patch is for.

In Windows, all blind keys followed by a space result in that character.
Same in XWin, but with one exception:
dead-´ plus space gives ' instead of ´.

Please check out my patch for that.

Regards,
 Paul


[-- Attachment #2: Compose.patch --]
[-- Type: application/octet-stream, Size: 530 bytes --]

diff -u orig//Compose new//Compose
--- orig//Compose	2010-02-10 01:49:25.001000000 +0100
+++ new//Compose	2011-08-11 23:27:39.752691500 +0200
@@ -392,7 +392,7 @@
 <dead_grave> <space>			: "`"	grave
 <dead_grave> <dead_grave>		: "`"	grave
 # These are for us_intl, that does not have diaeresis, etc
-<dead_acute> <space>			: "'"	apostrophe
+<dead_acute> <space>			: "\264"	acute
 <dead_acute> <dead_acute>		: "\264"	acute
 <dead_diaeresis> <space>		: "\""	quotedbl
 <dead_diaeresis> <dead_diaeresis>	: "\250"	diaeresis

[-- Attachment #3: de.patch.patch --]
[-- Type: application/octet-stream, Size: 1241 bytes --]

diff -u 01-yourpatch//de 02-new//de
--- 01-yourpatch//de	2011-08-11 21:30:14.018725500 +0200
+++ 02-new//de	2011-08-12 07:41:24.551445700 +0200
@@ -51,6 +51,11 @@
     include "kpdl(comma)"
 
     include "level3(ralt_switch)"
+
+    // enable xmodmap to put a nobreakspace onto AltGr+space
+    // (Without the following line, the key <SPCE> definition is too short for xmodmap's AltGr level;
+    // for users, that don't use xmodmap, the following line is transparent.)
+    key <SPCE> { [ space, space, space, space ] };
 };
 
 partial alphanumeric_keys
@@ -105,12 +110,23 @@
 
     include "de(basic)"
 
-    name[Group1]="German (nodeadtilde)";
+    name[Group1]="Germany - nodeadtilde";
 
     key <AD12> { [      plus,   asterisk,   asciitilde,       macron ] };
 };
 
 partial alphanumeric_keys
+xkb_symbols "windowscompatible" {
+    // modify the basic German layout to match the Windows layout
+
+    include "de(nodeadtilde)"
+
+    name[Group1]="Germany - Windows";
+
+    include "nbsp(level3)"
+};
+
+partial alphanumeric_keys
 xkb_symbols "ro" {
     // add romanian-specific letters to the basic German layout.
     // Romanian symbols are accessible with combination of <AltGr> and

[-- Attachment #4: de.patch --]
[-- Type: application/octet-stream, Size: 1326 bytes --]

diff -u 00-orig//de 02-new//de
--- 00-orig//de	2010-08-03 02:28:12.001000000 +0200
+++ 02-new//de	2011-08-12 07:41:24.551445700 +0200
@@ -51,6 +51,11 @@
     include "kpdl(comma)"
 
     include "level3(ralt_switch)"
+
+    // enable xmodmap to put a nobreakspace onto AltGr+space
+    // (Without the following line, the key <SPCE> definition is too short for xmodmap's AltGr level;
+    // for users, that don't use xmodmap, the following line is transparent.)
+    key <SPCE> { [ space, space, space, space ] };
 };
 
 partial alphanumeric_keys
@@ -100,6 +105,28 @@
 };
 
 partial alphanumeric_keys
+xkb_symbols "nodeadtilde" {
+    // modify the basic German layout to not have the tilde dead key
+
+    include "de(basic)"
+
+    name[Group1]="Germany - nodeadtilde";
+
+    key <AD12> { [      plus,   asterisk,   asciitilde,       macron ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "windowscompatible" {
+    // modify the basic German layout to match the Windows layout
+
+    include "de(nodeadtilde)"
+
+    name[Group1]="Germany - Windows";
+
+    include "nbsp(level3)"
+};
+
+partial alphanumeric_keys
 xkb_symbols "ro" {
     // add romanian-specific letters to the basic German layout.
     // Romanian symbols are accessible with combination of <AltGr> and


[-- Attachment #5: Type: text/plain, Size: 223 bytes --]

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: AW: 'de' keyboard layout issues (Re: AW: AW: AltGr key mostly fires an additional CONTROL key)
  2011-08-12  6:49               ` Paul Maier
@ 2011-08-16 13:10                 ` Jon TURNEY
  2011-10-03 11:29                   ` AW: AW: 'de' keyboard layout issues Paul Maier
                                     ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Jon TURNEY @ 2011-08-16 13:10 UTC (permalink / raw)
  To: cygwin-xfree; +Cc: Paul Maier

On 12/08/2011 07:48, Paul Maier wrote:
>>> 1. Tilde sign
>>> -------------
>>>
>>>>> Tilde sign (~) should be a normal (not a blind) key.
>>>>>      In Windows I hit AltGr+"+" to get ~, in XWin I need to type AltGr+"+" then space
>> to
>>>> get a ~.
>>>>>      See attachment for the initial XWin xmodmap -pke table.
>>>>>      Possible xmodmap correction (works fine):
>>>>>      keycode  35 = plus asterisk plus asterisk asciitilde
>>>>
>>>> This is a can of worms I don't want to open :-)
>>
>> In case it wasn't clear, the can of worms here is ensuring that XWin selects a
>> keyboard layout which matches the Windows one in all cases.
>>
>>>> At the moment, in the 'de' layout, the tilde deadkey will add a macron
>>>> diacritic, e.g. AltGr + "+" + a = ã.
>>
>> Obviously I meant to write 'tilde diacritic' here :-)
>>
>>>> I really lack the expertise to determine if this is a bug in xkeyboard-config
>>>> (if this german keyboard behavior is something no german keyboard user would
>>>> ever expect or want)
>>>>
>>>> The xkb configurations we use come from the xkeyboard-config project, and
>>>> aren't trying to be identical to Windows, but to conform to the appropriate
>>>> national standards and user expectations.
>>>>
>>>> However, I can see in the case of XWin this is problematic, as it will be
>>>> confusing to switch between X and normal Windows windows which have different
>>>> keyboard behavior.
>>>
>>> I did some research: German computer keyboard layout is defined in DIN 2137-2.
>>> And to my surprise I found, that tilde is a dead key there.
>>> That means, that the xkeyboard-config project perfectly matches the DIN norm,
>>> while Windows (where the key is not dead) does not match it.
>>> So I understand, that you may want to stick to the DIN norm.
>>
>> Usability comes before standards compliance :-)
>>
>>> A workaround for guys like me, who want the XWin keyboard work the same like Windows,
>>> is possible with xmodmap, so yeah ... let's close this point.
>>
>> Doing some more research, I found an upstream bug [1], which seems to make the
>> opposite claim about DIN 2137-2(1998)
>>
>> I also discovered that the nodeadkeys variant of the de layout was at one
>> stage the default used by XWin when a German Windows keyboard layout was
>> reported [2]
>>
>> Maybe the 'correct' solution is possibly to create a 'nodeadtilde' variant of
>> the de layout in xkeyboard-config, and then to arrange for that to be the
>> default used by XWin when Windows reports a German keyboard layout.
>>
>> Perhaps you'd like to try the attached patch to /usr/share/X11/xkb/symbols/de,
>> which adds a nodeadtilde variant, which you can then select with -xkbvariant
>> nodeadtilde.
>>
>> Or perhaps the correct solution is to use one of the existing deadgraveacute
>> or deadacute variants as the XWin default when Windows reports a German
>> keyboard layout?
>>
>> [1] https://bugs.freedesktop.org/show_bug.cgi?id=9752
>> [2] http://cygwin.com/ml/cygwin-xfree/2003-05/msg00495.html
>
>
> Hi Jon,
>
> thanks for your work.
> I myself have made 2 patches and include them in this mail:
>
> - One patch for files /usr/share/x11/locale/iso8859-1/Compose and
>    /usr/share/x11/locale/iso8859-15/Compose.
>
> - My patch for the "de" file:
>    de.patch.patch patches your patch, whereas de.patch is the same thing
>    patching the original de file.
>
> Here is the explanation (I'm referring to the original pargraph numbering):
>
> 1. Tilde sign
> -------------
>
> Yes, file "de" patched with your de.patch and XWin invoked with "-xkbvariant nodeadtilde"
> results in a German Windows keyboard (regarding the tilde).
>
> I did just a renaming of the Group description there to match the pattern of the other
> xkbvariants.

I'd really appreciate it if you could re-open the upstream bug [1] for the 
tilde issue, ideally with a suitable patch and referencing this discussion.

I'd also suggest you send your other suggested changes to the xkb list [2], as 
I'm not really qualified to review them.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=9752
[2] http://www.freedesktop.org/wiki/Software/XKeyboardConfig/Development

> 3. Non breaking space (NBSP) on ALT+space
> -----------------------------------------
>
> In my patch I provide a xkbvariant "windowscompatible", that puts nobreakspace onto Alt+Space,
> like Windows has it.
>
> Furthermore, I added a line to the default German layout.
> It doesn't change the behaviour of the space key with shift, Alt, AltGr,
> but (and that's the reason why I've put it there), it makes the space key
> xmodmap redefinable in regard to the Alt key.
> Without that patch the key definition has not enough numbers of layers,
> resulting in that xmodmap discards a change of AltGr layer of space.

It looks like the mysterious voodoo to achieve this is adding '-xkboptions 
nbsp:level3'

Perhaps that should be set by XWin by default if that is how Windows behaves 
for all keyboard layouts (so that we don't get different behavior between XWin 
windows and other Windows applications)

> 5. New dead acute issue
> -----------------------
>
> Sorry to say, I found another difference while testing.
> This is, what the Compose.patch is for.
>
> In Windows, all blind keys followed by a space result in that character.
> Same in XWin, but with one exception:
> dead-´ plus space gives ' instead of ´.
>
> Please check out my patch for that.

This patch makes sense to me, but doesn't seem to go far enough.  Since the 
compose sequences are selected by the locale, this fixes things if 
LANG=de_DE.iso8859-1 or LANG=de_DE.iso8859-15, but not if LANG=de_DE.UTF-8.

I'll try to take another look when I'm back from my holiday :-)

-- 
Jon TURNEY
Volunteer Cygwin/X X Server maintainer

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/


^ permalink raw reply	[flat|nested] 13+ messages in thread

* AW: AW: AltGr key mostly fires an additional CONTROL key
  2011-08-03 13:15     ` AW: " Jon TURNEY
  2011-08-04  2:22       ` AW: " Paul Maier
@ 2011-10-03 10:16       ` Paul Maier
  1 sibling, 0 replies; 13+ messages in thread
From: Paul Maier @ 2011-10-03 10:16 UTC (permalink / raw)
  To: 'cygwin-xfree'; +Cc: 'Jon TURNEY'


> -----Ursprüngliche Nachricht-----
> > I've had a go at fixing it.  Can you please try the build I've uploaded at [1]
> > and see if it still shows the problem for you?
> >
> > [1] ftp://cygwin.com/pub/cygwinx/XWin.20110803-git-a493c0465e56ce0b.exe.bz2
> 
> 
> Hi Jon,
> 
> works fine for me. I Played around quite a while, but the CONTROL-locking didn't occur any
> more. Yippie!



Hi Jon,

regarding XWin.20110803-git-a493c0465e56ce0b.exe.bz2 on my PC fixes AltGr problem:

I wanted to ask, if that fix will be available with the next release?

Regards,
  Paul




--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/


^ permalink raw reply	[flat|nested] 13+ messages in thread

* AW: AW: 'de' keyboard layout issues
  2011-08-16 13:10                 ` Jon TURNEY
@ 2011-10-03 11:29                   ` Paul Maier
  2012-08-06 12:49                     ` Jon TURNEY
  2012-07-22  0:22                   ` Paul Maier
  2012-08-06 12:22                   ` AW: 'de' keyboard layout issues (Re: AW: AW: AltGr key mostly fires an additional CONTROL key) Jon TURNEY
  2 siblings, 1 reply; 13+ messages in thread
From: Paul Maier @ 2011-10-03 11:29 UTC (permalink / raw)
  To: 'cygwin-xfree'; +Cc: 'Jon TURNEY'

[-- Attachment #1: Type: text/plain, Size: 792 bytes --]


> > In Windows, all blind keys followed by a space result in that character.
> > Same in XWin, but with one exception:
> > dead-´ plus space gives ' instead of ´.
> >
> > Please check out my patch for that.
> [...] for files /usr/share/x11/locale/iso8859-1/Compose and
  /usr/share/x11/locale/iso8859-15/Compose.

> 
> This patch makes sense to me, but doesn't seem to go far enough.  Since the
> compose sequences are selected by the locale, this fixes things if
> LANG=de_DE.iso8859-1 or LANG=de_DE.iso8859-15, but not if LANG=de_DE.UTF-8.
> 
> I'll try to take another look when I'm back from my holiday :-)


Hi Jon,

agreed, my patch is a partial solution.

Is there an issue tracker in use, where we can put my patch and the idea behind it?

Regards,
  Paul


[-- Attachment #2: Compose.patch --]
[-- Type: application/octet-stream, Size: 532 bytes --]

diff -u orig//Compose new//Compose
--- orig//Compose	2010-02-10 01:49:25.001000000 +0100
+++ new//Compose	2011-08-11 23:27:39.752691500 +0200
@@ -392,7 +392,7 @@
 <dead_grave> <space>			: "`"	grave
 <dead_grave> <dead_grave>		: "`"	grave
 # These are for us_intl, that does not have diaeresis, etc
-<dead_acute> <space>			: "'"	apostrophe
+<dead_acute> <space>			: "\264"	acute
 <dead_acute> <dead_acute>		: "\264"	acute
 <dead_diaeresis> <space>		: "\""	quotedbl
 <dead_diaeresis> <dead_diaeresis>	: "\250"	diaeresis


[-- Attachment #3: Type: text/plain, Size: 223 bytes --]

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* AW: AW: 'de' keyboard layout issues
  2011-08-16 13:10                 ` Jon TURNEY
  2011-10-03 11:29                   ` AW: AW: 'de' keyboard layout issues Paul Maier
@ 2012-07-22  0:22                   ` Paul Maier
  2012-08-06 12:22                   ` AW: 'de' keyboard layout issues (Re: AW: AW: AltGr key mostly fires an additional CONTROL key) Jon TURNEY
  2 siblings, 0 replies; 13+ messages in thread
From: Paul Maier @ 2012-07-22  0:22 UTC (permalink / raw)
  To: 'cygwin-xfree'; +Cc: 'Jon TURNEY'

[-- Attachment #1: Type: text/plain, Size: 754 bytes --]

> > > In Windows, all blind keys followed by a space result in that character.
> > > Same in XWin, but with one exception:
> > > dead-´ plus space gives ' instead of ´.
> > >
> > > Please check out my patch for that.
> > [...] for files /usr/share/x11/locale/iso8859-1/Compose and
>   /usr/share/x11/locale/iso8859-15/Compose.
> 
> >
> > This patch makes sense to me, but doesn't seem to go far enough.  Since the
> > compose sequences are selected by the locale, this fixes things if
> > LANG=de_DE.iso8859-1 or LANG=de_DE.iso8859-15, but not if LANG=de_DE.UTF-8.
> >
> > I'll try to take another look when I'm back from my holiday :-)
> 


 
Hi Jon,

agreed.
But isn't a partial fix better than no fix?  8-)

Regards,
  Paul


[-- Attachment #2: Compose.patch --]
[-- Type: application/octet-stream, Size: 532 bytes --]

diff -u orig//Compose new//Compose
--- orig//Compose	2010-02-10 01:49:25.001000000 +0100
+++ new//Compose	2011-08-11 23:27:39.752691500 +0200
@@ -392,7 +392,7 @@
 <dead_grave> <space>			: "`"	grave
 <dead_grave> <dead_grave>		: "`"	grave
 # These are for us_intl, that does not have diaeresis, etc
-<dead_acute> <space>			: "'"	apostrophe
+<dead_acute> <space>			: "\264"	acute
 <dead_acute> <dead_acute>		: "\264"	acute
 <dead_diaeresis> <space>		: "\""	quotedbl
 <dead_diaeresis> <dead_diaeresis>	: "\250"	diaeresis


[-- Attachment #3: Type: text/plain, Size: 223 bytes --]

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: AW: 'de' keyboard layout issues (Re: AW: AW: AltGr key mostly fires an additional CONTROL key)
  2011-08-16 13:10                 ` Jon TURNEY
  2011-10-03 11:29                   ` AW: AW: 'de' keyboard layout issues Paul Maier
  2012-07-22  0:22                   ` Paul Maier
@ 2012-08-06 12:22                   ` Jon TURNEY
  2 siblings, 0 replies; 13+ messages in thread
From: Jon TURNEY @ 2012-08-06 12:22 UTC (permalink / raw)
  To: cygwin-xfree; +Cc: Paul Maier

On 16/08/2011 14:10, Jon TURNEY wrote:
> On 12/08/2011 07:48, Paul Maier wrote:
>> 1. Tilde sign
>> -------------
>>
>> Yes, file "de" patched with your de.patch and XWin invoked with "-xkbvariant
>> nodeadtilde"
>> results in a German Windows keyboard (regarding the tilde).
>>
>> I did just a renaming of the Group description there to match the pattern of
>> the other
>> xkbvariants.
> 
> I'd really appreciate it if you could re-open the upstream bug [1] for the
> tilde issue, ideally with a suitable patch and referencing this discussion.
> 
> I'd also suggest you send your other suggested changes to the xkb list [2], as
> I'm not really qualified to review them.
> 
> [1] https://bugs.freedesktop.org/show_bug.cgi?id=9752
> [2] http://www.freedesktop.org/wiki/Software/XKeyboardConfig/Development

xkeyboard-config bug #9752 [1] has been resolved with a change [2] to make the
tilde not a dead key in the german keyboard layout.

Perhaps you could try the lastest xkeyboard-config from git and confirm that
the change is correct :-)

If you have any other issues with the xkeyboard-config data for the german
keyboard layout, it might be more efficient to engage directly with the
xkeyboard-config maintainer, as he has a lot more expertise in this area than
I do.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=9752
[2]
http://cgit.freedesktop.org/xkeyboard-config/commit/symbols/de?id=49129c6358eebd248f83457dfef4ec58ad8e584c

-- 
Jon TURNEY
Volunteer Cygwin/X X Server maintainer

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: AW: AW: 'de' keyboard layout issues
  2011-10-03 11:29                   ` AW: AW: 'de' keyboard layout issues Paul Maier
@ 2012-08-06 12:49                     ` Jon TURNEY
  0 siblings, 0 replies; 13+ messages in thread
From: Jon TURNEY @ 2012-08-06 12:49 UTC (permalink / raw)
  To: cygwin-xfree; +Cc: Paul Maier

On 03/10/2011 12:27, Paul Maier wrote:
>>> In Windows, all blind keys followed by a space result in that character.
>>> Same in XWin, but with one exception:
>>> dead-´ plus space gives ' instead of ´.
>>>
>>> Please check out my patch for that.
>> [...] for files /usr/share/x11/locale/iso8859-1/Compose and
>   /usr/share/x11/locale/iso8859-15/Compose.
> 
>>
>> This patch makes sense to me, but doesn't seem to go far enough.  Since the
>> compose sequences are selected by the locale, this fixes things if
>> LANG=de_DE.iso8859-1 or LANG=de_DE.iso8859-15, but not if LANG=de_DE.UTF-8.
>>
>> I'll try to take another look when I'm back from my holiday :-)

Sorry, I lost track of this issue.

> agreed, my patch is a partial solution.
> 
> Is there an issue tracker in use, where we can put my patch and the idea behind it?

I would suggest you mail a patch to libX11 to the xorg-devel list [1],[2].

> agreed.
> But isn't a partial fix better than no fix?  8-)

I can't really evaluate if this change is correct or not, which is why I
suggest you take it to the xorg-devel list.

For example, after reading [3], I'm wondering if the reason for this behaviour
is that typists had the habit of pressing the acute key for an apostrophe.

On the one hand, it's been this way for at least 5 years, so people may be
used to this behaviour.  On the other hand, it's inconsistent with the rule
that <dead_foo> <space> produces <foo>, and inconsistent across locales what
this sequence produces:

jon@byron /jhbuild/checkout/xorg/lib/libX11/nls master
$ grep -r "^<dead_acute> <space>" *
el_GR.UTF-8/Compose.pre:<dead_acute> <space>                    : "΄"   U0384
en_US.UTF-8/Compose.pre:<dead_acute> <space>                    : "'"
apostrophe # APOSTROPHE
fi_FI.UTF-8/Compose.pre:<dead_acute> <space>                    : "´"   #
ACUTE ACCENT
iso8859-1/Compose.pre:<dead_acute> <space>                      : "'"   apostrophe
iso8859-14/Compose.pre:<dead_acute> <space>                     : "'"   apostrophe
iso8859-15/Compose.pre:<dead_acute> <space>                     : "'"   apostrophe
iso8859-2/Compose.pre:<dead_acute> <space>                      : "\264"
  acute
iso8859-3/Compose.pre:<dead_acute> <space>                      : "'"   apostrophe
iso8859-7/Compose.pre:<dead_acute> <space>                      : "\264"
  acute
iso8859-9/Compose.pre:<dead_acute> <space>                      : "'"   apostrophe
iso8859-9e/Compose.pre:<dead_acute> <space>                     : "'"   apostrophe
pt_BR.UTF-8/Compose.pre:<dead_acute> <space>                    : "'"   apostrophe
vi_VN.tcvn/Compose.pre:<dead_acute> <space>                     : "'"   apostrophe
vi_VN.viscii/Compose.pre:<dead_acute> <space>                   : "'"   apostrophe

[1] http://lists.x.org/mailman/listinfo/xorg-devel
[2] http://www.x.org/wiki/DeveloperStart
[3] http://www.cl.cam.ac.uk/~mgk25/ucs/apostrophe.html

-- 
Jon TURNEY
Volunteer Cygwin/X X Server maintainer

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2012-08-06 12:49 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <006301cc4fb3$2696d060$73c47120$@de>
2011-08-01 14:57 ` AltGr key mostly fires an additional CONTROL key Jon TURNEY
     [not found]   ` <000001cc5085$6b711fb0$42535f10$@de>
2011-08-03 13:15     ` AW: " Jon TURNEY
2011-08-04  2:22       ` AW: " Paul Maier
2011-08-08 15:32         ` 'de' keyboard layout issues (Re: AW: AW: AltGr key mostly fires an additional CONTROL key) Jon TURNEY
2011-08-08 23:17           ` AW: " Paul Maier
2011-08-10 12:12             ` Jon TURNEY
2011-08-12  6:49               ` Paul Maier
2011-08-16 13:10                 ` Jon TURNEY
2011-10-03 11:29                   ` AW: AW: 'de' keyboard layout issues Paul Maier
2012-08-06 12:49                     ` Jon TURNEY
2012-07-22  0:22                   ` Paul Maier
2012-08-06 12:22                   ` AW: 'de' keyboard layout issues (Re: AW: AW: AltGr key mostly fires an additional CONTROL key) Jon TURNEY
2011-10-03 10:16       ` AW: AW: AltGr key mostly fires an additional CONTROL key Paul Maier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).