Bug 245669 - modifying the keyboard layout file /usr/share/X11/xkb/symbols has no effect
Summary: modifying the keyboard layout file /usr/share/X11/xkb/symbols has no effect
Status: RESOLVED NOT A BUG
Alias: None
Product: kxkb
Classification: Unmaintained
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Andriy Rysin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-07-24 18:32 UTC by manfred.pohler
Modified: 2010-08-09 19:52 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description manfred.pohler 2010-07-24 18:32:11 UTC
Version:           unspecified (using KDE 4.4.2) 
OS:                Linux

I made a modification in the file /usr/share/X11/xkb/symbols/de to get for a certain key another symbol displayed.
In System-Settings->keyboardlayout I activated another variant for my language and then activated again the variant which i have modified. The modification has no effect while I have only one variant selected in the table 'Active Layouts'. Only if I have more than one entries in the table 'Active Layouts' the modification has an effect.
As soon as I delete the second entry in the table 'Active Layouts' to remain only the modified variant in the table, the variant has the same behaviour as before the modification.

I tested this many times and this is always reproducable. 

Reproducible: Always

Steps to Reproduce:
Select one variant of the german keyboard. layout as the only active layout.
Then replace in the file /usr/share/X11/xkb/symbols/de one letter of this variant with another letter.
Replace also in another variant which has not yet been used until now one letter with another.
Restart the X-Server. 
Try if your change has an effect (no success).
Select the variant in System-Settings->keyboardlayout, which until now not yet has been used as the only active variant.
Test the effect (success).
Select again the first used variant as the only active variant.
Test the effect (no success).
....
and so on.

Now try the same again with two variants selected in the table 'Active Layouts'. Try each one by moving it to the top of the table. Both variants will be displayed conform to the change you have made in the symbols-file.

Actual Results:  
see above

Expected Results:  
see above

it seems to be also a problem in gnome.
Comment 1 Andriy Rysin 2010-07-28 13:47:07 UTC
Let's try to simplify your tests: try to active the layout without KDE or Gnome. Run the setxkbmap in the command line, e.g.:

setxkbmap -layout de -variant my_variant

and see if this works, then post the results.
Comment 2 manfred.pohler 2010-07-28 21:58:39 UTC
I already tried this before. Now I tried again. It is the same result. If there is only one entry in the table 'Active Layouts' and I change with "setxkbmap -layout de -variant ro_nodeadkeys" to the layout which I had selected first as my keyboard layout, then I get displayed the characters of the original version of this layout, not of the modified one. But if I change with "setxkbmap -layout de -variant ro" to another variant in which I have made the same modifications, I get displayed the characters  of the modified version.

If there are two variants enabled in the table 'Active Layouts' I always get displayed the modified version by switching between "setxkbmap -layout de -variant ro_nodeadkeys" and "setxkbmap -layout de -variant ro".
Comment 3 Andriy Rysin 2010-07-28 22:56:25 UTC
This is not a bug in KDE then, most probably you need to talk to xkeyboard-config (http://freedesktop.org/wiki/Software/XKeyboardConfig) guys - they would know more about how those things work.

If you attach the diff you made to your layout file I can try to help but my knowledge (and time) here is limited.
Comment 4 manfred.pohler 2010-07-29 22:49:43 UTC
1d0
< 
114c113
<     key <AD05> { [         t,    T,           tcedilla,     Tcedilla    ] };
---
>     key <AD05> { [         t,    T,       0x100021b,       0x100021a    ] };
117c116
<     key <AC02> { [         s,    S,           scedilla,     Scedilla    ] };
---
>     key <AC02> { [         s,    S,       0x1000219,       0x1000218    ] };
129c128
<     key <AD05> { [         t,    T,           tcedilla,     Tcedilla    ] };
---
>     key <AD05> { [         t,    T,       0x100021b,       0x100021a    ] };
132c131
<     key <AC02> { [         s,    S,           scedilla,     Scedilla    ] };
---
>     key <AC02> { [         s,    S,       0x1000219,       0x1000218    ] };
Comment 5 Andriy Rysin 2010-08-07 15:02:28 UTC
I think I found the problem - you need to delete compiled cache for your layouts.
Go to /var/lib/xkb/compiled and delete all *.xkm files, then set your layout again.
Comment 6 manfred.pohler 2010-08-09 19:52:43 UTC
That's it!
Thank you very much!