LinuxQuestions.org
Review your favorite Linux distribution.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices


Reply
  Search this Thread
Old 04-02-2015, 12:58 AM   #1
naena
LQ Newbie
 
Registered: Mar 2011
Posts: 9

Rep: Reputation: 0
Added new keymap and there are errors


Hi, I am a newbie but tried to be overly smart. This is a brand new installation of Linux Mint dual booting with Windows 8.1 on an inexpensive but new notebook (Dell inspiron 14 - 3451).

Well, I read a tutorial and added a keymap after editing 5 files.
All these files are at /usr/share/X11/xkb/rules:
xorg.xml, xorg.lst, evdev.xml, base.xml, base.list
The symbols file is:
/usr/share/X11/xkb/symbols/lk

Now I get this error:

===============================
Error activating XKB configuration.
There can be various reasons for that.

If you report this situation as a bug, include the results of
• xprop -root | grep XKB
• gsettings get org.gnome.libgnomekbd.keyboard model
• gsettings get org.gnome.libgnomekbd.keyboard layouts
• gsettings get org.gnome.libgnomekbd.keyboard options
===============================

I went through the files for errors, found some and fixed them (I think). Still this same error pops up when I try to add the new layout. How do I do what the message tells me to do (in order to get help)?

May be I'll get some idea if I see the 'results' it is talking about.
But what does it mean by, for example, 'xprop -root | grep XKB'? Must be some console command, but I do not know even how to do that.

Any help or hint is gratefully appreciated.

Thanks.
 
Old 04-02-2015, 10:55 AM   #2
naena
LQ Newbie
 
Registered: Mar 2011
Posts: 9

Original Poster
Rep: Reputation: 0
I got bold and entered those three queries into the terminal screen. Here is what I see:

• xprop -root | grep XKB
Result:
_XKB_RULES_NAMES_BACKUP(STRING) = "evdev", "pc105", "us", "", ""
_XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", "terminate:ctrl_alt_bksp"

• gsettings get org.gnome.libgnomekbd.keyboard model
Result: ''
• gsettings get org.gnome.libgnomekbd.keyboard layouts
Result: @as []

• gsettings get org.gnome.libgnomekbd.keyboard options
Result: @as []


Is the problem caused by my deleting the *.xkm files at /var/lib/xkb before reboot? It appears that my edits remain after the reboot.

Any ideas?
 
Old 04-02-2015, 11:07 AM   #3
naena
LQ Newbie
 
Registered: Mar 2011
Posts: 9

Original Poster
Rep: Reputation: 0
The usr/share/X11/xkb/symbols/lk file

This is the file that contains the new layout variant I am trying to add. It is the last one:
SINGHALA - DUAL-SCRIPT (ROMANIZED SINGHALA)


Code:
// X Keyboard Extension file for Sinhala (Sri Lanka) (2004-04-22)
// Maintainer  : Harshula Jayasuriya <harshula@gmail.com>
// Last Updated: 2011-05-25
// This is a phonetic static mapping for a standard US-English keyboard
// (qwerty)
// http://www.nongnu.org/sinhala/doc/keymaps/sinhala-keyboard_3.html

// Repaya, Rakaransaya and Yansaya aren't inserted with A-r, R and Y,
// respectively. The problem lies with the XKB infrastructure which
// only allows a one-to-one mapping of keycodes to Unicode codepoints.
// Unfortunately, the 3 mentioned glyphs actually consists of 3
// Unicode codepoints each. The result is that the user must
// manually construct the glyph by typing each of the 3 codepoints.
// ALT-, represents the 'JOIN' key, it requires
// two codepoints, hence it also has to be manually constructed.
// Similarly, ALT-/ representing the 'TOUCH' key requires
// two codepoints.

// Repaya = rayanna,AL,ZWJ
// Rakaransaya = AL,ZWJ,rayanna
// Yansaya = AL,ZWJ,yayanna
// JOIN = AL,ZWJ
// TOUCH = ZWJ,AL

// Where,
// AL = Al Lakuna = ALT-a
// ZWJ = Zero Width Joiner = ALT-/
// rayanna = r
// yayanna = y

default partial alphanumeric_keys
xkb_symbols "sin_phonetic" {

//  include "si"
  name[Group1] = "Sinhala (phonetic)";
  key.type[Group1] = "FOUR_LEVEL";

  // q - p
  key <AD01> { [ Sinh_ri, Sinh_rii, Sinh_ru2, Sinh_ruu2 ] };
  key <AD02> { [ Sinh_ae, Sinh_aee, Sinh_ae2, Sinh_aee2 ] };
  key <AD03> { [ Sinh_e, Sinh_ee, Sinh_e2, Sinh_ee2 ] };
  key <AD04> { [ Sinh_ra, Sinh_al, Sinh_ra, NoSymbol ] };
  key <AD05> { [ Sinh_tha, Sinh_thha, Sinh_tta, Sinh_ttha ] };
  key <AD06> { [ Sinh_ya, Sinh_al, NoSymbol, NoSymbol ] };
  key <AD07> { [ Sinh_u, Sinh_uu, Sinh_u2, Sinh_uu2 ] };
  key <AD08> { [ Sinh_i, Sinh_ii, Sinh_i2, Sinh_ii2 ] };
  key <AD09> { [ Sinh_o, Sinh_oo, Sinh_o2, Sinh_oo2 ] };
  key <AD10> { [ Sinh_pa, Sinh_pha, NoSymbol, NoSymbol ] };

  // a - l
  key <AC01> { [ Sinh_a, Sinh_aa, Sinh_al, Sinh_aa2 ] };
  key <AC02> { [ Sinh_sa, Sinh_sha, Sinh_ssha, NoSymbol ] };
  key <AC03> { [ Sinh_dha, Sinh_dhha, Sinh_dda, Sinh_ddha ] };
  key <AC04> { [ Sinh_fa, NoSymbol, Sinh_ai2, Sinh_ai ] };
  key <AC05> { [ Sinh_ga, Sinh_gha, Sinh_nga, NoSymbol ] };
  key <AC06> { [ Sinh_ha, Sinh_h2, Sinh_au2, Sinh_au ] };
  key <AC07> { [ Sinh_ja, Sinh_jha, Sinh_nja, NoSymbol ] };
  key <AC08> { [ Sinh_ka, Sinh_kha, Sinh_lu, Sinh_luu ] };
  key <AC09> { [ Sinh_la, Sinh_lla, Sinh_lu2, Sinh_luu2 ] };

  // z - ?
  key <AB01> { [ Sinh_nya, Sinh_jnya, NoSymbol, NoSymbol ] };
  key <AB02> { [ Sinh_ndha, Sinh_ndda, NoSymbol, NoSymbol ] };
  key <AB03> { [ Sinh_ca, Sinh_cha, NoSymbol, NoSymbol ] };
  key <AB04> { [ Sinh_va, NoSymbol, NoSymbol, NoSymbol ] };
  key <AB05> { [ Sinh_ba, Sinh_bha, NoSymbol, NoSymbol ] };
  key <AB06> { [ Sinh_na, Sinh_nna, Sinh_ng, Sinh_ng2 ] };
  key <AB07> { [ Sinh_ma, Sinh_mba, NoSymbol, NoSymbol ] };
  key <AB08> { [ any, any, Sinh_al, NoSymbol ] };
  key <AB09> { [ any, any, Sinh_kunddaliya, NoSymbol ] };
  key <AB10> { [ any, any, 0x100200d, NoSymbol ] };

  // Space
  include "nbsp(nb2zwnj3s)"

  include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "tam_unicode" {
    include "in(tam_unicode)"
    name[Group1]= "Tamil (Sri Lanka, Unicode)";
};

partial alphanumeric_keys
xkb_symbols "tam_TAB" {
    include "in(tam_TAB)"
    name[Group1]= "Tamil (Sri Lanka, TAB Typewriter)";
};

// SINGHALA - DUAL-SCRIPT (ROMANIZED SINGHALA)
// ===========================================
//
// This keymap is made for fast typing romanized Singhala. Only three keys
// produce letters different from those stamped on keys:
// Q -> Edh, W -> Ash, F -> Thorn.
//
// This keyboard can be used to type Singhala, Sanskrit and Pali to yield text
// in the traditional Singhala script when used in conjunction with a Singhala
// smartfont. You can type English with it too, though with some constraint on
// key selection, especially the capital letters. It provides the accent marks
// necessary to type PTS Pali as well.
//
// The font below can be used to type in the traditional Singhala script using
// the phoneme chart 'hodiya':
// smartfont: http://smartfonts.net/singhala/anura.ttf
// hodiya: http://ahangama.com/hodiya/hodiya3.htm
//
// JC Ahangama - jc@ahangama.com


partial alphanumeric_keys
xkb_symbols "rs" {
  name[Group1]= "Singhala";
  include "us(basic)"
//
//
//             UNSHIFTED,         SHIFT,         ALTGR,   ALTGR-SHIFT
//             ------------------------------------------------------
//
  key  { [         grave,    asciiTilde,    VoidSymbol,    VoidSymbol ] };
  key  { [           one,        exclam,   dead_macron,    VoidSymbol ] };
  key  { [           two,            at, dead_belowdot,    VoidSymbol ] };
  key  { [         three,    numbersign, dead_abovedot,    VoidSymbol ] };
  key  { [          four,        dollar,      currency,    VoidSymbol ] };
  key  { [          five,       percent,           UB0,    VoidSymbol ] };
  key  { [           six,   asciicircum,    onequarter,    VoidSymbol ] };
  key  { [         seven,     ampersand,       onehalf,    VoidSymbol ] };
  key  { [         eight,      asterisk, threequarters,    VoidSymbol ] };
  key  { [          nine,     parenleft,    VoidSymbol,    VoidSymbol ] };
  key  { [          zero,    parenright,    VoidSymbol,    VoidSymbol ] };
  key  { [         minus,    underscore,    VoidSymbol,    VoidSymbol ] };
  key  { [         equal,          plus,    VoidSymbol,    VoidSymbol ] };

  key  { [           eth,           Eth,             q,             Q ] };
  key  { [            ae,         acute,             w,             W ] };
  key  { [             e,        eacute,    ediaeresis,             E ] };
  key  { [             r,   ucircumflex,    VoidSymbol,             R ] };
  key  { [             t,    VoidSymbol,    VoidSymbol,             T ] };
  key  { [             y,    VoidSymbol,    VoidSymbol,             Y ] };
  key  { [             u,        uacute,    udiaeresis,             U ] };
  key  { [             i,        iacute,    idiaeresis,             I ] };
  key  { [             o,        oacute,    odiaeresis,             O ] };
  key  { [             p,    VoidSymbol,    VoidSymbol,             P ] };
  key  { [   bracketleft,     braceleft,    VoidSymbol,    VoidSymbol ] };
  key  { [  bracketright,    braceright,    VoidSymbol,    VoidSymbol ] };

  key  { [             a,        aacute,    adiaeresis,             A ] };
  key  { [             s,    VoidSymbol,    VoidSymbol,             S ] };
  key  { [             d,             D,    VoidSymbol,             D ] };
  key  { [         thorn,             f,    VoidSymbol,             F ] };
  key  { [             g,             G,    VoidSymbol,             G ] };
  key  { [             h,    VoidSymbol,    VoidSymbol,             H ] };
  key  { [             j,      ccedilla,    VoidSymbol,             J ] };
  key  { [             k,    VoidSymbol,    VoidSymbol,             K ] };
  key  { [             l,             L,   ocircumflex,    VoidSymbol ] };
  key  { [     semicolon,         colon,    VoidSymbol,    VoidSymbol ] };
  key  { [    apostrophe,      quotedbl,    VoidSymbol,    VoidSymbol ] };

  key  { [             z,    VoidSymbol,    VoidSymbol,             Z ] };
  key  { [             x,    VoidSymbol,    VoidSymbol,             X ] };
  key  { [             c,      ccedilla,    VoidSymbol,             C ] };
  key  { [             v,    VoidSymbol,    VoidSymbol,             V ] };
  key  { [             b,             B,    VoidSymbol,             B ] };
  key  { [             n,             N,        ntilde,             N ] };
  key  { [             m,    VoidSymbol,    VoidSymbol,             M ] };
  key  { [         comma,          less,           UAB,    VoidSymbol ] };
  key  { [        period,       greater,           UBB,    VoidSymbol ] };
  key  { [         slash,      question,         U200C,    VoidSymbol ] };
  key  { [     backslash,           bar,    VoidSymbol,    VoidSymbol ] };

  key  { [         space,           UA0,    VoidSymbol,    VoidSymbol ] };

  include "level3(ralt_switch)"
};
 
Old 04-02-2015, 11:26 AM   #4
DavidMcCann
LQ Veteran
 
Registered: Jul 2006
Location: London
Distribution: PCLinuxOS, Debian
Posts: 6,142

Rep: Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314
I see that the terminal command only lists the us keyboard, so presumably your new driver is not being loaded. Incidentally, a nicer command to see what you've got is
setxkbmap -print

Looking at your symbol file, I think you need to use "asciitilde" without a capital T and "ETH" rather than "Eth".
 
1 members found this post helpful.
Old 04-02-2015, 10:35 PM   #5
naena
LQ Newbie
 
Registered: Mar 2011
Posts: 9

Original Poster
Rep: Reputation: 0
Is there a bug?

David,

Thank you for pointing out the mistakes. I fixed them. I decided to keep this as an independent layout and added it as the last one. So now the file under /symbols/ is 'sing'.

Something I learned is that the x11/ branch of the file system is under user/share/ in some distros (Debian and Ubuntu?) and it remains under /etc/ in the others. In Mint, at least, there are four sets of files with identical contents.
base, evdev, xfree86 and xorg. Each wiht 'lst' and 'xml' extensions.

It would be nice to know which pair to edit so that the changes get copied to the others on restart, avoiding the risk of your introducing typos into all of them. I think it is the 'evdev' set (that you do not get in Puppy Linux).


Here are the latest responses to the CLI queries with yours on top:
----------------------------------------------------------------
jc@jc-Inspiron-3451 ~ $ setxkbmap -print
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)+terminate(ctrl_alt_bksp)" };
xkb_geometry { include "pc(pc105)" };
};
jc@jc-Inspiron-3451 ~ $ xprop -root | grep XKB
_XKB_RULES_NAMES_BACKUP(STRING) = "evdev", "pc105", "us", "", ""
_XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", "terminate:ctrl_alt_bksp"
jc@jc-Inspiron-3451 ~ $ gsettings get org.gnome.libgnomekbd.keyboard model
''
jc@jc-Inspiron-3451 ~ $ gsettings get org.gnome.libgnomekbd.keyboard layouts
['sing', 'us']
jc@jc-Inspiron-3451 ~ $ gsettings get org.gnome.libgnomekbd.keyboard options
['terminate\tterminate:ctrl_alt_bksp']
----------------------------------------------------------------


What's with that 'tterminate' in that last one? Is there some top secret wisdom behind it or is it showing a bug?

Although it shows that 'sing' is the default, I do not get 'eth' at Q. It is still 'us'.


My new layout (/usr/share/X11/xkb/symbols/sing):
Code:
// SINGHALA - DUAL-SCRIPT (ROMANIZED SINGHALA)
// ===========================================
//
// This keymap is made for fast typing romanized Singhala. Only three keys
// produce letters different from those stamped on key caps:
// Q -> Edh, W -> Ash, F -> Thorn.
//
// This keyboard can be used to type Singhala, Sanskrit and Pali to yield text
// in the traditional Singhala script when used in conjunction with a Singhala
// smartfont. You can type English with it too, though with some constraint on
// key selection, especially the capital letters. It provides the accent marks
// necessary to type PTS Pali as well.
//
// The font below can be used to type in the traditional Singhala script using
// the phoneme chart (Singhla:'hodiya' Sanskrit: 'soDI'):
// smartfont: http://smartfonts.net/singhala/anura.ttf
// hodiya: http://ahangama.com/hodiya/hodiya3.htm
//
// JC Ahangama - jc@ahangama.com


default partial alphanumeric_keys
xkb_symbols "basic" {
  name[Group1]= "Singhala";
  include "us(basic)"
  include "level3(ralt_switch)"
//
//
//             UNSHIFTED,         SHIFT,         ALTGR,   ALTGR-SHIFT
//             ------------------------------------------------------
//
  key  { [         grave,    asciitilde,    VoidSymbol,    VoidSymbol ] };
  key  { [           one,        exclam,   dead_macron,    VoidSymbol ] };
  key  { [           two,            at, dead_belowdot,    VoidSymbol ] };
  key  { [         three,    numbersign, dead_abovedot,    VoidSymbol ] };
  key  { [          four,        dollar,      currency,    VoidSymbol ] };
  key  { [          five,       percent,           UB0,    VoidSymbol ] };
  key  { [           six,   asciicircum,    onequarter,    VoidSymbol ] };
  key  { [         seven,     ampersand,       onehalf,    VoidSymbol ] };
  key  { [         eight,      asterisk, threequarters,    VoidSymbol ] };
  key  { [          nine,     parenleft,    VoidSymbol,    VoidSymbol ] };
  key  { [          zero,    parenright,    VoidSymbol,    VoidSymbol ] };
  key  { [         minus,    underscore,    VoidSymbol,    VoidSymbol ] };
  key  { [         equal,          plus,    VoidSymbol,    VoidSymbol ] };

  key  { [           eth,           Eth,             q,             Q ] };
  key  { [            ae,         acute,             w,             W ] };
  key  { [             e,        eacute,    ediaeresis,             E ] };
  key  { [             r,   ucircumflex,    VoidSymbol,             R ] };
  key  { [             t,    VoidSymbol,    VoidSymbol,             T ] };
  key  { [             y,    VoidSymbol,    VoidSymbol,             Y ] };
  key  { [             u,        uacute,    udiaeresis,             U ] };
  key  { [             i,        iacute,    idiaeresis,             I ] };
  key  { [             o,        oacute,    odiaeresis,             O ] };
  key  { [             p,    VoidSymbol,    VoidSymbol,             P ] };
  key  { [   bracketleft,     braceleft,    VoidSymbol,    VoidSymbol ] };
  key  { [  bracketright,    braceright,    VoidSymbol,    VoidSymbol ] };

  key  { [             a,        aacute,    adiaeresis,             A ] };
  key  { [             s,    VoidSymbol,    VoidSymbol,             S ] };
  key  { [             d,             D,    VoidSymbol,             D ] };
  key  { [         thorn,             f,    VoidSymbol,             F ] };
  key  { [             g,             G,    VoidSymbol,             G ] };
  key  { [             h,    VoidSymbol,    VoidSymbol,             H ] };
  key  { [             j,      ccedilla,    VoidSymbol,             J ] };
  key  { [             k,    VoidSymbol,    VoidSymbol,             K ] };
  key  { [             l,             L,   ocircumflex,    VoidSymbol ] };
  key  { [     semicolon,         colon,    VoidSymbol,    VoidSymbol ] };
  key  { [    apostrophe,      quotedbl,    VoidSymbol,    VoidSymbol ] };

  key  { [             z,    VoidSymbol,    VoidSymbol,             Z ] };
  key  { [             x,    VoidSymbol,    VoidSymbol,             X ] };
  key  { [             c,      ccedilla,    VoidSymbol,             C ] };
  key  { [             v,    VoidSymbol,    VoidSymbol,             V ] };
  key  { [             b,             B,    VoidSymbol,             B ] };
  key  { [             n,             N,        ntilde,             N ] };
  key  { [             m,    VoidSymbol,    VoidSymbol,             M ] };
  key  { [         comma,          less,           UAB,    VoidSymbol ] };
  key  { [        period,       greater,           UBB,    VoidSymbol ] };
  key  { [         slash,      question,         U200C,    VoidSymbol ] };
  key  { [     backslash,           bar,    VoidSymbol,    VoidSymbol ] };

  key  { [         space,           UA0,    VoidSymbol,    VoidSymbol ] };

};
Last layout inside the XML files:

Code:
    <layout>
      <configItem>
        <name>sing</name>

        <shortDescription>Singhala</shortDescription>
        <description>Dual-script Singhala</description>
        <languageList>
          <iso639Id>eng</iso639Id>
        </languageList>
      </configItem>
      <variantList/>
    </layout>
Last line under '! layout' in the 'lst' files:
sing Singhala
 
Old 04-03-2015, 11:16 AM   #6
DavidMcCann
LQ Veteran
 
Registered: Jul 2006
Location: London
Distribution: PCLinuxOS, Debian
Posts: 6,142

Rep: Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314Reputation: 2314
With my custom keyboards, all I did was create the drivers for symbols/. I did alter evdev, but only because I've moved things like CAPS and RCTL and added COMP, LVL3, and GPSH.

The fact that only us is listed shows there's still a problem with the driver, or else it wasn't installed properly. In the driver I noticed you've used short forms like UA0. I haven't investigated, but it might require U00A0. How did you install the new driver?

Last edited by DavidMcCann; 04-05-2015 at 11:06 AM. Reason: correction
 
Old 04-09-2015, 02:16 PM   #7
naena
LQ Newbie
 
Registered: Mar 2011
Posts: 9

Original Poster
Rep: Reputation: 0
(SOLVED) How to create a custom keymap

This issue is solved. The error was I omitted the key names (scan codes) column.

Here is the layout tested in Kubuntu and Mint:
File location:
Kubuntu and Mint: \usr\share\X11\xkb\symbols\sing
Puppy Linux and others: \etc\X11\xkb\symbols\pc\sing (not tested)

Code:
// SINGHALA - DUAL-SCRIPT (ROMANIZED SINGHALA)
// ===========================================
//
// This keymap is made for fast typing romanized Singhala. Only three keys
// produce letters different from those stamped on key caps:
// Q -> Edh (ð), W -> Ash (æ), F -> Thorn (þ). 
//  
// It provides the accent marks necessary to type (Latin) PTS Pali as well:
// Deadkeys:
// AltGr-1 = bar for long vowels, AltGr-2 = dot below (for muurdhaja) and
// AltGr-3 = above dot (for Anusvara m)
// 
// And some handy charactes...
// AltGr-5 = UB0 = degree sign; AltGr-minus = em-dash;
// AltGr-< and AltGr-> = UAB and UBB = left and right double angle quotes.
//
// This keyboard can be used to type Singhala, Sanskrit and Pali to yield text
// in the traditional Singhala script when used in conjunction with a Singhala
// smartfont. You can type English with it too, though with some constraint on
// key selection, especially the capital letters not used in Singhala.
//
// The font below can be used to type in the traditional Singhala script using
// the phoneme chart (Singhla:'hodiya' Sanskrit: 'soDI'):
// smartfont: http://smartfonts.net/singhala/anura.ttf
// hodiya: http://ahangama.com/hodiya/hodiya3.htm
//
// Dedication:
// Rev. Fr. Theodore G. Perera, Ven. Gnanaponika, Ven. Mettavihari
//
//
// JC Ahangama - jc@ahangama.com

default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
  name[Group1]= "Singhala";
  include "us(basic)"
  include "level3(ralt_switch)"
//
//                   UNSHIFTED,         SHIFT,         ALTGR,   ALTGR-SHIFT
//                   ------------------------------------------------------
//
  key <TLDE> { [         grave,    asciitilde,    VoidSymbol,    VoidSymbol ] };
  key <AE01> { [           one,        exclam,   dead_macron,    VoidSymbol ] };
  key <AE02> { [           two,            at, dead_belowdot,    VoidSymbol ] };
  key <AE03> { [         three,    numbersign, dead_abovedot,    VoidSymbol ] };
  key <AE04> { [          four,        dollar,      currency,    VoidSymbol ] };
  key <AE05> { [          five,       percent,           UB0,    VoidSymbol ] };
  key <AE06> { [           six,   asciicircum,    onequarter,    VoidSymbol ] };
  key <AE07> { [         seven,     ampersand,       onehalf,    VoidSymbol ] };
  key <AE08> { [         eight,      asterisk, threequarters,    VoidSymbol ] };
  key <AE09> { [          nine,     parenleft,    VoidSymbol,    VoidSymbol ] };
  key <AE10> { [          zero,    parenright,    VoidSymbol,    VoidSymbol ] };
  key <AE11> { [         minus,    underscore,         U2014,    VoidSymbol ] };
  key <AE12> { [         equal,          plus,    VoidSymbol,    VoidSymbol ] };

  key <AD01> { [           eth,           ETH,             q,             Q ] };
  key <AD02> { [            ae,         acute,             w,             W ] };
  key <AD03> { [             e,        eacute,    ediaeresis,             E ] };
  key <AD04> { [             r,   ucircumflex,    VoidSymbol,             R ] };
  key <AD05> { [             t,    VoidSymbol,    VoidSymbol,             T ] };
  key <AD06> { [             y,    VoidSymbol,    VoidSymbol,             Y ] };
  key <AD07> { [             u,        uacute,    udiaeresis,             U ] };
  key <AD08> { [             i,        iacute,    idiaeresis,             I ] };
  key <AD09> { [             o,        oacute,    odiaeresis,             O ] };
  key <AD10> { [             p,    VoidSymbol,    VoidSymbol,             P ] };
  key <AD11> { [   bracketleft,     braceleft,    VoidSymbol,    VoidSymbol ] };
  key <AD12> { [  bracketright,    braceright,    VoidSymbol,    VoidSymbol ] };

  key <AC01> { [             a,        aacute,    adiaeresis,             A ] };
  key <AC02> { [             s,    VoidSymbol,    VoidSymbol,             S ] };
  key <AC03> { [             d,             D,    VoidSymbol,    VoidSymbol ] };
  key <AC04> { [         thorn,             f,    VoidSymbol,             F ] };
  key <AC05> { [             g,             G,    VoidSymbol,    VoidSymbol ] };
  key <AC06> { [             h,    VoidSymbol,    VoidSymbol,             H ] };
  key <AC07> { [             j,      ccedilla,    VoidSymbol,             J ] };
  key <AC08> { [             k,    VoidSymbol,    VoidSymbol,             K ] };
  key <AC09> { [             l,             L,   ocircumflex,             L ] };
  key <AC10> { [     semicolon,         colon,    VoidSymbol,    VoidSymbol ] };
  key <AC11> { [    apostrophe,      quotedbl,    VoidSymbol,    VoidSymbol ] };

  key <AB01> { [             z,    VoidSymbol,    VoidSymbol,             Z ] };
  key <AB02> { [             x,    VoidSymbol,    VoidSymbol,             X ] };
  key <AB03> { [             c,      ccedilla,    VoidSymbol,             C ] };
  key <AB04> { [             v,    VoidSymbol,    VoidSymbol,             V ] };
  key <AB05> { [             b,             B,    VoidSymbol,    VoidSymbol ] };
  key <AB06> { [             n,             N,        ntilde,             N ] };
  key <AB07> { [             m,    VoidSymbol,    VoidSymbol,             M ] };
  key <AB08> { [         comma,          less,           UAB,    VoidSymbol ] };
  key <AB09> { [        period,       greater,           UBB,    VoidSymbol ] };
  key <AB10> { [         slash,      question,         U200C,    VoidSymbol ] };
  key <AB11> { [     backslash,           bar,    VoidSymbol,    VoidSymbol ] };

  key <BKSL> { [         space,           UA0,    VoidSymbol,    VoidSymbol ] };
};

The next file edited gets the text given below as the definition of the last layout under the <layoutList> tag:
File: \usr\share\X11\xkb\rules\evdev.xml (Kubuntu and Mint)
Some other distros: \etc\X11\xkb\rules\base.xml

Code:
    <layout>
      <configItem>
        <name>sing</name>
 
        <shortDescription>Singhala</shortDescription>
        <description>Singhala Dual-script</description>
        <languageList>
          <iso639Id>eng</iso639Id>
        </languageList>
      </configItem>
      <variantList/>
    </layout>    
  </layoutList>
NOTE: '</layoutList>' is given just to hint that this is the last layout in the list.


Lastly, the given line was added as the last item under '! layout' section in the File: \usr\share\X11\xkb\rules\evdev.lst (Kubuntu and Mint)
Some other distros: \etc\X11\xkb\rules\base.lst
Code:
  sing            Singhala

This is a good example for Latin character languages when improvements are needed.


Thank you for all the help and efforts trying to solve my problem. My apologies for the error.
 
Old 04-09-2015, 02:24 PM   #8
naena
LQ Newbie
 
Registered: Mar 2011
Posts: 9

Original Poster
Rep: Reputation: 0
I forgot to tell the following:

In the last code given above, 'sing' means the name of the layout file. 'Singhala' means the 'name[Group1]' as given in that file.

The entry between the tags <description></description> tags, 'Dual-script Singhala' is what you see in the computer as the name of the keyboard variant to add (under the language 'Singhala').

You can make similar keyboards for Windows using Microsoft Keyboard Layout Creator available for download.

Last edited by naena; 04-09-2015 at 02:25 PM. Reason: typo
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Are these error harmful? -.sd1 Soft Errors: 0 Hard Errors: 6 Transport Errors: 0 manalisharmabe Solaris / OpenSolaris 2 10-04-2013 11:55 AM
Help: Added HDD gives no added free space? LouArnold Linux - Hardware 5 10-12-2009 11:27 AM
Changing Linux keymap to reflect dual-booted WinXP keymap AbuKaidman Linux - Newbie 2 07-18-2009 03:05 AM
getent passwd errors - no users added jamiegordon Linux - Software 1 01-03-2008 09:33 AM
what's this message - keymap errors? jayeola Linux - Kernel 1 05-09-2006 04:48 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie

All times are GMT -5. The time now is 07:25 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration