Linux - NewbieThis 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
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
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".
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 ] };
};
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
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
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.
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
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.