I have the same issue. From the doc, one could guess that the correct syntax would be something like that :
$ setxkbmap -I$HOME/.config/xkb -option mine:accent
Note : ~
doesn't work with the -I
option
with
~/.config/xkb/symbols/azerty_altgr
partial default
xkb_symbols "accent" {
include "level3(ralt_switch)"
key <AE02> { [ NoSymbol, NoSymbol, eacute, NoSymbol ] };
key <AE07> { [ NoSymbol, NoSymbol, egrave, NoSymbol ] };
key <AE09> { [ NoSymbol, NoSymbol, asciicircum, NoSymbol ] };
key <AE10> { [ NoSymbol, NoSymbol, agrave, NoSymbol ] };
};
or whatever symbole file you have and
~/.config/xkb/rules/evdev
! option = symbols
mine:accent = +azerty_altgr(accent)
Unfortunately, it doesn't work.
The only solution I found is the following :
Use the same files described above. Set all native option using setxkbmap -option caps:swapescape,whatever
. Then :
$ setxkbmap -print > tempfile.txt
and edit tempfile.txt
in order to add your custom option in the xkb_symbols
line :
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+fr:2+inet(evdev)+capslock(swapescape)+azerty_altgr(accent)" };
xkb_geometry { include "pc(pc104)" };
};
and finaly :
xkbcomp -I$HOME/.config/xkb tempfile.txt $DISPLAY
It can be generalised for any number of options.
This solution is deprecated according to Archlinux wiki.
Can't your user just click on icon which will run xkbcomp
or xmodmap
which will load the layout?
Edit:
I believe it's not so simple task. You will need to prepare a method of deploying files in places that only root user can access. Probably preparing a system software package (like .deb or .rpm) is best idea. I would use puppet ;-) It would add xkb keyboard layout then you have to add new layout to users' configuration. I can't help you with KDE but in gnome there is a simple tool to get/set settings of dconf – gnome setting store. It is gsettings
and it can set up xkb
input sources.
Example:
read input sources:
`gsettings get org.gnome.desktop.input-sources sources
[('xkb', 'pl'), ('xkb', 'us')]
setup new keyboard layoyts:
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'pl'),('xkb','us'),('xkb', 'de+mac')]"`
and there will be an input-sources applet in "systray" user can choose from:
But it is for one user only. To make such settings system wide you need to prepare
a schema in /etc/dconf/db/localxkb
:
[org/gnome/desktop/input-sources]
sources="[('xkb', 'pl'),('xkb','us'),('xkb', 'de+mac')]"
One single software package, which will be installed by user using software management software would do the thing.
Best Answer
In the
xkbprint
man page, it shows..I therefore assume that this should do the trick for you: