Bug 25349

Summary: Please apply proposed patch for Breton keyboard C'HWERTY
Product: xkeyboard-config Reporter: Dominique Pelle <dominique.pelle>
Component: GeneralAssignee: xkb
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium CC: thierry.vignaud
Version: unspecifiedKeywords: NEEDINFO
Hardware: Other   
OS: All   
URL: http://dominiko.livejournal.com/22848.html
Whiteboard:
i915 platform: i915 features:

Description Dominique Pelle 2009-11-29 14:08:17 UTC
Hi

I have installed Ubuntu-9.10 and I see that the Breton keyboard
C'HWERTY is now proposed.  A photo of this keyboard is visible here:

- http://upload.wikimedia.org/wikipedia/commons/9/9e/Bretona-klavaro.jpg

(notice the C'H key in the upper left part, under the keys 1 nd 2 and the CH key)

Unfortunately, the config file for this keyboard do not properly work without patching a few files as described below (1) (2) (3):

1) Support of the caps lock key for keys C´H and CH requires patching files /usr/share/X11/xkb/symbols/fr and /usr/share/X11/xkb/types/extra as follows:

      pel@pel-laptop:~$ diff -c /usr/share/X11/xkb/symbols/fr.orig /usr/share/X11/xkb/symbols/fr
      *** /usr/share/X11/xkb/symbols/fr.orig	2009-11-29 14:04:18.372308169 +0100
      --- /usr/share/X11/xkb/symbols/fr	2009-11-29 15:00:22.293311210 +0100
      ***************
      *** 723,730 ****
            // Second row
            // Handling the C'H key correctly requires an inputmethod (XIM)
            // See https://bugs.freedesktop.org/show_bug.cgi?id=19506
      !  // key <AD01> { [    trigraph_c_h,   trigraph_C_h,    trigraph_C_H,    Greek_alpha ] };
      !     key <AD01> { [           UF8FD,          UF8FE,           UF8FF,    Greek_alpha ] };
            key <AD02> { [               w,              W,     Greek_omega,    Greek_omega ] };
            key <AD03> { [               e,              E,        EuroSign,  Greek_epsilon ] };
            key <AD04> { [               r,              R,       Greek_rho,      Greek_rho ] };
      --- 723,732 ----
            // Second row
            // Handling the C'H key correctly requires an inputmethod (XIM)
            // See https://bugs.freedesktop.org/show_bug.cgi?id=19506
      !  // key <AD01> { type[group1] = "FOUR_LEVEL_C_HWERTY", 
      !  //              [    trigraph_c_h,   trigraph_C_h,    trigraph_C_H,    Greek_alpha ] };
      !     key <AD01> { type[group1] = "FOUR_LEVEL_C_HWERTY", 
      !                  [           UF8FD,          UF8FE,           UF8FF,    Greek_alpha ] };
            key <AD02> { [               w,              W,     Greek_omega,    Greek_omega ] };
            key <AD03> { [               e,              E,        EuroSign,  Greek_epsilon ] };
            key <AD04> { [               r,              R,       Greek_rho,      Greek_rho ] };
      ***************
      *** 761,768 ****
            key <AB06> { [               n,              N,        Greek_nu,       Greek_nu ] };
            // Handling the CH key correctly requires an inputmethod (XIM)
            // See https://bugs.freedesktop.org/show_bug.cgi?id=19506
      !  // key <AB07> { [      digraph_ch,     digraph_Ch,      digraph_CH,  Greek_omicron ] };
      !     key <AB07> { [           UF8FA,          UF8FB,           UF8FC,  Greek_omicron ] };
            key <AB08> { [          ntilde,         Ntilde                                  ] };
            key <AB09> { [          period,          colon,         section,      copyright ] };
            key <AB10> { [           comma,      semicolon,         percent                 ] };
      --- 763,772 ----
            key <AB06> { [               n,              N,        Greek_nu,       Greek_nu ] };
            // Handling the CH key correctly requires an inputmethod (XIM)
            // See https://bugs.freedesktop.org/show_bug.cgi?id=19506
      !  // key <AB07> { type[group1] = "FOUR_LEVEL_C_HWERTY", 
      !  //              [      digraph_ch,     digraph_Ch,       digraph_CH, Greek_omicron ] };
      !     key <AB07> { type[group1] = "FOUR_LEVEL_C_HWERTY", 
      !                  [           UF8FA,          UF8FB,            UF8FC, Greek_omicron ] };
            key <AB08> { [          ntilde,         Ntilde                                  ] };
            key <AB09> { [          period,          colon,         section,      copyright ] };
            key <AB10> { [           comma,      semicolon,         percent                 ] };

      pel@pel-laptop:~$ diff -c /usr/share/X11/xkb/types/extra.orig /usr/share/X11/xkb/types/extra
      *** /usr/share/X11/xkb/types/extra.orig	2009-11-29 14:23:11.416291776 +0100
      --- /usr/share/X11/xkb/types/extra	2009-11-29 14:42:02.116291991 +0100
      ***************
      *** 139,144 ****
      --- 139,165 ----
                level_name[Level4] = "Shift Alt";
                level_name[Level5] = "Lock";
            };
      + 
      + // Type for Breton keyboard C'HWERTY.
      + // It makes it possible to type the C'H C'h c'h trigraphs
      + // and CH Ch ch digraphs present on the keyboard.
      + // When typing capsLock, this key type is needed to
      + // output C'H and CH.
      +     type "FOUR_LEVEL_C_HWERTY" {
      +         modifiers = Shift+Lock+LevelThree;
      +         map[None] = Level1;
      +         map[Shift] = Level2;
      +         map[LevelThree] = Level3;
      +         map[Shift+LevelThree] = Level4;
      +         map[Lock]  = Level3;
      +         map[Lock+Shift] = Level1;
      +         map[Lock+LevelThree] = Level2;
      +         map[Lock+Shift+LevelThree] = Level4;
      +         level_name[Level1] = "Base";
      +         level_name[Level2] = "Shift";
      +         level_name[Level3] = "Alt Base";
      +         level_name[Level4] = "Shift Alt";
      +     };
        };
        
        // This enables the four level shifting also for the keypad.



2) Keysyms of trigraph C´H and digraph CH have not yet been added in X11. So until this is done in X11, supporting the Breton C'HWERTY keyboard requires private-use keysyms which can be done by adding a file ~/.XCompose:

      pel@pel-laptop:~$ cat ~/.XCompose
      #
      # Breton trigraph & digraphs
      # Dominique Pellé <dominique.pelle@gmail.com>
      #
      #<digraph_ch> : "ch"
      #<digraph_Ch> : "Ch"
      #<digraph_CH> : "CH"

      #<trigraph_c_h> : "c´h"
      #<trigraph_C_h> : "C´h"
      #<trigraph_C_H> : "C´H"

      <UF8FA> : "ch"
      <UF8FB> : "Ch"
      <UF8FC> : "CH"

      <UF8FD> : "c´h"
      <UF8FE> : "C´h"
      <UF8FF> : "C´H"

Can keysyms digraph_ch, digraph_Ch, digraph_CH, trigraph_C_h, trigraph_C_h, trigraph_C_H be added to x11?


3) Support of the C´H and CH keys requires an input methode (XIM). XIM can be enabled by adding "export GTK_IM_MODULE=xim" in file /etc/environment:

      pel@pel-laptop:~$ diff -c /etc/environment.orig /etc/environment
      *** /etc/environment.orig	2009-11-29 15:07:34.916311751 +0100
      --- /etc/environment	2009-11-29 14:14:08.676291508 +0100
      ***************
      *** 1 ****
      --- 1,2 ----
        PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
      + export GTK_IM_MODULE=xim

I realise that this last step (3) is not a bug but I mention it here if anybody wants to be able to make this keyboard work.

After doing all those changes (1) (2) (3), the C'HWERTY keyboard works fine in Ubuntu-9.10. 

See also an old bug report http://bugs.freedesktop.org/show_bug.cgi?id=19506 when Breton keyboard was added.

I describe these 3 steps to fix the Breton C'HWERTY keyboard at:
http://dominiko.livejournal.com/22848.html
Comment 1 Sergey V. Udaltsov 2009-11-30 15:51:52 UTC
A couple of things:

1. Could you please prepare a single patch?
2. Would it be possible to name new type according to the function, not to the usage?

Unfortunately the bits related to Compose and new keysyms are out of scope. I'd recommend filing new bug for keysyms against xorg, Input/XKB
Comment 2 GitLab Migration User 2018-12-28 00:34:47 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/issues/29.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.