Added the xkb-mod from Dropbox

This commit is contained in:
Øystein Bech Gadmar 2015-02-12 22:59:18 +01:00 committed by Øystein Bech Gadmar
parent 60ec837caa
commit 4f838fd45d
173 changed files with 68202 additions and 4 deletions

View File

@ -1,11 +1,12 @@
xkb-mod_2-5-1-3
===============
DreymaR's Big Bag of Keyboard Tricks
====================================
"DreymaR's Big Bag of Keyboard Tricks" for Linux (XKB v2.5.1.3)
For Linux (updated to XKB-data v2.12.1)
* New "Colemak[eD]" AltGr mappings (lv 3-4) putting dead keys on AltGr+symbol keys and reworking most other mappings
* Angle/Wide modifications to improve wrist angles, hand spacing and right pinky stretch/load effort
* An Extend layer using Caps Lock for its modifier (lv 5-8; "Extend") for navigation from the home position and more
* Angle/Wide modifications to improve wrist angles, hand spacing and right pinky stretch/load effort
* Curl modifications to improve hand curvature
* For several locales, a 'Unified Symbols' layout with only a few necessary locale changes from the standard Colemak[eD];
* Also, a layout to 'Keep Local Symbols' like their default (QWERTY-type) counterparts and key cap markings for that locale
* Access to Cyrillic, Greek and Hebrew letters using layout toggling to intuitive phonetic Colemak layouts

24
README_dreymar-xmod.txt Normal file
View File

@ -0,0 +1,24 @@
# =================================================================
# === INSTALL-DREYMAR-XMOD.sh for DreymaR's XKB modifications ===
# === by Øystein Bech "DreymaR" Gadmar, 2015 ===
# =================================================================
#
# DreymaR's Big Bag Of Tricks install script (by GadOE, 2015-01)
#
# Shell script to apply DreymaR's changes to the X keyboard files:
# - AngleWide Ergonomic keyboard models for pc104/pc105 keyboards,
# - Extend mappings as a Misc option and CapsLock as a chooser (using lv5-8),
# - the Colemak [edition DreymaR] layout, using my own lv3-4 mappings,
# - locale variants of Colemak[eD] with 'local' or 'unified' symbol keys,
# - mirrored Colemak[eD] for one-handed typing,
# - and the Tarmak(1-4) transitional (step-by-step) Colemak learning layouts.
#
# - By default, this script creates a backup of the X11 files if none exist.
# - With '-o', overwrite the system X11 files (makes the mod GUI accessible).
# - With '-s <mdl loc sym>', specify a model/layout to activate immediately.
# (Shortstring format: -s '[4|5][n|a|w] loc [ks|us]'; 'loc'(ale) is 2-letter.
# Some model shortstr examples: '4n' is pc104, '5w' is pc105AngleWide etc.
# E.g.: -s '5n fr us' is normal pc105 model, French Colemak[eD]'USym'.)
# - With '-?', list further instructions and default values.
#
# Happy xkb-hacking! Øystein Bech "DreymaR" Gadmar

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -0,0 +1,48 @@
MAKING THE CUT/COPY/PASTE KEYS WORK WITH GTK APPS:
**************************************************
by DreymaR, 2013 (thanks to Kuglee on the Colemak forum!)
- With my Extend mappings for instance, you can make the keyboard send multimedia keys
- These have virtual key names XF86### where ### is Cut/Copy/Paste for my X/C/V mappings
- Those keys are sent to the system but not all of them do anything useful automatically
- The snippets below tell GTK to map the edit keys to actions so they work (in GTK apps at least)
- Copy the gtkrc-2.0 part into ~/.gtkrc-2.0 (make a new file if you don't have it) for gtk-2
- Copy the gtk.css part into ~/.config/gtk-3.0/gtk.css for gtk-3
- (If you're new to this, note the initial periods in the file/folder names: That means hidden.)
# Old method: I used to enclose the below as separate files. Now, the install script contains all.
# Using those files, the following commands would install them (run from their dir):
# cat gtkrc-2.0 >> ~/.gtkrc-2.0
# cat gtk.css >> ~/.config/gtk-3.0/gtk.css
CONTENT OF THE NECESSARY FILES:
******************************
~/.gtkrc-2.0
#########################
binding "gtk-xf86cut-copy-paste"
{
bind "XF86Cut" { "cut-clipboard" () }
bind "XF86Copy" { "copy-clipboard" () }
bind "XF86Paste" { "paste-clipboard" () }
}
class "*" binding "gtk-xf86cut-copy-paste"
#########################
~/.config/gtk-3.0/gtk.css
#########################
@binding-set gtk-xf86cut-copy-paste
{
bind "XF86Cut" { "cut-clipboard" () };
bind "XF86Copy" { "copy-clipboard" () };
bind "XF86Paste" { "paste-clipboard" () };
}
* {
gtk-key-bindings: gtk-xf86cut-copy-paste
}
#########################

View File

@ -0,0 +1,104 @@
#!/bin/bash
# ======================================================
# === installgtk.sh to enable cut/copy/paste keys ===
# === by Øystein Bech "DreymaR" Gadmar, 2014 ===
# ======================================================
# - Thanks to Kuglee on the Colemak forum for researching these bindings!
# - With my Extend mappings for instance, you can make the keyboard send XF86 multimedia keys
# - These are called XF86### where ### is for instance Cut/Copy/Paste (on Extend X/C/V)
# - Those key events are sent to the OS but not all of them do anything useful currently
# - The below script tells GTK to map the edit keys to actions so they work (in GTK apps at least)
HeadStr="DreymaR's GTK install script (by GadOE, 2014)"
DescStr=\
"Shell script to enable cut/copy/paste XF86 keys\n"\
" for GTK 2.0 and 3.0 config files in ~/ ."
#---------- init --------------------------------------
MyNAME=`basename $0`
#~ MyPATH=`dirname $0`
HelpStr="Usage: sh ${MyNAME} [no args]\n"\
"\n••• Please read this script's comments for more info on how it works •••\n"
gtkfile[2]='.gtkrc-2.0'
gtktext[2]='binding "gtk-xf86cut-copy-paste"
{
bind "XF86Cut" { "cut-clipboard" () }
bind "XF86Copy" { "copy-clipboard" () }
bind "XF86Paste" { "paste-clipboard" () }
}
class "*" binding "gtk-xf86cut-copy-paste"
'
gtkfile[3]='.config/gtk-3.0/gtk.css'
gtktext[3]='@binding-set gtk-xf86cut-copy-paste
{
bind "XF86Cut" { "cut-clipboard" () };
bind "XF86Copy" { "copy-clipboard" () };
bind "XF86Paste" { "paste-clipboard" () };
}
* {
gtk-key-bindings: gtk-xf86cut-copy-paste
}
'
#---------- subroutines -------------------------------
MyMsg()
{
printf "\n••• $1 •••\n\n"
}
PrintHelpAndExit()
{
MyMsg "${HeadStr}"
printf "${DescStr}\n"
printf "${HelpStr}\n"
exit $1
}
MyEcho()
{
printf "$1\n"
[ -z "$2" ] || printf "$1\n" >> "$2"
}
#---------- command line parser -----------------------
while getopts "h?" cmdarg; do
case $cmdarg in
h) PrintHelpAndExit 0 ;;
\?) PrintHelpAndExit 0 ;;
:) PrintHelpAndExit 1 ;;
esac
done
#---------- main --------------------------------------
MyMsg "$HeadStr"
#~ MyEcho "• Working from `pwd`"
# If not already there, add GTK cut/copy/paste key bindings to GTK 2.0 and 3.0 config files
for i in 2 3; do
#~ MyEcho "${i}.0: '$(grep "gtk-xf86cut-copy-paste" "$HOME/${gtkfile[$i]}")'"
#~ MyEcho "\n${gtkfile[$i]}\n'''${gtktext[$i]}'''"; continue
if [ "$(grep "gtk-xf86cut-copy-paste" "$HOME/${gtkfile[$i]}" 2> /dev/null)" == "" ]; then
echo "${gtktext[$i]}" >> "$HOME/${gtkfile[$i]}"
MyEcho "• GTK ${i}.0 Cut/Copy/Paste config generated"
else
MyEcho "• GTK ${i}.0 Cut/Copy/Paste config already present"
fi
done
MyMsg "${MyNAME} finished!"; exit 0
# (Originally, I copied over files in the current dir using `cat ./"${gtkfile[$i]}"`)
#~ [ "$(grep "gtk-xf86cut-copy-paste" "$HOME/config/gtk-3.0/gtk.css")" == "" ] && \
#~ cat ./gtk.css >> ~/.config/gtk-3.0/gtk.css || MyEcho "• GTK 3.0 config already present"

23
dreymar-xtools/key-xev.sh Normal file
View File

@ -0,0 +1,23 @@
#!/bin/sh
# =====================================================
# === XEV.sh for DreymaR's XKB modifications ===
# === by Øystein Bech "DreymaR" Gadmar, 2014 ===
# =====================================================
#
# Shell script to run a keypress-specific XEV
#
# Usage: 'sh [scriptpath]' or
# allow executing file then run in a term window
#
# Happy xkb-hacking! Øystein Bech Gadmar (2014)
#---------- init --------------------------------------
SETXKB='setxkbmap -print -v 7'
#---------- main --------------------------------------
echo "*** Running $XEV: ***"
xev | sed -ne '/^KeyPress/,/^$/p'
echo "\n*** Press <ENTER> to finish: ***"
read dummy

View File

@ -0,0 +1,19 @@
# If you change any of the following variables and X is configured to
# use this file, then the changes will become visible to X only if udev
# is restarted. You may need to reboot the system.
# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.
#XKBMODEL="pc105"
XKBMODEL="pc105awide-sl"
XKBLAYOUT="no,no"
XKBVARIANT="cmk_ed_us,"
XKBOPTIONS="compose:menu,terminate:ctrl_alt_bksp,grp_led:scroll,lv5:caps_switch_lock,misc:extend"
# If you don't want to use the XKB layout on the console, you can
# specify an alternative keymap. Make sure it will be accessible
# before /usr is mounted.
# KMAP=/etc/console-setup/defkeymap.kmap.gz

View File

@ -0,0 +1,48 @@
#!/bin/bash
# =====================================================
# === SHOW-XKB.sh for DreymaR's XKB modifications ===
# === by Øystein Bech "DreymaR" Gadmar, 2012 ===
# =====================================================
#
# Shell script to show the active Gnome XKB settings
#
# Usage: 'sudo sh [scriptpath]' or
# allow executing file then run in a term window
#
# Happy xkb-hacking! Øystein Bech Gadmar (2012)
HeadStr="DreymaR's Show XKB info script (by GadOE, 2014)"
#-------------- functions and line parser ---------------------
MyMsg()
{
printf "\n••• $1 •••\n\n"
}
MyEcho()
{
printf "$1\n"
[ -z "$2" ] || printf "$1\n" >> "$2"
}
#---------- init --------------------------------------
HDR='Output from '
XPROP='xprop -root | grep "XKB"'
GSETT='gsettings list-recursively org.gnome.libgnomekbd.keyboard'
SETXK='setxkbmap -print' # -v 9'
#---------- main --------------------------------------
MyMsg "$HeadStr"
MyMsg "$HDR'$XPROP':"
eval "$XPROP"
#echo "`$XPROP`" | grep "XKB"
MyMsg "$HDR'$GSETT':"
eval "$GSETT"
MyMsg "$HDR'$SETXK':"
eval "$SETXK"
MyMsg "Press any key to finish:"
read -n 1

View File

@ -0,0 +1,40 @@
#!/bin/sh
# ======================================================
# === XMODEL.sh to set the XKB keyboard model ===
# === by Øystein Bech "DreymaR" Gadmar, 2013 ===
# ======================================================
#
#---------- init --------------------------------------
#XKBmodel='pc104'
#XKBmodel='pc104angle-z'
#XKBmodel='pc104wide-qu'
#XKBmodel='pc105'
XKBmodel='pc105awide-sl'
#XKBmodel='pc105angle-lg'
VerboseLvl=9
UsageStr="sh $0 [-m model]"
HelpStr="Usage: $UsageStr\n"\
"*** Please read this script's comments for info on how it works ***"
#---------- subroutines -------------------------------
PrintHelpAndExit()
{
printf "\n$HelpStr\n"
exit $1
}
#---------- command line parser -----------------------
while getopts "m:v:h" cmdarg; do
case $cmdarg in
m) XKBmodel="$OPTARG" ;;
v) VerboseLvl="$OPTARG" ;;
h) PrintHelpAndExit 1 ;;
\?) PrintHelpAndExit 2 ;;
esac
done
#---------- main --------------------------------------
setxkbmap -model $XKBmodel -v $VerboseLvl

View File

@ -0,0 +1,40 @@
#!/bin/sh
# ======================================================
# === XMODEL.sh to set the XKB keyboard model ===
# === by Øystein Bech "DreymaR" Gadmar, 2013 ===
# ======================================================
#
#---------- init --------------------------------------
#XKBmodel='pc104'
#XKBmodel='pc104angle-z'
#XKBmodel='pc104wide-qu'
XKBmodel='pc105'
#XKBmodel='pc105awide-sl'
#XKBmodel='pc105angle-lg'
VerboseLvl=9
UsageStr="sh $0 [-m model]"
HelpStr="Usage: $UsageStr\n"\
"*** Please read this script's comments for info on how it works ***"
#---------- subroutines -------------------------------
PrintHelpAndExit()
{
printf "\n$HelpStr\n"
exit $1
}
#---------- command line parser -----------------------
while getopts "m:v:h" cmdarg; do
case $cmdarg in
m) XKBmodel="$OPTARG" ;;
v) VerboseLvl="$OPTARG" ;;
h) PrintHelpAndExit 1 ;;
\?) PrintHelpAndExit 2 ;;
esac
done
#---------- main --------------------------------------
setxkbmap -model $XKBmodel -v $VerboseLvl

235
install-dreymar-xmod.sh Normal file
View File

@ -0,0 +1,235 @@
#!/bin/bash
## =================================================================
## === INSTALL-DREYMAR-XMOD.sh for DreymaR's XKB modifications ===
## === by Øystein Bech "DreymaR" Gadmar, 2015 ===
## =================================================================
HeadStr="DreymaR's Big Bag Of Tricks install script (by GadOE, 2015-01)"
DescStr=\
"Shell script to apply DreymaR's changes to the X keyboard files:\n"\
" - AngleWide Ergonomic keyboard models for pc104/pc105 keyboards,\n"\
" - Extend mappings as a Misc option and CapsLock as a chooser (using lv5-8),\n"\
" - the Colemak [edition DreymaR] layout, using my own lv3-4 mappings,\n"\
" - locale variants of Colemak[eD] with 'local' or 'unified' symbol keys,\n"\
" - mirrored Colemak[eD] for one-handed typing,\n"\
" - and the Tarmak(1-4) transitional (step-by-step) Colemak learning layouts.\n"\
"\n"\
"- By default, this script creates a backup of the X11 files if none exist.\n"\
"- With '-o', overwrite the system X11 files (makes the mod GUI accessible).\n"\
"- With '-s <mdl loc sym>', specify a model/layout to activate immediately.\n"\
" (Shortstr format: -s '[4|5][n|a|w|e|f] loc [ks|us]'; 'loc'(ale) is 2-letter.\n"\
" Some model shortstr examples: '4n' is pc104, '5e' is pc105AngleWide etc.\n"\
" E.g.: -s '5n fr us' is normal pc105 model, French Colemak[eD]'USym'.)\n"\
"- With '-?', list further instructions and default values.\n"
FootStr="Happy xkb-hacking! ~ Øystein Bech 'DreymaR' Gadmar"
#"- With '-i <dir>', specify a directory path/name to install in.\n"\
#"- With '-g', also install GTK 2.0/3.0 config for XF86 Cut/Copy/Paste.\n"\
## NOTE: The mod directory has the form "${DModTag}<date>" with DModTag='x-mod_v<VER>_'
## - Unless you change the DModTag, it should be in the same dir as this script
## - It has subdirectories like 'xkb' that are to be installed (one, some or all)
## NOTE: This is the new preferred way instead of patching the system files:
## - Backup system xkb to dbak-xkb_<DATE> (and the same for any other subdirs)
## - Copy X11/xkb to ${InstDir}/dmod-xkb, then modify files in dmod-xkb
## - Set up setxkb.sh to run from the modified dmod-xkb
## - Optionally (-o) overwrite the system files instead
## NOTE: The x-mod dir holds an xkb subfolder; later, there will be a locale dir too.
##-------------- init ------------------------------------------
## NOTE: '#(-a)' means that the value can be set by a command-line argument '-a <value>'
MyDATE=`date +"%Y-%m-%d_%H-%M"`
MyNAME=`basename $0`
MyPATH=`dirname $0`
#~ XVERSION='2-5-1-3ub2'
#~ XVERSION='2-10-1-1'
XVERSION='2-12-1'
## @@@ The default X11 dir under Debian/Ubuntu/etc is /usr/share/X11 @@@
## @@@ The default X11 dir under some (older) distros is /usr/lib/X11 @@@
X11DIR='/usr/share/X11'; [ -d "${X11DIR}" ] || X11DIR='/usr/lib/X11'
ModDATE=''
DModDir=`dirname $0` # (-d) Path to the script (and mod?) root directory
ToolDir="${DModDir}/dreymar-xtools" # The location of tool scripts (like setxkb.sh)
DModTag="x-mod_v${XVERSION}_${ModDATE}" # (-t) Mod dir "prefix"
DBakFix='dbak-' # (--) Backup dir prefix
DModFix='dmod-' # (--) Modded dir prefix
#~ InstDir="${X11DIR}" # (-i) Path to install subfolder(s) in
InstDir="${HOME}/drey-xmod" # (-i) Path to install subfolder(s) in
WriteSys='no' # (-o) Overwrite the original xkb dir with the modded one
Restore='0' # (-r) Reverse: Restore from backup # instead of installing
DoBackup='ifnone' # (-n/b) Default backup behavior is "if no backups are found"
SubDirs='all' # (-m) Directory/-ies inside X11 to modify (e.g., 'xkb locale', 'all')
InstGTK='no' # (-g) Whether to install the GTK 2.0/3.0 config (if not present)
SetXMap='no' # (-x) Whether to run the setxkb script after installing
SetXStr='5aw us us' # (-s) Shortcut string for setxkb - 'mmm ll vv' (model layout eD-variant)
HelpStr="Usage: bash ${MyNAME} [optional args]\n"\
"Run this from the directory containing the x-mod dir\n"\
"[-o] Overwrite system X11 directory - ${WriteSys}\n"\
"[-b] Force backup | location - ${X11DIR}\n"\
"[-n] Force no backup | default - ${DoBackup}\n"\
"[-r] <#> Restore backup - 1 is oldest - ${Restore}\n"\
"[-m] <X11 subdir(s) to mod> - ${SubDirs}\n"\
"[-i] <Install path> - ${InstDir}\n"\
"[-d] <mod dir path> - ${DModDir}\n"\
"[-t] <mod dir prefix tag> - ${DModTag}\n"\
"[-g] Install GTK 2.0/3.0 edit config - ${InstGTK}\n"\
"[-x] Run the setxkbmap script, yes/no - ${SetXMap}\n"\
"[-s] Setxkb ShortStr 'mdl loc sym' - ${SetXStr}\n"\
" (See setxkb help for more info on ShortStr)\n"
#~ "( - <val> : Default settings)\n"
##-------------- functions and line parser ---------------------
MyMsg()
{
printf "\n@@@ $1 @@@\n\n"
}
PrintHelpAndExit()
{
MyMsg "${HeadStr}"
printf "${DescStr}\n"
printf "${HelpStr}"
MyMsg "${FootStr}"
exit $1
}
MyEcho()
{
printf "$1\n"
[ -z "$2" ] || printf "$1\n" >> "$2"
}
MyError()
{
MyMsg "$MyNAME - ERROR: ${@:-'Undefined error'}"
exit 1
}
#~ MyCD()
#~ {
#~ OldDir=`pwd`
#~ NewDir=${1:-`pwd`}
#~ cd ${NewDir} || MyError "Change to '${NewDir}' failed"
#~ MyEcho "¤ Changed dir to '${NewDir}'"
#~ }
#~ if [ "$#" == 0 ]; then PrintHelpAndExit 2; fi # No args
while getopts "obngxs:m:i:d:t:r:h?" cmdarg; do
case $cmdarg in
o) WriteSys='yes' ;;
b) DoBackup='yes' ;;
n) DoBackup='no' ;;
g) InstGTK='yes' ;;
x) SetXMap='yes' ;;
s) SetXStr="$OPTARG"
SetXMap='yes' ;;
m) SubDirs="$OPTARG" ;;
i) InstDir="$OPTARG" ;;
d) DModDir="$OPTARG" ;;
t) DModTag="$OPTARG" ;;
r) Restore="$OPTARG" ;;
h) PrintHelpAndExit 0 ;;
\?) PrintHelpAndExit 0 ;;
:) PrintHelpAndExit 1 ;;
esac
done
#~ pos_arg=${@:$OPTIND:1} # Get the remaining (positional) arg
##-------------- main ------------------------------------------
MyMsg "$HeadStr"
#~ MyEcho "¤ Working from '`pwd`'"
## Check for a mod dir (the latest found) and if found, get its full name
DModDir=`find "${DModDir%/}/${DModTag}"* -maxdepth 0 -type d 2>/dev/null | tail -n 1`
[ -n "${DModDir}" ] || MyError "Mod root dir not found!"
MyEcho "¤ Found mod root dir '${DModDir}'"
## Read the mod subdirs
if [ "${SubDirs}" == "all" ]; then
SubDirs=`find "${DModDir}/"* -maxdepth 0 -type d -exec basename '{}' \; 2>/dev/null`
SubDirs=`echo ${SubDirs}` # A trick to make a var space separated for the following echo cmd
[ -n "${SubDirs}" ] || MyError "No mod subdirs found!"
fi
MyEcho "¤ Subdirectories to mod: '${SubDirs}'"
## For each subdir, backup if either DoBackup = 'yes' or DoBackup = 'ifnone' and no backup exists
BackIt=''
if [ ${DoBackup} == 'yes' ]; then
BackIt="${SubDirs}"
elif [ ${DoBackup} == 'ifnone' ] && [ ${Restore} == '0' ]; then
for That in ${SubDirs}; do
MyEcho "¤ Looking for '${That}' backup in '${X11DIR}'..."
# Test for (at least one) backup dir; if none found then proceed without errors
# if [ -z `find "${X11DIR}/${DBakFix}${That}"* -maxdepth 0 -type d 2>/dev/null | head -n 1` ]; then
if [ -z `find "${X11DIR}/${DBakFix}${That}"* -maxdepth 0 -type d -print -quit 2>/dev/null` ]; then
[ -n "${BackIt}" ] && BackIt+=' ' # join with ' '; note that += is a bashism
BackIt+="${That}"
fi
done
fi
[ -z "${BackIt}" ] && MyEcho "¤ Backing up: None" || MyEcho "¤ Backing up: '${BackIt}'"
## Perform the actual backup(s)
## NOTE: cp -a makes an "archive" copy, preserving all attributes and links
for That in ${BackIt}; do
[ -d "${X11DIR}/${That}" ] || MyError "Unable to backup '${That}': Directory not found!"
sudo cp -a "${X11DIR}/${That}" "${X11DIR}/${DBakFix}${That}_${MyDATE}" || MyError "Copy error!"
done
## For each subfolder: Restore from backup #, overwrite X11 files or make new mod folder
for That in ${SubDirs}; do
if [ ${Restore} != '0' ]; then # Restore from specified backup
## Restore from backup. Pick a backup # by parameter, 1 being oldest; use 999 or such for the last one
BackIt=`find "${X11DIR}/${DBakFix}${That}"* -maxdepth 0 -type d 2>/dev/null | head -n ${Restore} | tail -n 1`
[ -d "${BackIt}" ] || MyError "Unable to restore from '$(basename ${BackIt})': Not found!"
MyEcho "¤ Restoring from backup '$(basename "${BackIt}")'"
sudo cp -a "${BackIt}/"* "${X11DIR}/${That}" 2>/dev/null || MyError "Restore copy error!"
XKBDir="${X11DIR}/xkb" # Setxkbmap will default to the X11 dir, but this makes it unambigous
elif [ ${WriteSys} == 'yes' ] && [ -d "${DModDir}/${That}" ]; then # Overwrite system files
MyEcho "¤ Replacing files in '${X11DIR}/${That}' with mod"
sudo cp -a "${DModDir}/${That}/"* "${X11DIR}/${That}" 2>/dev/null || MyError "System files copy error!"
XKBDir="${X11DIR}/xkb"
else ## Make new mod folder (will not show up in keyboard settings GUI; use setxkbmap instead)
DoSudo=''; mkdir -p "${InstDir}" 2>/dev/null && [ -w "${InstDir}" ] || DoSudo='sudo'
MyDir="${InstDir%/}/${DModFix}${That}"
#~ MyDir="$(dirname "${MyDir}")/${DModFix}$(basename "${MyDir}")" # Insert prefix in path/name
MyEcho "¤ Installing mod files in '${MyDir}'"
${DoSudo} mkdir -p "${MyDir}" || MyError "Can't make '${MyDir}'!"
${DoSudo} cp -a "${X11DIR}/${That}/"* "${MyDir}" 2>/dev/null || MyError "Local files copy error!"
${DoSudo} cp -a "${DModDir}/${That}/"* "${MyDir}" 2>/dev/null || MyError "Local files copy error!"
XKBDir="${InstDir%/}/${DModFix}xkb" # Prepare for setxkbmap
fi
done
## If selected, call the DreymaR GTK bindings install script
## The DreymaR gtk edit install script sets GTK Cut/Copy/Paste key config (if not already present)
if [ ${InstGTK} == 'yes' ]; then
"${ToolDir}/gtk_edit_install.sh" || MyError "gtk_edit_install.sh failed!"
fi
#~ ## Call the DreymaR setxkbmap script unless 'q' is pressed, to activate the new (default) layout
#~ That='' #; [ ${InstGTK} == 'yes' ] && That=" and GTK edit config"
#~ MyMsg "Press any key to set the new xkb map${That}, or 'q' to quit"
#~ read -p '$>' -n 1 keypress
#~ if [ "${keypress}" == 'q' ]; then
## If selected, call the DreymaR setxkbmap script to activate the new (default) layout
if [ "${SetXMap}" != 'yes' ]; then
MyEcho; MyMsg "XKBmap activation skipped"
else
#~ "${ToolDir}/setxkb.sh" -p $(dirname "${XKBDir}") -d $(basename "${XKBDir}") || MyError "setxkb.sh failed!"
"./setxkb.sh" -d "${XKBDir}" -s "${SetXStr}" || MyError "setxkb.sh failed!"
fi
MyMsg "${MyNAME} finished!"
exit 0
##-------------- misc ------------------------------------------
#~ MyError "Debug - run halted!" # debug
#~ echo "$1 $2 $3 $4 $5"; exit 0 # debug

218
setxkb.sh Normal file
View File

@ -0,0 +1,218 @@
#!/bin/bash
## ======================================================
## === XKBSET.sh to set the XKB keyboard options ===
## === by Øystein Bech "DreymaR" Gadmar, 2014 ===
## ======================================================
HeadStr="DreymaR's setxkbmap script (by GadOE, 2015-01)"
DescStr=\
"Shell script to change X.org keyboard setup\n"\
" using the 'setxkbmap' command.\n"\
" To override system settings after logon,\n"\
" source it, e.g., in your ~/.bashrc file\n"
FootStr="Happy xkb-hacking! ~ Øystein Bech 'DreymaR' Gadmar"
## NOTE: It now works with local xkb(-mod) dir
# By default, setxkbmap checks ./rules first!
# Need a full xkb dir then (not just the xkb-mod files)
## NOTE: I made a handy shorthand for activating simple cmk_ed model/layout combos.
# Example: -s '5w no us' activates model pc105awide-sl, layout no(cmk_ed_us)
# Options left out of this: Too complex (replace all or add another, and if so, how?)
# Models: 4n 4a(pc104angle-z) 4w(pc104wide-qu) 4e(pc104awide-zqu) 4f(pc104aframe)
# 5n 5a(pc105angle-lg) 5w/5e(pc105awide-sl)
##-------------- init ------------------------------------------
## NOTE: '#(-a)' means that the value can be set by a command-line argument '-a <value>'
#~ MyDATE=`date +"%Y-%m-%d_%H-%M"`
MyNAME=`basename $0`
#~ MyPATH=`dirname $0`
## @@@ The default X11 dir under Debian/Ubuntu/etc is /usr/share/X11 @@@
## @@@ The default X11 dir under some (older) distros is /usr/lib/X11 @@@
X11DIR='/usr/share/X11'; [ -d "${X11DIR}" ] || X11DIR='/usr/lib/X11'
#~ XKBmodel=pc104awide-zqu # ANSI-104 keyboard w/ Angle(Z)Wide(Quote) mod
XKBmodel=pc105awide-sl # ISO-105 keyboard w/ AngleWide(Slash) mod
#~ XKBlayout='us(cmk_ed_us),gr(colemak),ru(colemak)'
XKBlayout='no(cmk_ed_us)' # Norwegian Colemak[eD]'Universal Symbols' layout
XKBoption='misc:extend,lv5:caps_switch_lock,grp:shifts_toggle,compose:menu'
VerboseLvl=9 # (-v) How much info should setxkbmap print out?
KeepXKM='no' # (-k) Retain old /var/lib/xkb/server-*.xkm files?
XKBdir="${X11DIR}/xkb" # (-d) The xkb-type dir to run setxkbmap from
SetXStr='' #'5aw no us' # (-s) Shortcut string for setxkb - 'model locale eD-variant(sym)'
HelpStr="Usage: bash ${MyNAME} [optional args]\n"\
"[-m] <model> - '${XKBmodel}'\n"\
"[-l] <layout> - '${XKBlayout}'\n"\
"[-o] <option> - \n"\
" '${XKBoption}'\n"\
"[-v] <verbose level> - '${VerboseLvl}'\n"\
"[-s] <ShortStr> 'mod lay sym' - '${SetXStr}'\n"\
"[-d] Run from <directory> - '${XKBdir}'\n"\
"[-k] Keep old XKB server(s) - '${KeepXKM}'\n"\
"\n ShortStr notation (option to provide a space separated string):\n"\
" 1) 4/5 - ANSI-104/ISO-105 keyboard,\n"\
" n/a/v/b/c/d - Normal/Angle/Curl-Dvbg/Dbg/DvbgHm/DbgHk\n"\
" w/f - Wide/(Angle)Frame\n"\
" 2) Two-letter layout code like 'us' for USA, 'gb' for UK etc\n"\
" 3) 'us'/'ks' for 'Universal'/'Keep Local' symbol locale variants\n"\
" Example: '5aw se us': PC105-AngleWide, Swedish Cmk[eD] 'UniSym'\n"
#~ " (See the script's comments for more info.)"
##-------------- functions and line parser ---------------------
MyMsg()
{
printf "\n@@@ $1 @@@\n\n"
}
PrintHelpAndExit()
{
MyMsg "${HeadStr}"
printf "${DescStr}\n"
printf "${HelpStr}\n"
MyMsg "${FootStr}"
exit $1
}
MyEcho()
{
printf "$1\n"
[ -z "$2" ] || printf "$1\n" >> "$2"
}
MyError()
{
MyMsg "$MyNAME - ERROR: ${@:-'Unknown'}"
exit 1
}
MyCD()
{
OldDir=`pwd`
NewDir=${1:-`pwd`}
cd ${NewDir} || MyError "Change to '${NewDir}' failed"
MyEcho "¤ Changed dir to '${NewDir}'"
}
#~ if [ "$#" == 0 ]; then PrintHelpAndExit 2; fi # No args
while getopts "m:l:o:v:s:d:kh?" cmdarg; do
case $cmdarg in
m) XKBmodel="$OPTARG" ;;
l) XKBlayout="$OPTARG" ;;
o) XKBoption="$OPTARG" ;;
v) VerboseLvl="$OPTARG" ;;
s) SetXStr=($OPTARG) ;; # Split the string
d) XKBdir="$OPTARG" ;;
k) KeepXKM='yes' ;;
h) PrintHelpAndExit 0 ;;
\?) PrintHelpAndExit 0 ;;
:) PrintHelpAndExit 1 ;;
esac
done
#~ pos_arg=${@:$OPTIND:1} # Get the remaining (positional) arg
if [ -n "${SetXStr}" ]; then # Use the ShortStr notation
case ${SetXStr[0]} in
4n) XKBmodel='pc104' ;; # Generic ANSI-101/104-key
4a) XKBmodel='pc104angle-z' ;; # w/ Angle(Z) ergo mod
4w) XKBmodel='pc104wide-qu' ;; # w/ Wide(Quote) ergo mod
4aw) XKBmodel='pc104awide-zqu' ;; # w/ Angle(Z)Wide(Quote) ergo mod
4f) XKBmodel='pc104aframe' ;; # w/ AngleFrame(Quote) ergo mod
4af) XKBmodel='pc104aframe' ;; # w/ AngleFrame(Quote) ergo mod
4v) XKBmodel='pc104curla-vz' ;; # w/ Curl(Dvbg)Angle(Z) ergo mod
4b) XKBmodel='pc104curla-bz' ;; # w/ Curl(Dbg)Angle(Z) ergo mod
4vw) XKBmodel='pc104caw-vzqu' ;; # w/ Curl(Dvbg)Angle(Z)Wide(Quote) mod
4bw) XKBmodel='pc104caw-bzqu' ;; # w/ Curl(Dbg)Angle(Z)Wide(Quote) mod
4vf) XKBmodel='pc104caframe-v' ;; # w/ Curl(Dvbg)AngleFrame(Quote) mod
4bf) XKBmodel='pc104caframe-b' ;; # w/ Curl(Dbg)AngleFrame(Quote) mod
4c) XKBmodel='pc104curla-vmz' ;; # w/ Curl(DvbgHm)Angle(Z) ergo mod
4d) XKBmodel='pc104curla-bkz' ;; # w/ Curl(DbgHk)Angle(Z) ergo mod
4cw) XKBmodel='pc104caw-vmzqu' ;; # w/ Curl(DvbgHm)Angle(Z)Wide(Quote) mod
4dw) XKBmodel='pc104caw-bkzqu' ;; # w/ Curl(DbgHk)Angle(Z)Wide(Quote) mod
4cf) XKBmodel='pc104caframe-vm' ;; # w/ Curl(DvbgHm)AngleFrame(Quote) mod
4df) XKBmodel='pc104caframe-bk' ;; # w/ Curl(DbgHk)AngleFrame(Quote) mod
5n) XKBmodel='pc105' ;; # Generic ISO-102/105-key
5a) XKBmodel='pc105angle-lg' ;; # w/ Angle(LSGT) ergo mod
5w) XKBmodel='pc105awide-sl' ;; # w/ AngleWide(Slash) ergo mod
5aw) XKBmodel='pc105awide-sl' ;; # w/ AngleWide(Slash) ergo mod
5v) XKBmodel='pc105curla-v' ;; # w/ Curl(Dvbg)Angle ergo mod
5b) XKBmodel='pc105curla-b' ;; # w/ Curl(Dbg)Angle ergo mod
5vw) XKBmodel='pc105caw-vsl' ;; # w/ Curl(Dvbg)AngleWide(Slash) mod
5bw) XKBmodel='pc105caw-bsl' ;; # w/ Curl(Dbg)AngleWide(Slash) mod
5c) XKBmodel='pc105curla-vm' ;; # w/ Curl(DvbgHm)Angle ergo mod
5d) XKBmodel='pc105curla-bk' ;; # w/ Curl(DbgHk)Angle ergo mod
5cw) XKBmodel='pc105caw-vmsl' ;; # w/ Curl(DvbgHm)AngleWide(Slash) mod
5dw) XKBmodel='pc105caw-bksl' ;; # w/ Curl(DbgHk)AngleWide(Slash) mod
*) MyError "ShortStr model '${SetXStr[0]}' unknown!" ;;
esac
XKBlayout="${SetXStr[1]}(cmk_ed_${SetXStr[2]})"
fi
##TODO: Add curl mods to models?!? Then, new shortstr codes are needed
# Enough to do the left hand and full!
# So, [4|5][n|a|v|b|c|d][-|w|f]? (Or m|k for c|d?)
##-------------- main ------------------------------------------
MyMsg "$HeadStr"
#~ MyCD "${XKBpath%/}/${XKBdir%/}"
if [ -n "${SetXStr}" ]; then
MyEcho "¤ Using model/layout '$XKBmodel'/'$XKBlayout' from ShortStr"
fi
MyCD "${XKBdir%/}"
#~ MyEcho "¤ Running from `pwd`"
## Purge the old xkb server files
MyEcho "¤ Looking for and removing any old .xkm server files"
if [ ${KeepXKM} == 'no' ]; then
sudo rm -f /var/lib/xkb/server-*.xkm || MyEcho "¤ No .xkm files"
fi
## Clear the xkb options (to avoid duplicates)
setxkbmap -option ''
## Run the actual setxkbmap command
MyEcho "¤ Running setxkbmap:\n"
setxkbmap -model "$XKBmodel" -layout "$XKBlayout" \
-option "$XKBoption" -v $VerboseLvl
MyEcho ""
MyCD "${OldDir}"
## When run in a terminal window, wait for a key press
## so you can see the results before the window closes
#~ MyMsg "Press any key to proceed:"
#~ read -n 1
MyMsg "${MyNAME} finished!"
exit 0
##-------------- misc ------------------------------------------
#~ echo "'$XKBmodel' '$XKBlayout'"; for i in 0 1 2; do echo "'${SetXStr[i]}'"; done; exit 0
## US/ANSI Wide ergo mod,
## Colemak[eD] US layout,
## Extend mappings w/ Caps switch:
#~ setxkbmap \
#~ -model pc104wide-qu, \
#~ -layout "us(cmk_ed_us)", \
#~ -option "misc:extend,lv5:caps_switch_lock"
## Euro/ISO AngleWide ergo mod,
## Norwegian Cmk[eD] "US" layout (grp1),
## Greek phonetic Colemak layout (grp2),
## Extend mappings w/ Caps switch (for both),
## Switch grp w/ 2xCtrl; Compose on Menu key:
#~ setxkbmap \
#~ -model pc105awide-sl, \
#~ -layout "no(cmk_ed_us),gr(colemak)", \
#~ -option "misc:extend,lv5:caps_switch_lock,"\
#~ "grp:rctrl_switch_ctrls_toggle,compose:menu"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,99 @@
// keycode aliases for phonetic keyboard maps
default
xkb_keycodes "qwerty" {
alias <LatQ> = <AD01>;
alias <LatW> = <AD02>;
alias <LatE> = <AD03>;
alias <LatR> = <AD04>;
alias <LatT> = <AD05>;
alias <LatY> = <AD06>;
alias <LatU> = <AD07>;
alias <LatI> = <AD08>;
alias <LatO> = <AD09>;
alias <LatP> = <AD10>;
alias <LatA> = <AC01>;
alias <LatS> = <AC02>;
alias <LatD> = <AC03>;
alias <LatF> = <AC04>;
alias <LatG> = <AC05>;
alias <LatH> = <AC06>;
alias <LatJ> = <AC07>;
alias <LatK> = <AC08>;
alias <LatL> = <AC09>;
alias <LatZ> = <AB01>;
alias <LatX> = <AB02>;
alias <LatC> = <AB03>;
alias <LatV> = <AB04>;
alias <LatB> = <AB05>;
alias <LatN> = <AB06>;
alias <LatM> = <AB07>;
};
xkb_keycodes "azerty" {
alias <LatA> = <AD01>;
alias <LatZ> = <AD02>;
alias <LatE> = <AD03>;
alias <LatR> = <AD04>;
alias <LatT> = <AD05>;
alias <LatY> = <AD06>;
alias <LatU> = <AD07>;
alias <LatI> = <AD08>;
alias <LatO> = <AD09>;
alias <LatP> = <AD10>;
alias <LatQ> = <AC01>;
alias <LatS> = <AC02>;
alias <LatD> = <AC03>;
alias <LatF> = <AC04>;
alias <LatG> = <AC05>;
alias <LatH> = <AC06>;
alias <LatJ> = <AC07>;
alias <LatK> = <AC08>;
alias <LatL> = <AC09>;
alias <LatM> = <AC10>;
alias <LatW> = <AB01>;
alias <LatX> = <AB02>;
alias <LatC> = <AB03>;
alias <LatV> = <AB04>;
alias <LatB> = <AB05>;
alias <LatN> = <AB06>;
};
xkb_keycodes "qwertz" {
alias <LatQ> = <AD01>;
alias <LatW> = <AD02>;
alias <LatE> = <AD03>;
alias <LatR> = <AD04>;
alias <LatT> = <AD05>;
alias <LatZ> = <AD06>;
alias <LatU> = <AD07>;
alias <LatI> = <AD08>;
alias <LatO> = <AD09>;
alias <LatP> = <AD10>;
alias <LatA> = <AC01>;
alias <LatS> = <AC02>;
alias <LatD> = <AC03>;
alias <LatF> = <AC04>;
alias <LatG> = <AC05>;
alias <LatH> = <AC06>;
alias <LatJ> = <AC07>;
alias <LatK> = <AC08>;
alias <LatL> = <AC09>;
alias <LatY> = <AB01>;
alias <LatX> = <AB02>;
alias <LatC> = <AB03>;
alias <LatV> = <AB04>;
alias <LatB> = <AB05>;
alias <LatN> = <AB06>;
alias <LatM> = <AB07>;
};

View File

@ -0,0 +1,314 @@
// translation from evdev scancodes to something resembling xfree86 keycodes.
default xkb_keycodes "evdev" {
minimum = 8;
maximum = 255;
# Added for pc105 compatibility
<LSGT> = 94;
<TLDE> = 49;
<AE01> = 10;
<AE02> = 11;
<AE03> = 12;
<AE04> = 13;
<AE05> = 14;
<AE06> = 15;
<AE07> = 16;
<AE08> = 17;
<AE09> = 18;
<AE10> = 19;
<AE11> = 20;
<AE12> = 21;
<BKSP> = 22;
<TAB> = 23;
<AD01> = 24;
<AD02> = 25;
<AD03> = 26;
<AD04> = 27;
<AD05> = 28;
<AD06> = 29;
<AD07> = 30;
<AD08> = 31;
<AD09> = 32;
<AD10> = 33;
<AD11> = 34;
<AD12> = 35;
<BKSL> = 51;
alias <AC12> = <BKSL>;
<RTRN> = 36;
<CAPS> = 66;
<AC01> = 38;
<AC02> = 39;
<AC03> = 40;
<AC04> = 41;
<AC05> = 42;
<AC06> = 43;
<AC07> = 44;
<AC08> = 45;
<AC09> = 46;
<AC10> = 47;
<AC11> = 48;
<LFSH> = 50;
<AB01> = 52;
<AB02> = 53;
<AB03> = 54;
<AB04> = 55;
<AB05> = 56;
<AB06> = 57;
<AB07> = 58;
<AB08> = 59;
<AB09> = 60;
<AB10> = 61;
<RTSH> = 62;
<LALT> = 64;
<LCTL> = 37;
<SPCE> = 65;
<RCTL> = 105;
<RALT> = 108;
// Microsoft keyboard extra keys
<LWIN> = 133;
<RWIN> = 134;
<COMP> = 135;
alias <MENU> = <COMP>;
<ESC> = 9;
<FK01> = 67;
<FK02> = 68;
<FK03> = 69;
<FK04> = 70;
<FK05> = 71;
<FK06> = 72;
<FK07> = 73;
<FK08> = 74;
<FK09> = 75;
<FK10> = 76;
<FK11> = 95;
<FK12> = 96;
<PRSC> = 107;
// <SYRQ> = 107;
<SCLK> = 78;
<PAUS> = 127;
// <BRK> = 419;
<INS> = 118;
<HOME> = 110;
<PGUP> = 112;
<DELE> = 119;
<END> = 115;
<PGDN> = 117;
<UP> = 111;
<LEFT> = 113;
<DOWN> = 116;
<RGHT> = 114;
<NMLK> = 77;
<KPDV> = 106;
<KPMU> = 63;
<KPSU> = 82;
<KP7> = 79;
<KP8> = 80;
<KP9> = 81;
<KPAD> = 86;
<KP4> = 83;
<KP5> = 84;
<KP6> = 85;
<KP1> = 87;
<KP2> = 88;
<KP3> = 89;
<KPEN> = 104;
<KP0> = 90;
<KPDL> = 91;
<KPEQ> = 125;
<FK13> = 191;
<FK14> = 192;
<FK15> = 193;
<FK16> = 194;
<FK17> = 195;
<FK18> = 196;
<FK19> = 197;
<FK20> = 198;
<FK21> = 199;
<FK22> = 200;
<FK23> = 201;
<FK24> = 202;
// Keys that are generated on Japanese keyboards
//<HZTG> = 93; // Hankaku/Zenkakau toggle - not actually used
alias <HZTG> = <TLDE>;
<HKTG> = 101; // Hiragana/Katakana toggle
<AB11> = 97; // backslash/underscore
<HENK> = 100; // Henkan
<MUHE> = 102; // Muhenkan
<AE13> = 132; // Yen
<KATA> = 98; // Katakana
<HIRA> = 99; // Hiragana
<JPCM> = 103; // KPJPComma
//<RO> = 97; // Romaji
// Keys that are generated on Korean keyboards
<HNGL> = 130; // Hangul Latin toggle
<HJCV> = 131; // Hangul to Hanja conversion
// Solaris compatibility
alias <LMTA> = <LWIN>;
alias <RMTA> = <RWIN>;
<MUTE> = 121;
<VOL-> = 122;
<VOL+> = 123;
<POWR> = 124;
<STOP> = 136;
<AGAI> = 137;
<PROP> = 138;
<UNDO> = 139;
<FRNT> = 140;
<COPY> = 141;
<OPEN> = 142;
<PAST> = 143;
<FIND> = 144;
<CUT> = 145;
<HELP> = 146;
// Extended keys that may be generated on "Internet" keyboards.
// evdev has standardize names for these.
<LNFD> = 109; // #define KEY_LINEFEED 101
<I120> = 120; // #define KEY_MACRO 112
<I126> = 126; // #define KEY_KPPLUSMINUS 118
<I128> = 128; // #define KEY_SCALE 120
<I129> = 129; // #define KEY_KPCOMMA 121
<I147> = 147; // #define KEY_MENU 139
<I148> = 148; // #define KEY_CALC 140
<I149> = 149; // #define KEY_SETUP 141
<I150> = 150; // #define KEY_SLEEP 142
<I151> = 151; // #define KEY_WAKEUP 143
<I152> = 152; // #define KEY_FILE 144
<I153> = 153; // #define KEY_SENDFILE 145
<I154> = 154; // #define KEY_DELETEFILE 146
<I155> = 155; // #define KEY_XFER 147
<I156> = 156; // #define KEY_PROG1 148
<I157> = 157; // #define KEY_PROG2 149
<I158> = 158; // #define KEY_WWW 150
<I159> = 159; // #define KEY_MSDOS 151
<I160> = 160; // #define KEY_COFFEE 152
<I161> = 161; // #define KEY_DIRECTION 153
<I162> = 162; // #define KEY_CYCLEWINDOWS 154
<I163> = 163; // #define KEY_MAIL 155
<I164> = 164; // #define KEY_BOOKMARKS 156
<I165> = 165; // #define KEY_COMPUTER 157
<I166> = 166; // #define KEY_BACK 158
<I167> = 167; // #define KEY_FORWARD 159
<I168> = 168; // #define KEY_CLOSECD 160
<I169> = 169; // #define KEY_EJECTCD 161
<I170> = 170; // #define KEY_EJECTCLOSECD 162
<I171> = 171; // #define KEY_NEXTSONG 163
<I172> = 172; // #define KEY_PLAYPAUSE 164
<I173> = 173; // #define KEY_PREVIOUSSONG 165
<I174> = 174; // #define KEY_STOPCD 166
<I175> = 175; // #define KEY_RECORD 167
<I176> = 176; // #define KEY_REWIND 168
<I177> = 177; // #define KEY_PHONE 169
<I178> = 178; // #define KEY_ISO 170
<I179> = 179; // #define KEY_CONFIG 171
<I180> = 180; // #define KEY_HOMEPAGE 172
<I181> = 181; // #define KEY_REFRESH 173
<I182> = 182; // #define KEY_EXIT 174
<I183> = 183; // #define KEY_MOVE 175
<I184> = 184; // #define KEY_EDIT 176
<I185> = 185; // #define KEY_SCROLLUP 177
<I186> = 186; // #define KEY_SCROLLDOWN 178
<I187> = 187; // #define KEY_KPLEFTPAREN 179
<I188> = 188; // #define KEY_KPRIGHTPAREN 180
<I189> = 189; // #define KEY_NEW 181
<I190> = 190; // #define KEY_REDO 182
<I208> = 208; // #define KEY_PLAYCD 200
<I209> = 209; // #define KEY_PAUSECD 201
<I210> = 210; // #define KEY_PROG3 202
<I211> = 211; // #define KEY_PROG4 203 conflicts with AB11
<I212> = 212; // #define KEY_DASHBOARD 204
<I213> = 213; // #define KEY_SUSPEND 205
<I214> = 214; // #define KEY_CLOSE 206
<I215> = 215; // #define KEY_PLAY 207
<I216> = 216; // #define KEY_FASTFORWARD 208
<I217> = 217; // #define KEY_BASSBOOST 209
<I218> = 218; // #define KEY_PRINT 210
<I219> = 219; // #define KEY_HP 211
<I220> = 220; // #define KEY_CAMERA 212
<I221> = 221; // #define KEY_SOUND 213
<I222> = 222; // #define KEY_QUESTION 214
<I223> = 223; // #define KEY_EMAIL 215
<I224> = 224; // #define KEY_CHAT 216
<I225> = 225; // #define KEY_SEARCH 217
<I226> = 226; // #define KEY_CONNECT 218
<I227> = 227; // #define KEY_FINANCE 219
<I228> = 228; // #define KEY_SPORT 220
<I229> = 229; // #define KEY_SHOP 221
<I230> = 230; // #define KEY_ALTERASE 222
<I231> = 231; // #define KEY_CANCEL 223
<I232> = 232; // #define KEY_BRIGHTNESSDOWN 224
<I233> = 233; // #define KEY_BRIGHTNESSUP 225
<I234> = 234; // #define KEY_MEDIA 226
<I235> = 235; // #define KEY_SWITCHVIDEOMODE 227
<I236> = 236; // #define KEY_KBDILLUMTOGGLE 228
<I237> = 237; // #define KEY_KBDILLUMDOWN 229
<I238> = 238; // #define KEY_KBDILLUMUP 230
<I239> = 239; // #define KEY_SEND 231
<I240> = 240; // #define KEY_REPLY 232
<I241> = 241; // #define KEY_FORWARDMAIL 233
<I242> = 242; // #define KEY_SAVE 234
<I243> = 243; // #define KEY_DOCUMENTS 235
<I244> = 244; // #define KEY_BATTERY 236
<I245> = 245; // #define KEY_BLUETOOTH 237
<I246> = 246; // #define KEY_WLAN 238
<I247> = 247; // #define KEY_UWB 239
<I248> = 248; // #define KEY_UNKNOWN 240
<I249> = 249; // #define KEY_VIDEO_NEXT 241
<I250> = 250; // #define KEY_VIDEO_PREV 242
<I251> = 251; // #define KEY_BRIGHTNESS_CYCLE 243
<I252> = 252; // #define KEY_BRIGHTNESS_ZERO 244
<I253> = 253; // #define KEY_DISPLAY_OFF 245
// Fake keycodes for virtual keys
<LVL3> = 92;
<MDSW> = 203;
<ALT> = 204;
<META> = 205;
<SUPR> = 206;
<HYPR> = 207;
indicator 1 = "Caps Lock";
indicator 2 = "Num Lock";
indicator 3 = "Scroll Lock";
indicator 4 = "Compose";
indicator 5 = "Kana";
indicator 6 = "Sleep";
indicator 7 = "Suspend";
indicator 8 = "Mute";
indicator 9 = "Misc";
indicator 10 = "Mail";
indicator 11 = "Charging";
alias <ALGR> = <RALT>;
// For Brazilian ABNT2
alias <KPPT> = <I129>;
};
// PC98
xkb_keycodes "pc98" {
include "evdev(evdev)"
};

View File

@ -0,0 +1,410 @@
// "standard" XFree86 codes
// It seems that the "default" must be the first entry in the file.
default xkb_keycodes "xfree86" {
include "xfree86(basic)"
<BKSL> = 51;
alias <AC12> = <BKSL>;
<LSGT> = 94;
};
xkb_keycodes "basic" {
minimum= 8;
maximum= 255;
<TLDE> = 49;
alias <AE00> = <TLDE>; // Some geometries use AE00
<AE01> = 10;
<AE02> = 11;
<AE03> = 12;
<AE04> = 13;
<AE05> = 14;
<AE06> = 15;
<AE07> = 16;
<AE08> = 17;
<AE09> = 18;
<AE10> = 19;
<AE11> = 20;
<AE12> = 21;
<BKSP> = 22;
<TAB> = 23;
<AD01> = 24;
<AD02> = 25;
<AD03> = 26;
<AD04> = 27;
<AD05> = 28;
<AD06> = 29;
<AD07> = 30;
<AD08> = 31;
<AD09> = 32;
<AD10> = 33;
<AD11> = 34;
<AD12> = 35;
<RTRN> = 36;
<CAPS> = 66;
<AC01> = 38;
<AC02> = 39;
<AC03> = 40;
<AC04> = 41;
<AC05> = 42;
<AC06> = 43;
<AC07> = 44;
<AC08> = 45;
<AC09> = 46;
<AC10> = 47;
<AC11> = 48;
<LFSH> = 50;
<AB01> = 52;
<AB02> = 53;
<AB03> = 54;
<AB04> = 55;
<AB05> = 56;
<AB06> = 57;
<AB07> = 58;
<AB08> = 59;
<AB09> = 60;
<AB10> = 61;
<RTSH> = 62;
<LALT> = 64;
<LCTL> = 37;
<SPCE> = 65;
<RCTL> = 109;
<RALT> = 113;
// Microsoft keyboard extra keys
<LWIN> = 115;
<RWIN> = 116;
<MENU> = 117;
<ESC> = 9;
<FK01> = 67;
<FK02> = 68;
<FK03> = 69;
<FK04> = 70;
<FK05> = 71;
<FK06> = 72;
<FK07> = 73;
<FK08> = 74;
<FK09> = 75;
<FK10> = 76;
<FK11> = 95;
<FK12> = 96;
<PRSC> = 111;
<SYRQ> = 92;
<SCLK> = 78;
<PAUS> = 110;
<BRK> = 114;
<INS> = 106;
<HOME> = 97;
<PGUP> = 99;
<DELE> = 107;
<END> = 103;
<PGDN> = 105;
<UP> = 98;
<LEFT> = 100;
<DOWN> = 104;
<RGHT> = 102;
<NMLK> = 77;
<KPDV> = 112;
<KPMU> = 63;
<KPSU> = 82;
<KP7> = 79;
<KP8> = 80;
<KP9> = 81;
<KPAD> = 86;
<KP4> = 83;
<KP5> = 84;
<KP6> = 85;
<KP1> = 87;
<KP2> = 88;
<KP3> = 89;
<KPEN> = 108;
<KP0> = 90;
<KPDL> = 91;
<KPEQ> = 126;
<FK13> = 118;
<FK14> = 119;
<FK15> = 120;
<FK16> = 121;
<FK17> = 122;
<KPDC> = 123;
// Keys that are generated on Japanese keyboards
alias <HZTG> = <TLDE>; // Hankaku_Zenkaku toggle
<HKTG> = 208; // Hiragana_Katakana toggle
<AB11> = 211; // backslash/underscore
<XFER> = 129; // Henkan
<NFER> = 131; // Muhenkan
<AE13> = 133; // Yen
<EISU> = 210; // Alphanumeric mode on macintosh
<KANA> = 209; // Kana mode on macintosh
// Keys that are generated on Korean keyboards
alias <HNGL> = <FK16>; // Hangul Latin toggle
alias <HJCV> = <FK17>; // Hangul to Hanja conversion
// Extended keys that may be generated on "Internet" keyboards.
// These are not standardised, hence the meaningless names.
// The entries commented out are never generated because the raw codes
// in those positions are already used for well-defined keys.
<I02> = 130;
<I04> = 132;
alias <I05> = <AE13>;
<I06> = 134;
<I07> = 135;
<I08> = 136;
<I09> = 137;
<I0A> = 138;
<I0B> = 139;
<I0C> = 140;
<I0D> = 141;
<I0E> = 142;
<I0F> = 143;
<I10> = 144;
<I11> = 145;
<I12> = 146;
<I13> = 147;
<I14> = 148;
<I15> = 149;
<I16> = 150;
<I17> = 151;
<I18> = 152;
<I19> = 153;
<I1A> = 154;
<I1B> = 155;
// <I1C> = 156; <META>
// <I1D> = 157; <K59>
<I1E> = 158;
<I1F> = 159;
<I20> = 160;
<I21> = 161;
<I22> = 162;
<I23> = 163;
<I24> = 164;
<I25> = 165;
<I26> = 166;
<I27> = 167;
<I28> = 168;
<I29> = 169;
// <I2A> = 170; <K5A>
<I2B> = 171;
<I2C> = 172;
<I2D> = 173;
<I2E> = 174;
<I2F> = 175;
<I30> = 176;
<I31> = 177;
<I32> = 178;
<I33> = 179;
<I34> = 180;
// <I35> = 181; <K5B>
// <I36> = 182; <K5D>
// <I37> = 183; <K5E>
// <I38> = 184; <K5F>
<I39> = 185;
<I3A> = 186;
<I3B> = 187;
<I3C> = 188;
// <I3D> = 189; <K62>
// <I3E> = 190; <K63>
// <I3F> = 191; <K64>
// <I40> = 192; <K65>
// <I41> = 193; <K66>
<I42> = 194;
<I43> = 195;
<I44> = 196;
<I45> = 197;
// <I46> = 198; <K67>
// <I47> = 199; <K68>
// <I48> = 200; <K69>
// <I49> = 201; <K6A>
<I4A> = 202;
// <I4B> = 203; <K6B>
// <I4C> = 204; <K6C>
// <I4D> = 205; <K6D>
// <I4E> = 206; <K6E>
// <I4F> = 207; <K6F>
// <I50> = 208; <K70>
// <I51> = 209; <K71>
// <I52> = 210; <K72>
// <I53> = 211; <K73>
<I54> = 212;
<I55> = 213;
<I56> = 214;
<I57> = 215;
<I58> = 216;
<I59> = 217;
<I5A> = 218;
// <I5B> = 219; <K74>
// <I5C> = 220; <K75>
// <I5D> = 221; <K76>
<I5E> = 222;
<I5F> = 223;
<I60> = 224;
<I61> = 225;
<I62> = 226;
<I63> = 227;
<I64> = 228;
<I65> = 229;
<I66> = 230;
<I67> = 231;
<I68> = 232;
<I69> = 233;
<I6A> = 234;
<I6B> = 235;
<I6C> = 236;
<I6D> = 237;
<I6E> = 238;
<I6F> = 239;
<I70> = 240;
<I71> = 241;
<I72> = 242;
<I73> = 243;
<I74> = 244;
<I75> = 245;
<I76> = 246;
<I77> = 247;
<I78> = 248;
<I79> = 249;
<I7A> = 250;
<I7B> = 251;
<I7C> = 252;
alias <IR7C> = <I7C>;
<I7D> = 253;
alias <IR7D> = <I7D>;
<I7E> = 254;
<I7F> = 255;
// MacBooks generate 0x65 for the lower brightness key
<II65> = 101;
// Required for apple/logitech_g15 keyboard
<II5D> = 93;
// Codes generated for scancodes 0x59-0x5f, 0x62-0x76
<K59> = 157; // <I1D>
<K5A> = 170; // <I2A>
<K5B> = 181; // <I35>
alias <K5C> = <KPEQ>;
<K5D> = 182; // <I36>
<K5E> = 183; // <I37>
<K5F> = 184; // <I38>
<K62> = 189; // <I3D>
<K63> = 190; // <I3E>
<K64> = 191; // <I3F>
<K65> = 192; // <I40>
<K66> = 193; // <I41>
<K67> = 198; // <I46>
<K68> = 199; // <I47>
<K69> = 200; // <I48>
<K6A> = 201; // <I49>
<K6B> = 203; // <I4B>
<K6C> = 204; // <I4C>
<K6D> = 205; // <I4D>
<K6E> = 206; // <I4E>
<K6F> = 207; // <I4F>
alias <K70> = <HKTG>; // <I50>
alias <K71> = <KANA>; // <I51>
alias <K72> = <EISU>; // <I52>
alias <K73> = <AB11>; // <I53>
<K74> = 219; // <I5B>
<K75> = 220; // <I5C>
<K76> = 221; // <I5D>
// Solaris compatibility
alias <LMTA> = <LWIN>;
alias <RMTA> = <RWIN>;
alias <COMP> = <MENU>;
alias <POWR> = <I0C>;
alias <MUTE> = <I0D>;
alias <VOL-> = <I0E>;
alias <VOL+> = <I0F>;
alias <HELP> = <I10>;
alias <STOP> = <I11>;
alias <AGAI> = <I12>;
alias <PROP> = <I13>;
alias <UNDO> = <I14>;
alias <FRNT> = <I15>;
alias <COPY> = <I16>;
alias <OPEN> = <I17>;
alias <PAST> = <I18>;
alias <FIND> = <I19>;
alias <CUT> = <I1A>;
alias <OUTP> = <I56>;
alias <KITG> = <I57>;
alias <KIDN> = <I58>;
alias <KIUP> = <I59>;
// Other codes never generated. The XFree86 ddx never generates
// these codes.
// Thus we can use them as fake keys
<MDSW> = 8;
<LVL3> = 124; // <U7C>
<ALT> = 125; // <U7D>
<META> = 156; // <I1C>
<SUPR> = 127; // <U7F>
<HYPR> = 128; // <U80>
indicator 1 = "Caps Lock";
indicator 2 = "Num Lock";
indicator 3 = "Scroll Lock";
alias <ALGR> = <RALT>;
// For Brazilian ABNT2
alias <KPPT> = <I06>;
};
// What keyboard is this?
xkb_keycodes "102" {
include "xfree86(xfree86)"
// There will be warnings from xkbcomp because of multiple definitions.
<RALT> = 122;
<RCTL> = 123;
<PRSC> = 121;
<PAUS> = 118;
<INS> = 131;
<HOME> = 135;
<PGUP> = 119;
<DELE> = 129;
<END> = 130;
<PGDN> = 134;
<UP> = 128;
<LEFT> = 132;
<DOWN> = 120;
<RGHT> = 133;
<KPDV> = 125;
<KPEN> = 124;
};
// IBM ThinkPad Z60m/Z60t/Z61m/Z61t
xkb_keycodes "thinkpadz60" {
include "xfree86(xfree86)"
<MENU> = 227;
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,887 @@
! model
pc101 Generic 101-key PC
pc102 Generic 102-key (Intl) PC
pc104 Generic 104-key PC
pc105 Generic 105-key (Intl) PC
dell101 Dell 101-key PC
latitude Dell Latitude series laptop
dellm65 Dell Precision M65
everex Everex STEPnote
flexpro Keytronic FlexPro
microsoft Microsoft Natural
omnikey101 Northgate OmniKey 101
winbook Winbook Model XP5
pc98 PC-98xx Series
a4techKB21 A4Tech KB-21
a4techKBS8 A4Tech KBS-8
a4_rfkb23 A4Tech Wireless Desktop RFKB-23
airkey Acer AirKey V
azonaRF2300 Azona RF2300 wireless Internet Keyboard
scorpius Advance Scorpius KI
brother Brother Internet Keyboard
btc5113rf BTC 5113RF Multimedia
btc5126t BTC 5126T
btc6301urf BTC 6301URF
btc9000 BTC 9000
btc9000a BTC 9000A
btc9001ah BTC 9001AH
btc5090 BTC 5090
btc9019u BTC 9019U
btc9116u BTC 9116U Mini Wireless Internet and Gaming
cherryblue Cherry Blue Line CyBo@rd
cherryblueb Cherry CyMotion Master XPress
cherrybluea Cherry Blue Line CyBo@rd (alternate option)
cherrycyboard Cherry CyBo@rd USB-Hub
cherrycmexpert Cherry CyMotion Expert
cherrybunlim Cherry B.UNLIMITED
chicony Chicony Internet Keyboard
chicony0108 Chicony KU-0108
chicony0420 Chicony KU-0420
chicony9885 Chicony KB-9885
compaqeak8 Compaq Easy Access Keyboard
compaqik7 Compaq Internet Keyboard (7 keys)
compaqik13 Compaq Internet Keyboard (13 keys)
compaqik18 Compaq Internet Keyboard (18 keys)
cymotionlinux Cherry CyMotion Master Linux
armada Laptop/notebook Compaq (eg. Armada) Laptop Keyboard
presario Laptop/notebook Compaq (eg. Presario) Internet Keyboard
ipaq Compaq iPaq Keyboard
dell Dell
dellsk8125 Dell SK-8125
dellsk8135 Dell SK-8135
dellusbmm Dell USB Multimedia Keyboard
inspiron Dell Laptop/notebook Inspiron 6xxx/8xxx
precision_m Dell Laptop/notebook Precision M series
dexxa Dexxa Wireless Desktop Keyboard
diamond Diamond 9801 / 9802 series
dtk2000 DTK2000
ennyah_dkb1008 Ennyah DKB-1008
fscaa1667g Fujitsu-Siemens Computers AMILO laptop
genius Genius Comfy KB-16M / Genius MM Keyboard KWD-910
geniuscomfy Genius Comfy KB-12e
geniuscomfy2 Genius Comfy KB-21e-Scroll
geniuskb19e Genius KB-19e NB
geniuskkb2050hs Genius KKB-2050HS
gyration Gyration
htcdream HTC Dream
kinesis Kinesis
logitech_base Logitech Generic Keyboard
logitech_g15 Logitech G15 extra keys via G15daemon
hpi6 Hewlett-Packard Internet Keyboard
hp250x Hewlett-Packard SK-250x Multimedia Keyboard
hpxe3gc Hewlett-Packard Omnibook XE3 GC
hpxe3gf Hewlett-Packard Omnibook XE3 GF
hpxt1000 Hewlett-Packard Omnibook XT1000
hpdv5 Hewlett-Packard Pavilion dv5
hpzt11xx Hewlett-Packard Pavilion ZT11xx
hp500fa Hewlett-Packard Omnibook 500 FA
hp5xx Hewlett-Packard Omnibook 5xx
hpnx9020 Hewlett-Packard nx9020
hp6000 Hewlett-Packard Omnibook 6000/6100
honeywell_euroboard Honeywell Euroboard
hpmini110 Hewlett-Packard Mini 110 Notebook
rapidaccess IBM Rapid Access
rapidaccess2 IBM Rapid Access II
thinkpad IBM ThinkPad 560Z/600/600E/A22E
thinkpad60 IBM ThinkPad R60/T60/R61/T61
thinkpadz60 IBM ThinkPad Z60m/Z60t/Z61m/Z61t
ibm_spacesaver IBM Space Saver
logiaccess Logitech Access Keyboard
logiclx300 Logitech Cordless Desktop LX-300
logii350 Logitech Internet 350 Keyboard
logimel Logitech Media Elite Keyboard
logicd Logitech Cordless Desktop
logicd_it Logitech Cordless Desktop iTouch
logicd_nav Logitech Cordless Desktop Navigator
logicd_opt Logitech Cordless Desktop Optical
logicda Logitech Cordless Desktop (alternate option)
logicdpa2 Logitech Cordless Desktop Pro (alternate option 2)
logicfn Logitech Cordless Freedom/Desktop Navigator
logicdn Logitech Cordless Desktop Navigator
logiitc Logitech iTouch Cordless Keyboard (model Y-RB6)
logiik Logitech Internet Keyboard
itouch Logitech iTouch
logicink Logitech Internet Navigator Keyboard
logiex110 Logitech Cordless Desktop EX110
logiinkse Logitech iTouch Internet Navigator Keyboard SE
logiinkseusb Logitech iTouch Internet Navigator Keyboard SE (USB)
logiultrax Logitech Ultra-X Keyboard
logiultraxc Logitech Ultra-X Cordless Media Desktop Keyboard
logidinovo Logitech diNovo Keyboard
logidinovoedge Logitech diNovo Edge Keyboard
mx1998 Memorex MX1998
mx2500 Memorex MX2500 EZ-Access Keyboard
mx2750 Memorex MX2750
microsoft4000 Microsoft Natural Wireless Ergonomic Keyboard 4000
microsoft7000 Microsoft Natural Wireless Ergonomic Keyboard 7000
microsoftinet Microsoft Internet Keyboard
microsoftpro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro
microsoftprousb Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro
microsoftprooem Microsoft Natural Keyboard Pro OEM
vsonku306 ViewSonic KU-306 Internet Keyboard
microsoftprose Microsoft Internet Keyboard Pro, Swedish
microsoftoffice Microsoft Office Keyboard
microsoftmult Microsoft Wireless Multimedia Keyboard 1.0A
microsoftelite Microsoft Natural Keyboard Elite
microsoftccurve2k Microsoft Comfort Curve Keyboard 2000
oretec Ortek MCK-800 MM/Internet keyboard
propeller Propeller Voyager (KTEZ-1000)
qtronix QTronix Scorpius 98N+
samsung4500 Samsung SDM 4500P
samsung4510 Samsung SDM 4510P
sanwaskbkg3 Sanwa Supply SKB-KG3
sk1300 SK-1300
sk2500 SK-2500
sk6200 SK-6200
sk7100 SK-7100
sp_inet Super Power Multimedia Keyboard
sven SVEN Ergonomic 2500
sven303 SVEN Slim 303
symplon Symplon PaceBook (tablet PC)
toshiba_s3000 Toshiba Satellite S3000
trust Trust Wireless Keyboard Classic
trustda Trust Direct Access Keyboard
trust_slimline Trust Slimline
tm2020 TypeMatrix EZ-Reach 2020
tm2030PS2 TypeMatrix EZ-Reach 2030 PS2
tm2030USB TypeMatrix EZ-Reach 2030 USB
tm2030USB-102 TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)
tm2030USB-106 TypeMatrix EZ-Reach 2030 USB (106:JP mode)
yahoo Yahoo! Internet Keyboard
macbook78 MacBook/MacBook Pro
macbook79 MacBook/MacBook Pro (Intl)
macintosh Macintosh
macintosh_old Macintosh Old
macintosh_hhk Happy Hacking Keyboard for Mac
acer_c300 Acer C300
acer_ferrari4k Acer Ferrari 4000
acer_laptop Acer Laptop
asus_laptop Asus Laptop
apple Apple
apple_laptop Apple Laptop
applealu_ansi Apple Aluminium Keyboard (ANSI)
applealu_iso Apple Aluminium Keyboard (ISO)
applealu_jis Apple Aluminium Keyboard (JIS)
silvercrest SILVERCREST Multimedia Wireless Keyboard
emachines Laptop/notebook eMachines m68xx
benqx BenQ X-Touch
benqx730 BenQ X-Touch 730
benqx800 BenQ X-Touch 800
hhk Happy Hacking Keyboard
classmate Classmate PC
olpc OLPC
sun_type7_usb Sun Type 7 USB
sun_type7_euro_usb Sun Type 7 USB (European layout)
sun_type7_unix_usb Sun Type 7 USB (Unix layout)
sun_type7_jp_usb Sun Type 7 USB (Japanese layout) / Japanese 106-key
sun_type6_usb Sun Type 6/7 USB
sun_type6_euro_usb Sun Type 6/7 USB (European layout)
sun_type6_unix_usb Sun Type 6 USB (Unix layout)
sun_type6_jp_usb Sun Type 6 USB (Japanese layout)
sun_type6_jp Sun Type 6 (Japanese layout)
targa_v811 Targa Visionary 811
unitekkb1925 Unitek KB-1925
compalfl90 FL90
creativedw7000 Creative Desktop Wireless 7000
htcdream Htc Dream phone
! layout
us English (US)
af Afghani
ara Arabic
al Albanian
am Armenian
at German (Austria)
az Azerbaijani
by Belarusian
be Belgian
bd Bangla
in Indian
ba Bosnian
br Portuguese (Brazil)
bg Bulgarian
ma Arabic (Morocco)
cm English (Cameroon)
mm Burmese
ca French (Canada)
cd French (Democratic Republic of the Congo)
cn Chinese
hr Croatian
cz Czech
dk Danish
nl Dutch
bt Dzongkha
ee Estonian
ir Persian
iq Iraqi
fo Faroese
fi Finnish
fr French
gh English (Ghana)
gn French (Guinea)
ge Georgian
de German
gr Greek
hu Hungarian
is Icelandic
il Hebrew
it Italian
jp Japanese
kg Kyrgyz
kh Khmer (Cambodia)
kz Kazakh
la Lao
latam Spanish (Latin American)
lt Lithuanian
lv Latvian
mao Maori
me Montenegrin
mk Macedonian
mt Maltese
mn Mongolian
no Norwegian
pl Polish
pt Portuguese
ro Romanian
ru Russian
rs Serbian
si Slovenian
sk Slovak
es Spanish
se Swedish
ch German (Switzerland)
sy Arabic (Syria)
tj Tajik
lk Sinhala (phonetic)
th Thai
tr Turkish
tw Taiwanese
ua Ukrainian
gb English (UK)
uz Uzbek
vn Vietnamese
kr Korean
nec_vndr/jp Japanese (PC-98xx Series)
ie Irish
pk Urdu (Pakistan)
mv Dhivehi
za English (South Africa)
epo Esperanto
np Nepali
ng English (Nigeria)
et Amharic
sn Wolof
brai Braille
tm Turkmen
ml Bambara
tz Swahili (Tanzania)
ke Swahili (Kenya)
bw Tswana
ph Filipino
md Moldavian
! variant
chr us: Cherokee
euro us: English (US, with euro on 5)
intl us: English (US, international with dead keys)
alt-intl us: English (US, alternative international)
colemak us: English (Colemak)
dvorak us: English (Dvorak)
dvorak-intl us: English (Dvorak, international with dead keys)
dvorak-alt-intl us: English (Dvorak alternative international no dead keys)
dvorak-l us: English (left handed Dvorak)
dvorak-r us: English (right handed Dvorak)
dvorak-classic us: English (classic Dvorak)
dvp us: English (programmer Dvorak)
rus us: Russian (US, phonetic)
mac us: English (Macintosh)
altgr-intl us: English (international AltGr dead keys)
olpc2 us: English (the divide/multiply keys toggle the layout)
hbs us: Serbo-Croatian (US)
workman us: English (Workman)
workman-intl us: English (Workman, international with dead keys)
ps af: Pashto
uz af: Uzbek (Afghanistan)
olpc-ps af: Pashto (Afghanistan, OLPC)
fa-olpc af: Persian (Afghanistan, Dari OLPC)
uz-olpc af: Uzbek (Afghanistan, OLPC)
azerty ara: Arabic (azerty)
azerty_digits ara: Arabic (azerty/digits)
digits ara: Arabic (digits)
qwerty ara: Arabic (qwerty)
qwerty_digits ara: Arabic (qwerty/digits)
buckwalter ara: Arabic (Buckwalter)
plisi-d1 al: Albanian (Plisi D1)
phonetic am: Armenian (phonetic)
phonetic-alt am: Armenian (alternative phonetic)
eastern am: Armenian (eastern)
western am: Armenian (western)
eastern-alt am: Armenian (alternative eastern)
nodeadkeys at: German (Austria, eliminate dead keys)
sundeadkeys at: German (Austria, Sun dead keys)
mac at: German (Austria, Macintosh)
cyrillic az: Azerbaijani (Cyrillic)
legacy by: Belarusian (legacy)
latin by: Belarusian (Latin)
oss be: Belgian (alternative)
oss_latin9 be: Belgian (alternative, Latin-9 only)
oss_sundeadkeys be: Belgian (alternative, Sun dead keys)
iso-alternate be: Belgian (ISO alternate)
nodeadkeys be: Belgian (eliminate dead keys)
sundeadkeys be: Belgian (Sun dead keys)
wang be: Belgian (Wang model 724 azerty)
probhat bd: Bangla (Probhat)
ben in: Bangla (India)
ben_probhat in: Bangla (India, Probhat)
ben_baishakhi in: Bangla (India, Baishakhi)
ben_bornona in: Bangla (India, Bornona)
ben_gitanjali in: Bangla (India, Uni Gitanjali)
ben_inscript in: Bangla (India, Baishakhi Inscript)
eeyek in: Manipuri (Eeyek)
guj in: Gujarati
guru in: Punjabi (Gurmukhi)
jhelum in: Punjabi (Gurmukhi Jhelum)
kan in: Kannada
kan-kagapa in: Kannada (KaGaPa phonetic)
mal in: Malayalam
mal_lalitha in: Malayalam (Lalitha)
mal_enhanced in: Malayalam (enhanced Inscript, with rupee sign)
ori in: Oriya
tam_unicode in: Tamil (Unicode)
tam_keyboard_with_numerals in: Tamil (keyboard with numerals)
tam_TAB in: Tamil (TAB typewriter)
tam_TSCII in: Tamil (TSCII typewriter)
tam in: Tamil
tel in: Telugu
tel-kagapa in: Telugu (KaGaPa phonetic)
urd-phonetic in: Urdu (phonetic)
urd-phonetic3 in: Urdu (alternative phonetic)
urd-winkeys in: Urdu (WinKeys)
bolnagri in: Hindi (Bolnagri)
hin-wx in: Hindi (Wx)
hin-kagapa in: Hindi (KaGaPa phonetic)
san-kagapa in: Sanskrit (KaGaPa phonetic)
mar-kagapa in: Marathi (KaGaPa phonetic)
eng in: English (India, with rupee sign)
alternatequotes ba: Bosnian (with guillemets for quotes)
unicode ba: Bosnian (with Bosnian digraphs)
unicodeus ba: Bosnian (US keyboard with Bosnian digraphs)
us ba: Bosnian (US keyboard with Bosnian letters)
nodeadkeys br: Portuguese (Brazil, eliminate dead keys)
dvorak br: Portuguese (Brazil, Dvorak)
nativo br: Portuguese (Brazil, Nativo)
nativo-us br: Portuguese (Brazil, Nativo for US keyboards)
nativo-epo br: Esperanto (Brazil, Nativo)
phonetic bg: Bulgarian (traditional phonetic)
bas_phonetic bg: Bulgarian (new phonetic)
french ma: French (Morocco)
tifinagh ma: Berber (Morocco, Tifinagh)
tifinagh-alt ma: Berber (Morocco, Tifinagh alternative)
tifinagh-alt-phonetic ma: Berber (Morocco, Tifinagh alternative phonetic)
tifinagh-extended ma: Berber (Morocco, Tifinagh extended)
tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic)
tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic)
french cm: French (Cameroon)
qwerty cm: Cameroon Multilingual (qwerty)
azerty cm: Cameroon Multilingual (azerty)
dvorak cm: Cameroon Multilingual (Dvorak)
fr-dvorak ca: French (Canada, Dvorak)
fr-legacy ca: French (Canada, legacy)
multix ca: Canadian Multilingual
multi ca: Canadian Multilingual (first part)
multi-2gr ca: Canadian Multilingual (second part)
ike ca: Inuktitut
eng ca: English (Canada)
tib cn: Tibetan
tib_asciinum cn: Tibetan (with ASCII numerals)
ug cn: Uyghur
alternatequotes hr: Croatian (with guillemets for quotes)
unicode hr: Croatian (with Croatian digraphs)
unicodeus hr: Croatian (US keyboard with Croatian digraphs)
us hr: Croatian (US keyboard with Croatian letters)
bksl cz: Czech (with &lt;\|&gt; key)
qwerty cz: Czech (qwerty)
qwerty_bksl cz: Czech (qwerty, extended Backslash)
ucw cz: Czech (UCW layout, accented letters only)
dvorak-ucw cz: Czech (US Dvorak with CZ UCW support)
nodeadkeys dk: Danish (eliminate dead keys)
winkeys dk: Danish (Winkeys)
mac dk: Danish (Macintosh)
mac_nodeadkeys dk: Danish (Macintosh, eliminate dead keys)
dvorak dk: Danish (Dvorak)
sundeadkeys nl: Dutch (Sun dead keys)
mac nl: Dutch (Macintosh)
std nl: Dutch (standard)
nodeadkeys ee: Estonian (eliminate dead keys)
dvorak ee: Estonian (Dvorak)
us ee: Estonian (US keyboard with Estonian letters)
pes_keypad ir: Persian (with Persian keypad)
ku ir: Kurdish (Iran, Latin Q)
ku_f ir: Kurdish (Iran, F)
ku_alt ir: Kurdish (Iran, Latin Alt-Q)
ku_ara ir: Kurdish (Iran, Arabic-Latin)
ku iq: Kurdish (Iraq, Latin Q)
ku_f iq: Kurdish (Iraq, F)
ku_alt iq: Kurdish (Iraq, Latin Alt-Q)
ku_ara iq: Kurdish (Iraq, Arabic-Latin)
nodeadkeys fo: Faroese (eliminate dead keys)
classic fi: Finnish (classic)
nodeadkeys fi: Finnish (classic, eliminate dead keys)
winkeys fi: Finnish (Winkeys)
smi fi: Northern Saami (Finland)
mac fi: Finnish (Macintosh)
nodeadkeys fr: French (eliminate dead keys)
sundeadkeys fr: French (Sun dead keys)
oss fr: French (alternative)
oss_latin9 fr: French (alternative, Latin-9 only)
oss_nodeadkeys fr: French (alternative, eliminate dead keys)
oss_sundeadkeys fr: French (alternative, Sun dead keys)
latin9 fr: French (legacy, alternative)
latin9_nodeadkeys fr: French (legacy, alternative, eliminate dead keys)
latin9_sundeadkeys fr: French (legacy, alternative, Sun dead keys)
bepo fr: French (Bepo, ergonomic, Dvorak way)
bepo_latin9 fr: French (Bepo, ergonomic, Dvorak way, Latin-9 only)
dvorak fr: French (Dvorak)
mac fr: French (Macintosh)
bre fr: French (Breton)
oci fr: Occitan
geo fr: Georgian (France, AZERTY Tskapo)
generic gh: English (Ghana, multilingual)
akan gh: Akan
ewe gh: Ewe
fula gh: Fula
ga gh: Ga
hausa gh: Hausa
avn gh: Avatime
gillbt gh: English (Ghana, GILLBT)
ergonomic ge: Georgian (ergonomic)
mess ge: Georgian (MESS)
ru ge: Russian (Georgia)
os ge: Ossetian (Georgia)
deadacute de: German (dead acute)
deadgraveacute de: German (dead grave acute)
nodeadkeys de: German (eliminate dead keys)
T3 de: German (T3)
ro de: Romanian (Germany)
ro_nodeadkeys de: Romanian (Germany, eliminate dead keys)
dvorak de: German (Dvorak)
sundeadkeys de: German (Sun dead keys)
neo de: German (Neo 2)
mac de: German (Macintosh)
mac_nodeadkeys de: German (Macintosh, eliminate dead keys)
dsb de: Lower Sorbian
dsb_qwertz de: Lower Sorbian (qwertz)
qwerty de: German (qwerty)
tr de: Turkish (Germany)
ru de: Russian (Germany, phonetic)
legacy de: German (legacy)
simple gr: Greek (simple)
extended gr: Greek (extended)
nodeadkeys gr: Greek (eliminate dead keys)
polytonic gr: Greek (polytonic)
standard hu: Hungarian (standard)
nodeadkeys hu: Hungarian (eliminate dead keys)
qwerty hu: Hungarian (qwerty)
101_qwertz_comma_dead hu: Hungarian (101/qwertz/comma/dead keys)
101_qwertz_comma_nodead hu: Hungarian (101/qwertz/comma/eliminate dead keys)
101_qwertz_dot_dead hu: Hungarian (101/qwertz/dot/dead keys)
101_qwertz_dot_nodead hu: Hungarian (101/qwertz/dot/eliminate dead keys)
101_qwerty_comma_dead hu: Hungarian (101/qwerty/comma/dead keys)
101_qwerty_comma_nodead hu: Hungarian (101/qwerty/comma/eliminate dead keys)
101_qwerty_dot_dead hu: Hungarian (101/qwerty/dot/dead keys)
101_qwerty_dot_nodead hu: Hungarian (101/qwerty/dot/eliminate dead keys)
102_qwertz_comma_dead hu: Hungarian (102/qwertz/comma/dead keys)
102_qwertz_comma_nodead hu: Hungarian (102/qwertz/comma/eliminate dead keys)
102_qwertz_dot_dead hu: Hungarian (102/qwertz/dot/dead keys)
102_qwertz_dot_nodead hu: Hungarian (102/qwertz/dot/eliminate dead keys)
102_qwerty_comma_dead hu: Hungarian (102/qwerty/comma/dead keys)
102_qwerty_comma_nodead hu: Hungarian (102/qwerty/comma/eliminate dead keys)
102_qwerty_dot_dead hu: Hungarian (102/qwerty/dot/dead keys)
102_qwerty_dot_nodead hu: Hungarian (102/qwerty/dot/eliminate dead keys)
Sundeadkeys is: Icelandic (Sun dead keys)
nodeadkeys is: Icelandic (eliminate dead keys)
mac is: Icelandic (Macintosh)
dvorak is: Icelandic (Dvorak)
lyx il: Hebrew (lyx)
phonetic il: Hebrew (phonetic)
biblical il: Hebrew (Biblical, Tiro)
nodeadkeys it: Italian (eliminate dead keys)
winkeys it: Italian (Winkeys)
mac it: Italian (Macintosh)
us it: Italian (US keyboard with Italian letters)
geo it: Georgian (Italy)
ibm it: Italian (IBM 142)
kana jp: Japanese (Kana)
kana86 jp: Japanese (Kana 86)
OADG109A jp: Japanese (OADG 109A)
mac jp: Japanese (Macintosh)
dvorak jp: Japanese (Dvorak)
phonetic kg: Kyrgyz (phonetic)
ruskaz kz: Russian (Kazakhstan, with Kazakh)
kazrus kz: Kazakh (with Russian)
stea la: Lao (STEA proposed standard layout)
nodeadkeys latam: Spanish (Latin American, eliminate dead keys)
deadtilde latam: Spanish (Latin American, include dead tilde)
sundeadkeys latam: Spanish (Latin American, Sun dead keys)
std lt: Lithuanian (standard)
us lt: Lithuanian (US keyboard with Lithuanian letters)
ibm lt: Lithuanian (IBM LST 1205-92)
lekp lt: Lithuanian (LEKP)
lekpa lt: Lithuanian (LEKPa)
apostrophe lv: Latvian (apostrophe variant)
tilde lv: Latvian (tilde variant)
fkey lv: Latvian (F variant)
modern lv: Latvian (modern)
ergonomic lv: Latvian (ergonomic, ŪGJRMV)
adapted lv: Latvian (adapted)
cyrillic me: Montenegrin (Cyrillic)
cyrillicyz me: Montenegrin (Cyrillic, ZE and ZHE swapped)
latinunicode me: Montenegrin (Latin Unicode)
latinyz me: Montenegrin (Latin qwerty)
latinunicodeyz me: Montenegrin (Latin Unicode qwerty)
cyrillicalternatequotes me: Montenegrin (Cyrillic with guillemets)
latinalternatequotes me: Montenegrin (Latin with guillemets)
nodeadkeys mk: Macedonian (eliminate dead keys)
us mt: Maltese (with US layout)
nodeadkeys no: Norwegian (eliminate dead keys)
winkeys no: Norwegian (Winkeys)
dvorak no: Norwegian (Dvorak)
smi no: Northern Saami (Norway)
smi_nodeadkeys no: Northern Saami (Norway, eliminate dead keys)
mac no: Norwegian (Macintosh)
mac_nodeadkeys no: Norwegian (Macintosh, eliminate dead keys)
colemak no: Norwegian (Colemak)
legacy pl: Polish (legacy)
qwertz pl: Polish (qwertz)
dvorak pl: Polish (Dvorak)
dvorak_quotes pl: Polish (Dvorak, Polish quotes on quotemark key)
dvorak_altquotes pl: Polish (Dvorak, Polish quotes on key 1)
csb pl: Kashubian
szl pl: Silesian
ru_phonetic_dvorak pl: Russian (Poland, phonetic Dvorak)
dvp pl: Polish (programmer Dvorak)
nodeadkeys pt: Portuguese (eliminate dead keys)
sundeadkeys pt: Portuguese (Sun dead keys)
mac pt: Portuguese (Macintosh)
mac_nodeadkeys pt: Portuguese (Macintosh, eliminate dead keys)
mac_sundeadkeys pt: Portuguese (Macintosh, Sun dead keys)
nativo pt: Portuguese (Nativo)
nativo-us pt: Portuguese (Nativo for US keyboards)
nativo-epo pt: Esperanto (Portugal, Nativo)
cedilla ro: Romanian (cedilla)
std ro: Romanian (standard)
std_cedilla ro: Romanian (standard cedilla)
winkeys ro: Romanian (WinKeys)
phonetic ru: Russian (phonetic)
phonetic_winkeys ru: Russian (phonetic WinKeys)
typewriter ru: Russian (typewriter)
legacy ru: Russian (legacy)
typewriter-legacy ru: Russian (typewriter, legacy)
tt ru: Tatar
os_legacy ru: Ossetian (legacy)
os_winkeys ru: Ossetian (WinKeys)
cv ru: Chuvash
cv_latin ru: Chuvash (Latin)
udm ru: Udmurt
kom ru: Komi
sah ru: Yakut
xal ru: Kalmyk
dos ru: Russian (DOS)
mac ru: Russian (Macintosh)
srp ru: Serbian (Russia)
bak ru: Bashkirian
chm ru: Mari
yz rs: Serbian (Cyrillic, ZE and ZHE swapped)
latin rs: Serbian (Latin)
latinunicode rs: Serbian (Latin Unicode)
latinyz rs: Serbian (Latin qwerty)
latinunicodeyz rs: Serbian (Latin Unicode qwerty)
alternatequotes rs: Serbian (Cyrillic with guillemets)
latinalternatequotes rs: Serbian (Latin with guillemets)
rue rs: Pannonian Rusyn
alternatequotes si: Slovenian (with guillemets for quotes)
us si: Slovenian (US keyboard with Slovenian letters)
bksl sk: Slovak (extended Backslash)
qwerty sk: Slovak (qwerty)
qwerty_bksl sk: Slovak (qwerty, extended Backslash)
nodeadkeys es: Spanish (eliminate dead keys)
winkeys es: Spanish (Winkeys)
deadtilde es: Spanish (include dead tilde)
sundeadkeys es: Spanish (Sun dead keys)
dvorak es: Spanish (Dvorak)
ast es: Asturian (Spain, with bottom-dot H and bottom-dot L)
cat es: Catalan (Spain, with middle-dot L)
mac es: Spanish (Macintosh)
nodeadkeys se: Swedish (eliminate dead keys)
dvorak se: Swedish (Dvorak)
rus se: Russian (Sweden, phonetic)
rus_nodeadkeys se: Russian (Sweden, phonetic, eliminate dead keys)
smi se: Northern Saami (Sweden)
mac se: Swedish (Macintosh)
svdvorak se: Swedish (Svdvorak)
swl se: Swedish Sign Language
legacy ch: German (Switzerland, legacy)
de_nodeadkeys ch: German (Switzerland, eliminate dead keys)
de_sundeadkeys ch: German (Switzerland, Sun dead keys)
fr ch: French (Switzerland)
fr_nodeadkeys ch: French (Switzerland, eliminate dead keys)
fr_sundeadkeys ch: French (Switzerland, Sun dead keys)
fr_mac ch: French (Switzerland, Macintosh)
de_mac ch: German (Switzerland, Macintosh)
syc sy: Syriac
syc_phonetic sy: Syriac (phonetic)
ku sy: Kurdish (Syria, Latin Q)
ku_f sy: Kurdish (Syria, F)
ku_alt sy: Kurdish (Syria, Latin Alt-Q)
legacy tj: Tajik (legacy)
tam_unicode lk: Tamil (Sri Lanka, Unicode)
tam_TAB lk: Tamil (Sri Lanka, TAB Typewriter)
tis th: Thai (TIS-820.2538)
pat th: Thai (Pattachote)
f tr: Turkish (F)
alt tr: Turkish (Alt-Q)
sundeadkeys tr: Turkish (Sun dead keys)
ku tr: Kurdish (Turkey, Latin Q)
ku_f tr: Kurdish (Turkey, F)
ku_alt tr: Kurdish (Turkey, Latin Alt-Q)
intl tr: Turkish (international with dead keys)
crh tr: Crimean Tatar (Turkish Q)
crh_f tr: Crimean Tatar (Turkish F)
crh_alt tr: Crimean Tatar (Turkish Alt-Q)
indigenous tw: Taiwanese (indigenous)
saisiyat tw: Saisiyat (Taiwan)
phonetic ua: Ukrainian (phonetic)
typewriter ua: Ukrainian (typewriter)
winkeys ua: Ukrainian (WinKeys)
legacy ua: Ukrainian (legacy)
rstu ua: Ukrainian (standard RSTU)
rstu_ru ua: Russian (Ukraine, standard RSTU)
homophonic ua: Ukrainian (homophonic)
extd gb: English (UK, extended WinKeys)
intl gb: English (UK, international with dead keys)
dvorak gb: English (UK, Dvorak)
dvorakukp gb: English (UK, Dvorak with UK punctuation)
mac gb: English (UK, Macintosh)
mac_intl gb: English (UK, Macintosh international)
colemak gb: English (UK, Colemak)
latin uz: Uzbek (Latin)
kr104 kr: Korean (101/104 key compatible)
CloGaelach ie: CloGaelach
UnicodeExpert ie: Irish (UnicodeExpert)
ogam ie: Ogham
ogam_is434 ie: Ogham (IS434)
urd-crulp pk: Urdu (Pakistan, CRULP)
urd-nla pk: Urdu (Pakistan, NLA)
ara pk: Arabic (Pakistan)
snd pk: Sindhi
legacy epo: Esperanto (displaced semicolon and quote, obsolete)
igbo ng: Igbo
yoruba ng: Yoruba
hausa ng: Hausa
left_hand brai: Braille (left hand)
right_hand brai: Braille (right hand)
alt tm: Turkmen (Alt-Q)
fr-oss ml: French (Mali, alternative)
us-mac ml: English (Mali, US Macintosh)
us-intl ml: English (Mali, US international)
kik ke: Kikuyu
qwerty-bay ph: Filipino (QWERTY Baybayin)
capewell-dvorak ph: Filipino (Capewell-Dvorak Latin)
capewell-dvorak-bay ph: Filipino (Capewell-Dvorak Baybayin)
capewell-qwerf2k6 ph: Filipino (Capewell-QWERF 2006 Latin)
capewell-qwerf2k6-bay ph: Filipino (Capewell-QWERF 2006 Baybayin)
colemak ph: Filipino (Colemak Latin)
colemak-bay ph: Filipino (Colemak Baybayin)
dvorak ph: Filipino (Dvorak Latin)
dvorak-bay ph: Filipino (Dvorak Baybayin)
gag md: Moldavian (Gagauz)
! option
grp Switching to another layout
grp:switch Right Alt (while pressed)
grp:lswitch Left Alt (while pressed)
grp:lwin_switch Left Win (while pressed)
grp:rwin_switch Right Win (while pressed)
grp:win_switch Any Win key (while pressed)
grp:caps_switch Caps Lock (while pressed), Alt+Caps Lock does the original capslock action
grp:rctrl_switch Right Ctrl (while pressed)
grp:toggle Right Alt
grp:lalt_toggle Left Alt
grp:caps_toggle Caps Lock
grp:shift_caps_toggle Shift+Caps Lock
grp:shift_caps_switch Caps Lock (to first layout), Shift+Caps Lock (to last layout)
grp:win_menu_switch Left Win (to first layout), Right Win/Menu (to last layout)
grp:lctrl_rctrl_switch Left Ctrl (to first layout), Right Ctrl (to last layout)
grp:alt_caps_toggle Alt+Caps Lock
grp:shifts_toggle Both Shift keys together
grp:alts_toggle Both Alt keys together
grp:ctrls_toggle Both Ctrl keys together
grp:ctrl_shift_toggle Ctrl+Shift
grp:lctrl_lshift_toggle Left Ctrl+Left Shift
grp:rctrl_rshift_toggle Right Ctrl+Right Shift
grp:ctrl_alt_toggle Alt+Ctrl
grp:alt_shift_toggle Alt+Shift
grp:lalt_lshift_toggle Left Alt+Left Shift
grp:alt_space_toggle Alt+Space
grp:menu_toggle Menu
grp:lwin_toggle Left Win
grp:win_space_toggle Win Key+Space
grp:rwin_toggle Right Win
grp:lshift_toggle Left Shift
grp:rshift_toggle Right Shift
grp:lctrl_toggle Left Ctrl
grp:rctrl_toggle Right Ctrl
grp:sclk_toggle Scroll Lock
grp:lctrl_lwin_rctrl_menu LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)
lv3 Key to choose 3rd level
lv3:switch Right Ctrl
lv3:menu_switch Menu
lv3:win_switch Any Win key
lv3:lwin_switch Left Win
lv3:rwin_switch Right Win
lv3:alt_switch Any Alt key
lv3:lalt_switch Left Alt
lv3:ralt_switch Right Alt
lv3:ralt_switch_multikey Right Alt, Shift+Right Alt key is Compose
lv3:ralt_alt Right Alt key never chooses 3rd level
lv3:enter_switch Enter on keypad
lv3:caps_switch Caps Lock
lv3:bksl_switch Backslash
lv3:lsgt_switch &lt;Less/Greater&gt;
lv3:caps_switch_latch Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
lv3:bksl_switch_latch Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
lv3:lsgt_switch_latch &lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
ctrl Ctrl key position
ctrl:nocaps Caps Lock as Ctrl
ctrl:lctrl_meta Left Ctrl as Meta
ctrl:swapcaps Swap Ctrl and Caps Lock
ctrl:ac_ctrl At left of 'A'
ctrl:aa_ctrl At bottom left
ctrl:rctrl_ralt Right Ctrl as Right Alt
ctrl:menu_rctrl Menu as Right Ctrl
ctrl:ctrl_ralt Right Alt as Right Ctrl
ctrl:swap_lalt_lctl Swap Left Alt key with Left Ctrl key
ctrl:swap_lwin_lctl Swap Left Win key with Left Ctrl key
ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt
grp_led Use keyboard LED to show alternative layout
grp_led:num Num Lock
grp_led:caps Caps Lock
grp_led:scroll Scroll Lock
keypad Layout of numeric keypad
keypad:legacy Legacy
keypad:oss Unicode additions (arrows and math operators)
keypad:future Unicode additions (arrows and math operators; math operators on default level)
keypad:legacy_wang Legacy Wang 724
keypad:oss_wang Wang 724 keypad with Unicode additions (arrows and math operators)
keypad:future_wang Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)
keypad:hex Hexadecimal
keypad:atm ATM/phone-style
kpdl Numeric keypad delete key behaviour
kpdl:dot Legacy key with dot
kpdl:comma Legacy key with comma
kpdl:dotoss Four-level key with dot
kpdl:dotoss_latin9 Four-level key with dot, Latin-9 only
kpdl:commaoss Four-level key with comma
kpdl:momayyezoss Four-level key with momayyez
kpdl:kposs Four-level key with abstract separators
kpdl:semi Semicolon on third level
caps Caps Lock key behavior
caps:internal Caps Lock uses internal capitalization; Shift "pauses" Caps Lock
caps:internal_nocancel Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock
caps:shift Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock
caps:shift_nocancel Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock
caps:capslock Caps Lock toggles normal capitalization of alphabetic characters
caps:numlock Make Caps Lock an additional Num Lock
caps:swapescape Swap ESC and Caps Lock
caps:escape Make Caps Lock an additional ESC
caps:backspace Make Caps Lock an additional Backspace
caps:super Make Caps Lock an additional Super
caps:hyper Make Caps Lock an additional Hyper
caps:shiftlock Caps Lock toggles ShiftLock (affects all keys)
caps:none Caps Lock is disabled
caps:ctrl_modifier Make Caps Lock an additional Ctrl
altwin Alt/Win key behavior
altwin:menu Add the standard behavior to Menu key
altwin:meta_alt Alt and Meta are on Alt keys
altwin:alt_win Alt is mapped to Win keys (and the usual Alt keys)
altwin:ctrl_win Ctrl is mapped to Win keys (and the usual Ctrl keys)
altwin:ctrl_alt_win Ctrl is mapped to Alt keys, Alt is mapped to Win keys
altwin:meta_win Meta is mapped to Win keys
altwin:left_meta_win Meta is mapped to Left Win
altwin:hyper_win Hyper is mapped to Win keys
altwin:alt_super_win Alt is mapped to Right Win, Super to Menu
altwin:swap_alt_win Alt is swapped with Win
Compose key Position of Compose key
compose:ralt Right Alt
compose:lwin Left Win
compose:lwin-altgr 3rd level of Left Win
compose:rwin Right Win
compose:rwin-altgr 3rd level of Right Win
compose:menu Menu
compose:menu-altgr 3rd level of Menu
compose:lctrl Left Ctrl
compose:lctrl-altgr 3rd level of Left Ctrl
compose:rctrl Right Ctrl
compose:rctrl-altgr 3rd level of Right Ctrl
compose:caps Caps Lock
compose:caps-altgr 3rd level of Caps Lock
compose:102 &lt;Less/Greater&gt;
compose:102-altgr 3rd level of &lt;Less/Greater&gt;
compose:paus Pause
compose:prsc PrtSc
compose:sclk Scroll Lock
compat Miscellaneous compatibility options
numpad:pc Default numeric keypad keys
numpad:mac Numeric keypad keys always enter digits (as in Mac OS)
numpad:microsoft Shift with numeric keypad keys works as in MS Windows
numpad:shift3 Shift does not cancel Num Lock, chooses 3rd level instead
srvrkeys:none Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server
apple:alupckeys Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)
shift:breaks_caps Shift cancels Caps Lock
misc:typo Enable extra typographic characters
shift:both_capslock Both Shift keys together toggle Caps Lock
shift:both_capslock_cancel Both Shift keys together activate Caps Lock, one Shift key deactivates
shift:both_shiftlock Both Shift keys together toggle ShiftLock
keypad:pointerkeys Shift + NumLock toggles PointerKeys
grab:break_actions Allow breaking grabs with keyboard actions (warning: security risk)
grab:debug Allow grab and window tree logging
currencysign Adding currency signs to certain keys
eurosign:e Euro on E
eurosign:2 Euro on 2
eurosign:4 Euro on 4
eurosign:5 Euro on 5
rupeesign:4 Rupee on 4
lv5 Key to choose 5th level
lv5:lsgt_switch_lock &lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser
lv5:ralt_switch_lock Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser
lv5:lwin_switch_lock Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser
lv5:rwin_switch_lock Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser
nbsp Using space key to input non-breakable space character
nbsp:none Usual space at any level
nbsp:level2 Non-breakable space character at second level
nbsp:level3 Non-breakable space character at third level
nbsp:level3s Non-breakable space character at third level, nothing at fourth level
nbsp:level3n Non-breakable space character at third level, thin non-breakable space character at fourth level
nbsp:level4 Non-breakable space character at fourth level
nbsp:level4n Non-breakable space character at fourth level, thin non-breakable space character at sixth level
nbsp:level4nl Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)
nbsp:zwnj2 Zero-width non-joiner character at second level
nbsp:zwnj2zwj3 Zero-width non-joiner character at second level, zero-width joiner character at third level
nbsp:zwnj2zwj3nb4 Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level
nbsp:zwnj2nb3 Zero-width non-joiner character at second level, non-breakable space character at third level
nbsp:zwnj2nb3s Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level
nbsp:zwnj2nb3zwj4 Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level
nbsp:zwnj2nb3nnb4 Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level
nbsp:zwnj3zwj4 Zero-width non-joiner character at third level, zero-width joiner at fourth level
japan Japanese keyboard options
japan:kana_lock Kana Lock key is locking
japan:nicola_f_bs NICOLA-F style Backspace
japan:hztg_escape Make Zenkaku Hankaku an additional ESC
esperanto Adding Esperanto supersigned letters
esperanto:qwerty To the corresponding key in a Qwerty layout
esperanto:dvorak To the corresponding key in a Dvorak layout
esperanto:colemak To the corresponding key in a Colemak layout
solaris Maintain key compatibility with old Solaris keycodes
solaris:sun_compat Sun Key compatibility
terminate Key sequence to kill the X server
terminate:ctrl_alt_bksp Ctrl + Alt + Backspace

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,887 @@
! model
pc101 Generic 101-key PC
pc102 Generic 102-key (Intl) PC
pc104 Generic 104-key PC
pc105 Generic 105-key (Intl) PC
dell101 Dell 101-key PC
latitude Dell Latitude series laptop
dellm65 Dell Precision M65
everex Everex STEPnote
flexpro Keytronic FlexPro
microsoft Microsoft Natural
omnikey101 Northgate OmniKey 101
winbook Winbook Model XP5
pc98 PC-98xx Series
a4techKB21 A4Tech KB-21
a4techKBS8 A4Tech KBS-8
a4_rfkb23 A4Tech Wireless Desktop RFKB-23
airkey Acer AirKey V
azonaRF2300 Azona RF2300 wireless Internet Keyboard
scorpius Advance Scorpius KI
brother Brother Internet Keyboard
btc5113rf BTC 5113RF Multimedia
btc5126t BTC 5126T
btc6301urf BTC 6301URF
btc9000 BTC 9000
btc9000a BTC 9000A
btc9001ah BTC 9001AH
btc5090 BTC 5090
btc9019u BTC 9019U
btc9116u BTC 9116U Mini Wireless Internet and Gaming
cherryblue Cherry Blue Line CyBo@rd
cherryblueb Cherry CyMotion Master XPress
cherrybluea Cherry Blue Line CyBo@rd (alternate option)
cherrycyboard Cherry CyBo@rd USB-Hub
cherrycmexpert Cherry CyMotion Expert
cherrybunlim Cherry B.UNLIMITED
chicony Chicony Internet Keyboard
chicony0108 Chicony KU-0108
chicony0420 Chicony KU-0420
chicony9885 Chicony KB-9885
compaqeak8 Compaq Easy Access Keyboard
compaqik7 Compaq Internet Keyboard (7 keys)
compaqik13 Compaq Internet Keyboard (13 keys)
compaqik18 Compaq Internet Keyboard (18 keys)
cymotionlinux Cherry CyMotion Master Linux
armada Laptop/notebook Compaq (eg. Armada) Laptop Keyboard
presario Laptop/notebook Compaq (eg. Presario) Internet Keyboard
ipaq Compaq iPaq Keyboard
dell Dell
dellsk8125 Dell SK-8125
dellsk8135 Dell SK-8135
dellusbmm Dell USB Multimedia Keyboard
inspiron Dell Laptop/notebook Inspiron 6xxx/8xxx
precision_m Dell Laptop/notebook Precision M series
dexxa Dexxa Wireless Desktop Keyboard
diamond Diamond 9801 / 9802 series
dtk2000 DTK2000
ennyah_dkb1008 Ennyah DKB-1008
fscaa1667g Fujitsu-Siemens Computers AMILO laptop
genius Genius Comfy KB-16M / Genius MM Keyboard KWD-910
geniuscomfy Genius Comfy KB-12e
geniuscomfy2 Genius Comfy KB-21e-Scroll
geniuskb19e Genius KB-19e NB
geniuskkb2050hs Genius KKB-2050HS
gyration Gyration
htcdream HTC Dream
kinesis Kinesis
logitech_base Logitech Generic Keyboard
logitech_g15 Logitech G15 extra keys via G15daemon
hpi6 Hewlett-Packard Internet Keyboard
hp250x Hewlett-Packard SK-250x Multimedia Keyboard
hpxe3gc Hewlett-Packard Omnibook XE3 GC
hpxe3gf Hewlett-Packard Omnibook XE3 GF
hpxt1000 Hewlett-Packard Omnibook XT1000
hpdv5 Hewlett-Packard Pavilion dv5
hpzt11xx Hewlett-Packard Pavilion ZT11xx
hp500fa Hewlett-Packard Omnibook 500 FA
hp5xx Hewlett-Packard Omnibook 5xx
hpnx9020 Hewlett-Packard nx9020
hp6000 Hewlett-Packard Omnibook 6000/6100
honeywell_euroboard Honeywell Euroboard
hpmini110 Hewlett-Packard Mini 110 Notebook
rapidaccess IBM Rapid Access
rapidaccess2 IBM Rapid Access II
thinkpad IBM ThinkPad 560Z/600/600E/A22E
thinkpad60 IBM ThinkPad R60/T60/R61/T61
thinkpadz60 IBM ThinkPad Z60m/Z60t/Z61m/Z61t
ibm_spacesaver IBM Space Saver
logiaccess Logitech Access Keyboard
logiclx300 Logitech Cordless Desktop LX-300
logii350 Logitech Internet 350 Keyboard
logimel Logitech Media Elite Keyboard
logicd Logitech Cordless Desktop
logicd_it Logitech Cordless Desktop iTouch
logicd_nav Logitech Cordless Desktop Navigator
logicd_opt Logitech Cordless Desktop Optical
logicda Logitech Cordless Desktop (alternate option)
logicdpa2 Logitech Cordless Desktop Pro (alternate option 2)
logicfn Logitech Cordless Freedom/Desktop Navigator
logicdn Logitech Cordless Desktop Navigator
logiitc Logitech iTouch Cordless Keyboard (model Y-RB6)
logiik Logitech Internet Keyboard
itouch Logitech iTouch
logicink Logitech Internet Navigator Keyboard
logiex110 Logitech Cordless Desktop EX110
logiinkse Logitech iTouch Internet Navigator Keyboard SE
logiinkseusb Logitech iTouch Internet Navigator Keyboard SE (USB)
logiultrax Logitech Ultra-X Keyboard
logiultraxc Logitech Ultra-X Cordless Media Desktop Keyboard
logidinovo Logitech diNovo Keyboard
logidinovoedge Logitech diNovo Edge Keyboard
mx1998 Memorex MX1998
mx2500 Memorex MX2500 EZ-Access Keyboard
mx2750 Memorex MX2750
microsoft4000 Microsoft Natural Wireless Ergonomic Keyboard 4000
microsoft7000 Microsoft Natural Wireless Ergonomic Keyboard 7000
microsoftinet Microsoft Internet Keyboard
microsoftpro Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro
microsoftprousb Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro
microsoftprooem Microsoft Natural Keyboard Pro OEM
vsonku306 ViewSonic KU-306 Internet Keyboard
microsoftprose Microsoft Internet Keyboard Pro, Swedish
microsoftoffice Microsoft Office Keyboard
microsoftmult Microsoft Wireless Multimedia Keyboard 1.0A
microsoftelite Microsoft Natural Keyboard Elite
microsoftccurve2k Microsoft Comfort Curve Keyboard 2000
oretec Ortek MCK-800 MM/Internet keyboard
propeller Propeller Voyager (KTEZ-1000)
qtronix QTronix Scorpius 98N+
samsung4500 Samsung SDM 4500P
samsung4510 Samsung SDM 4510P
sanwaskbkg3 Sanwa Supply SKB-KG3
sk1300 SK-1300
sk2500 SK-2500
sk6200 SK-6200
sk7100 SK-7100
sp_inet Super Power Multimedia Keyboard
sven SVEN Ergonomic 2500
sven303 SVEN Slim 303
symplon Symplon PaceBook (tablet PC)
toshiba_s3000 Toshiba Satellite S3000
trust Trust Wireless Keyboard Classic
trustda Trust Direct Access Keyboard
trust_slimline Trust Slimline
tm2020 TypeMatrix EZ-Reach 2020
tm2030PS2 TypeMatrix EZ-Reach 2030 PS2
tm2030USB TypeMatrix EZ-Reach 2030 USB
tm2030USB-102 TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)
tm2030USB-106 TypeMatrix EZ-Reach 2030 USB (106:JP mode)
yahoo Yahoo! Internet Keyboard
macbook78 MacBook/MacBook Pro
macbook79 MacBook/MacBook Pro (Intl)
macintosh Macintosh
macintosh_old Macintosh Old
macintosh_hhk Happy Hacking Keyboard for Mac
acer_c300 Acer C300
acer_ferrari4k Acer Ferrari 4000
acer_laptop Acer Laptop
asus_laptop Asus Laptop
apple Apple
apple_laptop Apple Laptop
applealu_ansi Apple Aluminium Keyboard (ANSI)
applealu_iso Apple Aluminium Keyboard (ISO)
applealu_jis Apple Aluminium Keyboard (JIS)
silvercrest SILVERCREST Multimedia Wireless Keyboard
emachines Laptop/notebook eMachines m68xx
benqx BenQ X-Touch
benqx730 BenQ X-Touch 730
benqx800 BenQ X-Touch 800
hhk Happy Hacking Keyboard
classmate Classmate PC
olpc OLPC
sun_type7_usb Sun Type 7 USB
sun_type7_euro_usb Sun Type 7 USB (European layout)
sun_type7_unix_usb Sun Type 7 USB (Unix layout)
sun_type7_jp_usb Sun Type 7 USB (Japanese layout) / Japanese 106-key
sun_type6_usb Sun Type 6/7 USB
sun_type6_euro_usb Sun Type 6/7 USB (European layout)
sun_type6_unix_usb Sun Type 6 USB (Unix layout)
sun_type6_jp_usb Sun Type 6 USB (Japanese layout)
sun_type6_jp Sun Type 6 (Japanese layout)
targa_v811 Targa Visionary 811
unitekkb1925 Unitek KB-1925
compalfl90 FL90
creativedw7000 Creative Desktop Wireless 7000
htcdream Htc Dream phone
! layout
us English (US)
af Afghani
ara Arabic
al Albanian
am Armenian
at German (Austria)
az Azerbaijani
by Belarusian
be Belgian
bd Bangla
in Indian
ba Bosnian
br Portuguese (Brazil)
bg Bulgarian
ma Arabic (Morocco)
cm English (Cameroon)
mm Burmese
ca French (Canada)
cd French (Democratic Republic of the Congo)
cn Chinese
hr Croatian
cz Czech
dk Danish
nl Dutch
bt Dzongkha
ee Estonian
ir Persian
iq Iraqi
fo Faroese
fi Finnish
fr French
gh English (Ghana)
gn French (Guinea)
ge Georgian
de German
gr Greek
hu Hungarian
is Icelandic
il Hebrew
it Italian
jp Japanese
kg Kyrgyz
kh Khmer (Cambodia)
kz Kazakh
la Lao
latam Spanish (Latin American)
lt Lithuanian
lv Latvian
mao Maori
me Montenegrin
mk Macedonian
mt Maltese
mn Mongolian
no Norwegian
pl Polish
pt Portuguese
ro Romanian
ru Russian
rs Serbian
si Slovenian
sk Slovak
es Spanish
se Swedish
ch German (Switzerland)
sy Arabic (Syria)
tj Tajik
lk Sinhala (phonetic)
th Thai
tr Turkish
tw Taiwanese
ua Ukrainian
gb English (UK)
uz Uzbek
vn Vietnamese
kr Korean
nec_vndr/jp Japanese (PC-98xx Series)
ie Irish
pk Urdu (Pakistan)
mv Dhivehi
za English (South Africa)
epo Esperanto
np Nepali
ng English (Nigeria)
et Amharic
sn Wolof
brai Braille
tm Turkmen
ml Bambara
tz Swahili (Tanzania)
ke Swahili (Kenya)
bw Tswana
ph Filipino
md Moldavian
! variant
chr us: Cherokee
euro us: English (US, with euro on 5)
intl us: English (US, international with dead keys)
alt-intl us: English (US, alternative international)
colemak us: English (Colemak)
dvorak us: English (Dvorak)
dvorak-intl us: English (Dvorak, international with dead keys)
dvorak-alt-intl us: English (Dvorak alternative international no dead keys)
dvorak-l us: English (left handed Dvorak)
dvorak-r us: English (right handed Dvorak)
dvorak-classic us: English (classic Dvorak)
dvp us: English (programmer Dvorak)
rus us: Russian (US, phonetic)
mac us: English (Macintosh)
altgr-intl us: English (international AltGr dead keys)
olpc2 us: English (the divide/multiply keys toggle the layout)
hbs us: Serbo-Croatian (US)
workman us: English (Workman)
workman-intl us: English (Workman, international with dead keys)
ps af: Pashto
uz af: Uzbek (Afghanistan)
olpc-ps af: Pashto (Afghanistan, OLPC)
fa-olpc af: Persian (Afghanistan, Dari OLPC)
uz-olpc af: Uzbek (Afghanistan, OLPC)
azerty ara: Arabic (azerty)
azerty_digits ara: Arabic (azerty/digits)
digits ara: Arabic (digits)
qwerty ara: Arabic (qwerty)
qwerty_digits ara: Arabic (qwerty/digits)
buckwalter ara: Arabic (Buckwalter)
plisi-d1 al: Albanian (Plisi D1)
phonetic am: Armenian (phonetic)
phonetic-alt am: Armenian (alternative phonetic)
eastern am: Armenian (eastern)
western am: Armenian (western)
eastern-alt am: Armenian (alternative eastern)
nodeadkeys at: German (Austria, eliminate dead keys)
sundeadkeys at: German (Austria, Sun dead keys)
mac at: German (Austria, Macintosh)
cyrillic az: Azerbaijani (Cyrillic)
legacy by: Belarusian (legacy)
latin by: Belarusian (Latin)
oss be: Belgian (alternative)
oss_latin9 be: Belgian (alternative, Latin-9 only)
oss_sundeadkeys be: Belgian (alternative, Sun dead keys)
iso-alternate be: Belgian (ISO alternate)
nodeadkeys be: Belgian (eliminate dead keys)
sundeadkeys be: Belgian (Sun dead keys)
wang be: Belgian (Wang model 724 azerty)
probhat bd: Bangla (Probhat)
ben in: Bangla (India)
ben_probhat in: Bangla (India, Probhat)
ben_baishakhi in: Bangla (India, Baishakhi)
ben_bornona in: Bangla (India, Bornona)
ben_gitanjali in: Bangla (India, Uni Gitanjali)
ben_inscript in: Bangla (India, Baishakhi Inscript)
eeyek in: Manipuri (Eeyek)
guj in: Gujarati
guru in: Punjabi (Gurmukhi)
jhelum in: Punjabi (Gurmukhi Jhelum)
kan in: Kannada
kan-kagapa in: Kannada (KaGaPa phonetic)
mal in: Malayalam
mal_lalitha in: Malayalam (Lalitha)
mal_enhanced in: Malayalam (enhanced Inscript, with rupee sign)
ori in: Oriya
tam_unicode in: Tamil (Unicode)
tam_keyboard_with_numerals in: Tamil (keyboard with numerals)
tam_TAB in: Tamil (TAB typewriter)
tam_TSCII in: Tamil (TSCII typewriter)
tam in: Tamil
tel in: Telugu
tel-kagapa in: Telugu (KaGaPa phonetic)
urd-phonetic in: Urdu (phonetic)
urd-phonetic3 in: Urdu (alternative phonetic)
urd-winkeys in: Urdu (WinKeys)
bolnagri in: Hindi (Bolnagri)
hin-wx in: Hindi (Wx)
hin-kagapa in: Hindi (KaGaPa phonetic)
san-kagapa in: Sanskrit (KaGaPa phonetic)
mar-kagapa in: Marathi (KaGaPa phonetic)
eng in: English (India, with rupee sign)
alternatequotes ba: Bosnian (with guillemets for quotes)
unicode ba: Bosnian (with Bosnian digraphs)
unicodeus ba: Bosnian (US keyboard with Bosnian digraphs)
us ba: Bosnian (US keyboard with Bosnian letters)
nodeadkeys br: Portuguese (Brazil, eliminate dead keys)
dvorak br: Portuguese (Brazil, Dvorak)
nativo br: Portuguese (Brazil, Nativo)
nativo-us br: Portuguese (Brazil, Nativo for US keyboards)
nativo-epo br: Esperanto (Brazil, Nativo)
phonetic bg: Bulgarian (traditional phonetic)
bas_phonetic bg: Bulgarian (new phonetic)
french ma: French (Morocco)
tifinagh ma: Berber (Morocco, Tifinagh)
tifinagh-alt ma: Berber (Morocco, Tifinagh alternative)
tifinagh-alt-phonetic ma: Berber (Morocco, Tifinagh alternative phonetic)
tifinagh-extended ma: Berber (Morocco, Tifinagh extended)
tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic)
tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic)
french cm: French (Cameroon)
qwerty cm: Cameroon Multilingual (qwerty)
azerty cm: Cameroon Multilingual (azerty)
dvorak cm: Cameroon Multilingual (Dvorak)
fr-dvorak ca: French (Canada, Dvorak)
fr-legacy ca: French (Canada, legacy)
multix ca: Canadian Multilingual
multi ca: Canadian Multilingual (first part)
multi-2gr ca: Canadian Multilingual (second part)
ike ca: Inuktitut
eng ca: English (Canada)
tib cn: Tibetan
tib_asciinum cn: Tibetan (with ASCII numerals)
ug cn: Uyghur
alternatequotes hr: Croatian (with guillemets for quotes)
unicode hr: Croatian (with Croatian digraphs)
unicodeus hr: Croatian (US keyboard with Croatian digraphs)
us hr: Croatian (US keyboard with Croatian letters)
bksl cz: Czech (with &lt;\|&gt; key)
qwerty cz: Czech (qwerty)
qwerty_bksl cz: Czech (qwerty, extended Backslash)
ucw cz: Czech (UCW layout, accented letters only)
dvorak-ucw cz: Czech (US Dvorak with CZ UCW support)
nodeadkeys dk: Danish (eliminate dead keys)
winkeys dk: Danish (Winkeys)
mac dk: Danish (Macintosh)
mac_nodeadkeys dk: Danish (Macintosh, eliminate dead keys)
dvorak dk: Danish (Dvorak)
sundeadkeys nl: Dutch (Sun dead keys)
mac nl: Dutch (Macintosh)
std nl: Dutch (standard)
nodeadkeys ee: Estonian (eliminate dead keys)
dvorak ee: Estonian (Dvorak)
us ee: Estonian (US keyboard with Estonian letters)
pes_keypad ir: Persian (with Persian keypad)
ku ir: Kurdish (Iran, Latin Q)
ku_f ir: Kurdish (Iran, F)
ku_alt ir: Kurdish (Iran, Latin Alt-Q)
ku_ara ir: Kurdish (Iran, Arabic-Latin)
ku iq: Kurdish (Iraq, Latin Q)
ku_f iq: Kurdish (Iraq, F)
ku_alt iq: Kurdish (Iraq, Latin Alt-Q)
ku_ara iq: Kurdish (Iraq, Arabic-Latin)
nodeadkeys fo: Faroese (eliminate dead keys)
classic fi: Finnish (classic)
nodeadkeys fi: Finnish (classic, eliminate dead keys)
winkeys fi: Finnish (Winkeys)
smi fi: Northern Saami (Finland)
mac fi: Finnish (Macintosh)
nodeadkeys fr: French (eliminate dead keys)
sundeadkeys fr: French (Sun dead keys)
oss fr: French (alternative)
oss_latin9 fr: French (alternative, Latin-9 only)
oss_nodeadkeys fr: French (alternative, eliminate dead keys)
oss_sundeadkeys fr: French (alternative, Sun dead keys)
latin9 fr: French (legacy, alternative)
latin9_nodeadkeys fr: French (legacy, alternative, eliminate dead keys)
latin9_sundeadkeys fr: French (legacy, alternative, Sun dead keys)
bepo fr: French (Bepo, ergonomic, Dvorak way)
bepo_latin9 fr: French (Bepo, ergonomic, Dvorak way, Latin-9 only)
dvorak fr: French (Dvorak)
mac fr: French (Macintosh)
bre fr: French (Breton)
oci fr: Occitan
geo fr: Georgian (France, AZERTY Tskapo)
generic gh: English (Ghana, multilingual)
akan gh: Akan
ewe gh: Ewe
fula gh: Fula
ga gh: Ga
hausa gh: Hausa
avn gh: Avatime
gillbt gh: English (Ghana, GILLBT)
ergonomic ge: Georgian (ergonomic)
mess ge: Georgian (MESS)
ru ge: Russian (Georgia)
os ge: Ossetian (Georgia)
deadacute de: German (dead acute)
deadgraveacute de: German (dead grave acute)
nodeadkeys de: German (eliminate dead keys)
T3 de: German (T3)
ro de: Romanian (Germany)
ro_nodeadkeys de: Romanian (Germany, eliminate dead keys)
dvorak de: German (Dvorak)
sundeadkeys de: German (Sun dead keys)
neo de: German (Neo 2)
mac de: German (Macintosh)
mac_nodeadkeys de: German (Macintosh, eliminate dead keys)
dsb de: Lower Sorbian
dsb_qwertz de: Lower Sorbian (qwertz)
qwerty de: German (qwerty)
tr de: Turkish (Germany)
ru de: Russian (Germany, phonetic)
legacy de: German (legacy)
simple gr: Greek (simple)
extended gr: Greek (extended)
nodeadkeys gr: Greek (eliminate dead keys)
polytonic gr: Greek (polytonic)
standard hu: Hungarian (standard)
nodeadkeys hu: Hungarian (eliminate dead keys)
qwerty hu: Hungarian (qwerty)
101_qwertz_comma_dead hu: Hungarian (101/qwertz/comma/dead keys)
101_qwertz_comma_nodead hu: Hungarian (101/qwertz/comma/eliminate dead keys)
101_qwertz_dot_dead hu: Hungarian (101/qwertz/dot/dead keys)
101_qwertz_dot_nodead hu: Hungarian (101/qwertz/dot/eliminate dead keys)
101_qwerty_comma_dead hu: Hungarian (101/qwerty/comma/dead keys)
101_qwerty_comma_nodead hu: Hungarian (101/qwerty/comma/eliminate dead keys)
101_qwerty_dot_dead hu: Hungarian (101/qwerty/dot/dead keys)
101_qwerty_dot_nodead hu: Hungarian (101/qwerty/dot/eliminate dead keys)
102_qwertz_comma_dead hu: Hungarian (102/qwertz/comma/dead keys)
102_qwertz_comma_nodead hu: Hungarian (102/qwertz/comma/eliminate dead keys)
102_qwertz_dot_dead hu: Hungarian (102/qwertz/dot/dead keys)
102_qwertz_dot_nodead hu: Hungarian (102/qwertz/dot/eliminate dead keys)
102_qwerty_comma_dead hu: Hungarian (102/qwerty/comma/dead keys)
102_qwerty_comma_nodead hu: Hungarian (102/qwerty/comma/eliminate dead keys)
102_qwerty_dot_dead hu: Hungarian (102/qwerty/dot/dead keys)
102_qwerty_dot_nodead hu: Hungarian (102/qwerty/dot/eliminate dead keys)
Sundeadkeys is: Icelandic (Sun dead keys)
nodeadkeys is: Icelandic (eliminate dead keys)
mac is: Icelandic (Macintosh)
dvorak is: Icelandic (Dvorak)
lyx il: Hebrew (lyx)
phonetic il: Hebrew (phonetic)
biblical il: Hebrew (Biblical, Tiro)
nodeadkeys it: Italian (eliminate dead keys)
winkeys it: Italian (Winkeys)
mac it: Italian (Macintosh)
us it: Italian (US keyboard with Italian letters)
geo it: Georgian (Italy)
ibm it: Italian (IBM 142)
kana jp: Japanese (Kana)
kana86 jp: Japanese (Kana 86)
OADG109A jp: Japanese (OADG 109A)
mac jp: Japanese (Macintosh)
dvorak jp: Japanese (Dvorak)
phonetic kg: Kyrgyz (phonetic)
ruskaz kz: Russian (Kazakhstan, with Kazakh)
kazrus kz: Kazakh (with Russian)
stea la: Lao (STEA proposed standard layout)
nodeadkeys latam: Spanish (Latin American, eliminate dead keys)
deadtilde latam: Spanish (Latin American, include dead tilde)
sundeadkeys latam: Spanish (Latin American, Sun dead keys)
std lt: Lithuanian (standard)
us lt: Lithuanian (US keyboard with Lithuanian letters)
ibm lt: Lithuanian (IBM LST 1205-92)
lekp lt: Lithuanian (LEKP)
lekpa lt: Lithuanian (LEKPa)
apostrophe lv: Latvian (apostrophe variant)
tilde lv: Latvian (tilde variant)
fkey lv: Latvian (F variant)
modern lv: Latvian (modern)
ergonomic lv: Latvian (ergonomic, ŪGJRMV)
adapted lv: Latvian (adapted)
cyrillic me: Montenegrin (Cyrillic)
cyrillicyz me: Montenegrin (Cyrillic, ZE and ZHE swapped)
latinunicode me: Montenegrin (Latin Unicode)
latinyz me: Montenegrin (Latin qwerty)
latinunicodeyz me: Montenegrin (Latin Unicode qwerty)
cyrillicalternatequotes me: Montenegrin (Cyrillic with guillemets)
latinalternatequotes me: Montenegrin (Latin with guillemets)
nodeadkeys mk: Macedonian (eliminate dead keys)
us mt: Maltese (with US layout)
nodeadkeys no: Norwegian (eliminate dead keys)
winkeys no: Norwegian (Winkeys)
dvorak no: Norwegian (Dvorak)
smi no: Northern Saami (Norway)
smi_nodeadkeys no: Northern Saami (Norway, eliminate dead keys)
mac no: Norwegian (Macintosh)
mac_nodeadkeys no: Norwegian (Macintosh, eliminate dead keys)
colemak no: Norwegian (Colemak)
legacy pl: Polish (legacy)
qwertz pl: Polish (qwertz)
dvorak pl: Polish (Dvorak)
dvorak_quotes pl: Polish (Dvorak, Polish quotes on quotemark key)
dvorak_altquotes pl: Polish (Dvorak, Polish quotes on key 1)
csb pl: Kashubian
szl pl: Silesian
ru_phonetic_dvorak pl: Russian (Poland, phonetic Dvorak)
dvp pl: Polish (programmer Dvorak)
nodeadkeys pt: Portuguese (eliminate dead keys)
sundeadkeys pt: Portuguese (Sun dead keys)
mac pt: Portuguese (Macintosh)
mac_nodeadkeys pt: Portuguese (Macintosh, eliminate dead keys)
mac_sundeadkeys pt: Portuguese (Macintosh, Sun dead keys)
nativo pt: Portuguese (Nativo)
nativo-us pt: Portuguese (Nativo for US keyboards)
nativo-epo pt: Esperanto (Portugal, Nativo)
cedilla ro: Romanian (cedilla)
std ro: Romanian (standard)
std_cedilla ro: Romanian (standard cedilla)
winkeys ro: Romanian (WinKeys)
phonetic ru: Russian (phonetic)
phonetic_winkeys ru: Russian (phonetic WinKeys)
typewriter ru: Russian (typewriter)
legacy ru: Russian (legacy)
typewriter-legacy ru: Russian (typewriter, legacy)
tt ru: Tatar
os_legacy ru: Ossetian (legacy)
os_winkeys ru: Ossetian (WinKeys)
cv ru: Chuvash
cv_latin ru: Chuvash (Latin)
udm ru: Udmurt
kom ru: Komi
sah ru: Yakut
xal ru: Kalmyk
dos ru: Russian (DOS)
mac ru: Russian (Macintosh)
srp ru: Serbian (Russia)
bak ru: Bashkirian
chm ru: Mari
yz rs: Serbian (Cyrillic, ZE and ZHE swapped)
latin rs: Serbian (Latin)
latinunicode rs: Serbian (Latin Unicode)
latinyz rs: Serbian (Latin qwerty)
latinunicodeyz rs: Serbian (Latin Unicode qwerty)
alternatequotes rs: Serbian (Cyrillic with guillemets)
latinalternatequotes rs: Serbian (Latin with guillemets)
rue rs: Pannonian Rusyn
alternatequotes si: Slovenian (with guillemets for quotes)
us si: Slovenian (US keyboard with Slovenian letters)
bksl sk: Slovak (extended Backslash)
qwerty sk: Slovak (qwerty)
qwerty_bksl sk: Slovak (qwerty, extended Backslash)
nodeadkeys es: Spanish (eliminate dead keys)
winkeys es: Spanish (Winkeys)
deadtilde es: Spanish (include dead tilde)
sundeadkeys es: Spanish (Sun dead keys)
dvorak es: Spanish (Dvorak)
ast es: Asturian (Spain, with bottom-dot H and bottom-dot L)
cat es: Catalan (Spain, with middle-dot L)
mac es: Spanish (Macintosh)
nodeadkeys se: Swedish (eliminate dead keys)
dvorak se: Swedish (Dvorak)
rus se: Russian (Sweden, phonetic)
rus_nodeadkeys se: Russian (Sweden, phonetic, eliminate dead keys)
smi se: Northern Saami (Sweden)
mac se: Swedish (Macintosh)
svdvorak se: Swedish (Svdvorak)
swl se: Swedish Sign Language
legacy ch: German (Switzerland, legacy)
de_nodeadkeys ch: German (Switzerland, eliminate dead keys)
de_sundeadkeys ch: German (Switzerland, Sun dead keys)
fr ch: French (Switzerland)
fr_nodeadkeys ch: French (Switzerland, eliminate dead keys)
fr_sundeadkeys ch: French (Switzerland, Sun dead keys)
fr_mac ch: French (Switzerland, Macintosh)
de_mac ch: German (Switzerland, Macintosh)
syc sy: Syriac
syc_phonetic sy: Syriac (phonetic)
ku sy: Kurdish (Syria, Latin Q)
ku_f sy: Kurdish (Syria, F)
ku_alt sy: Kurdish (Syria, Latin Alt-Q)
legacy tj: Tajik (legacy)
tam_unicode lk: Tamil (Sri Lanka, Unicode)
tam_TAB lk: Tamil (Sri Lanka, TAB Typewriter)
tis th: Thai (TIS-820.2538)
pat th: Thai (Pattachote)
f tr: Turkish (F)
alt tr: Turkish (Alt-Q)
sundeadkeys tr: Turkish (Sun dead keys)
ku tr: Kurdish (Turkey, Latin Q)
ku_f tr: Kurdish (Turkey, F)
ku_alt tr: Kurdish (Turkey, Latin Alt-Q)
intl tr: Turkish (international with dead keys)
crh tr: Crimean Tatar (Turkish Q)
crh_f tr: Crimean Tatar (Turkish F)
crh_alt tr: Crimean Tatar (Turkish Alt-Q)
indigenous tw: Taiwanese (indigenous)
saisiyat tw: Saisiyat (Taiwan)
phonetic ua: Ukrainian (phonetic)
typewriter ua: Ukrainian (typewriter)
winkeys ua: Ukrainian (WinKeys)
legacy ua: Ukrainian (legacy)
rstu ua: Ukrainian (standard RSTU)
rstu_ru ua: Russian (Ukraine, standard RSTU)
homophonic ua: Ukrainian (homophonic)
extd gb: English (UK, extended WinKeys)
intl gb: English (UK, international with dead keys)
dvorak gb: English (UK, Dvorak)
dvorakukp gb: English (UK, Dvorak with UK punctuation)
mac gb: English (UK, Macintosh)
mac_intl gb: English (UK, Macintosh international)
colemak gb: English (UK, Colemak)
latin uz: Uzbek (Latin)
kr104 kr: Korean (101/104 key compatible)
CloGaelach ie: CloGaelach
UnicodeExpert ie: Irish (UnicodeExpert)
ogam ie: Ogham
ogam_is434 ie: Ogham (IS434)
urd-crulp pk: Urdu (Pakistan, CRULP)
urd-nla pk: Urdu (Pakistan, NLA)
ara pk: Arabic (Pakistan)
snd pk: Sindhi
legacy epo: Esperanto (displaced semicolon and quote, obsolete)
igbo ng: Igbo
yoruba ng: Yoruba
hausa ng: Hausa
left_hand brai: Braille (left hand)
right_hand brai: Braille (right hand)
alt tm: Turkmen (Alt-Q)
fr-oss ml: French (Mali, alternative)
us-mac ml: English (Mali, US Macintosh)
us-intl ml: English (Mali, US international)
kik ke: Kikuyu
qwerty-bay ph: Filipino (QWERTY Baybayin)
capewell-dvorak ph: Filipino (Capewell-Dvorak Latin)
capewell-dvorak-bay ph: Filipino (Capewell-Dvorak Baybayin)
capewell-qwerf2k6 ph: Filipino (Capewell-QWERF 2006 Latin)
capewell-qwerf2k6-bay ph: Filipino (Capewell-QWERF 2006 Baybayin)
colemak ph: Filipino (Colemak Latin)
colemak-bay ph: Filipino (Colemak Baybayin)
dvorak ph: Filipino (Dvorak Latin)
dvorak-bay ph: Filipino (Dvorak Baybayin)
gag md: Moldavian (Gagauz)
! option
grp Switching to another layout
grp:switch Right Alt (while pressed)
grp:lswitch Left Alt (while pressed)
grp:lwin_switch Left Win (while pressed)
grp:rwin_switch Right Win (while pressed)
grp:win_switch Any Win key (while pressed)
grp:caps_switch Caps Lock (while pressed), Alt+Caps Lock does the original capslock action
grp:rctrl_switch Right Ctrl (while pressed)
grp:toggle Right Alt
grp:lalt_toggle Left Alt
grp:caps_toggle Caps Lock
grp:shift_caps_toggle Shift+Caps Lock
grp:shift_caps_switch Caps Lock (to first layout), Shift+Caps Lock (to last layout)
grp:win_menu_switch Left Win (to first layout), Right Win/Menu (to last layout)
grp:lctrl_rctrl_switch Left Ctrl (to first layout), Right Ctrl (to last layout)
grp:alt_caps_toggle Alt+Caps Lock
grp:shifts_toggle Both Shift keys together
grp:alts_toggle Both Alt keys together
grp:ctrls_toggle Both Ctrl keys together
grp:ctrl_shift_toggle Ctrl+Shift
grp:lctrl_lshift_toggle Left Ctrl+Left Shift
grp:rctrl_rshift_toggle Right Ctrl+Right Shift
grp:ctrl_alt_toggle Alt+Ctrl
grp:alt_shift_toggle Alt+Shift
grp:lalt_lshift_toggle Left Alt+Left Shift
grp:alt_space_toggle Alt+Space
grp:menu_toggle Menu
grp:lwin_toggle Left Win
grp:win_space_toggle Win Key+Space
grp:rwin_toggle Right Win
grp:lshift_toggle Left Shift
grp:rshift_toggle Right Shift
grp:lctrl_toggle Left Ctrl
grp:rctrl_toggle Right Ctrl
grp:sclk_toggle Scroll Lock
grp:lctrl_lwin_rctrl_menu LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)
lv3 Key to choose 3rd level
lv3:switch Right Ctrl
lv3:menu_switch Menu
lv3:win_switch Any Win key
lv3:lwin_switch Left Win
lv3:rwin_switch Right Win
lv3:alt_switch Any Alt key
lv3:lalt_switch Left Alt
lv3:ralt_switch Right Alt
lv3:ralt_switch_multikey Right Alt, Shift+Right Alt key is Compose
lv3:ralt_alt Right Alt key never chooses 3rd level
lv3:enter_switch Enter on keypad
lv3:caps_switch Caps Lock
lv3:bksl_switch Backslash
lv3:lsgt_switch &lt;Less/Greater&gt;
lv3:caps_switch_latch Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
lv3:bksl_switch_latch Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
lv3:lsgt_switch_latch &lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
ctrl Ctrl key position
ctrl:nocaps Caps Lock as Ctrl
ctrl:lctrl_meta Left Ctrl as Meta
ctrl:swapcaps Swap Ctrl and Caps Lock
ctrl:ac_ctrl At left of 'A'
ctrl:aa_ctrl At bottom left
ctrl:rctrl_ralt Right Ctrl as Right Alt
ctrl:menu_rctrl Menu as Right Ctrl
ctrl:ctrl_ralt Right Alt as Right Ctrl
ctrl:swap_lalt_lctl Swap Left Alt key with Left Ctrl key
ctrl:swap_lwin_lctl Swap Left Win key with Left Ctrl key
ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt
grp_led Use keyboard LED to show alternative layout
grp_led:num Num Lock
grp_led:caps Caps Lock
grp_led:scroll Scroll Lock
keypad Layout of numeric keypad
keypad:legacy Legacy
keypad:oss Unicode additions (arrows and math operators)
keypad:future Unicode additions (arrows and math operators; math operators on default level)
keypad:legacy_wang Legacy Wang 724
keypad:oss_wang Wang 724 keypad with Unicode additions (arrows and math operators)
keypad:future_wang Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)
keypad:hex Hexadecimal
keypad:atm ATM/phone-style
kpdl Numeric keypad delete key behaviour
kpdl:dot Legacy key with dot
kpdl:comma Legacy key with comma
kpdl:dotoss Four-level key with dot
kpdl:dotoss_latin9 Four-level key with dot, Latin-9 only
kpdl:commaoss Four-level key with comma
kpdl:momayyezoss Four-level key with momayyez
kpdl:kposs Four-level key with abstract separators
kpdl:semi Semicolon on third level
caps Caps Lock key behavior
caps:internal Caps Lock uses internal capitalization; Shift "pauses" Caps Lock
caps:internal_nocancel Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock
caps:shift Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock
caps:shift_nocancel Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock
caps:capslock Caps Lock toggles normal capitalization of alphabetic characters
caps:numlock Make Caps Lock an additional Num Lock
caps:swapescape Swap ESC and Caps Lock
caps:escape Make Caps Lock an additional ESC
caps:backspace Make Caps Lock an additional Backspace
caps:super Make Caps Lock an additional Super
caps:hyper Make Caps Lock an additional Hyper
caps:shiftlock Caps Lock toggles ShiftLock (affects all keys)
caps:none Caps Lock is disabled
caps:ctrl_modifier Make Caps Lock an additional Ctrl
altwin Alt/Win key behavior
altwin:menu Add the standard behavior to Menu key
altwin:meta_alt Alt and Meta are on Alt keys
altwin:alt_win Alt is mapped to Win keys (and the usual Alt keys)
altwin:ctrl_win Ctrl is mapped to Win keys (and the usual Ctrl keys)
altwin:ctrl_alt_win Ctrl is mapped to Alt keys, Alt is mapped to Win keys
altwin:meta_win Meta is mapped to Win keys
altwin:left_meta_win Meta is mapped to Left Win
altwin:hyper_win Hyper is mapped to Win keys
altwin:alt_super_win Alt is mapped to Right Win, Super to Menu
altwin:swap_alt_win Alt is swapped with Win
Compose key Position of Compose key
compose:ralt Right Alt
compose:lwin Left Win
compose:lwin-altgr 3rd level of Left Win
compose:rwin Right Win
compose:rwin-altgr 3rd level of Right Win
compose:menu Menu
compose:menu-altgr 3rd level of Menu
compose:lctrl Left Ctrl
compose:lctrl-altgr 3rd level of Left Ctrl
compose:rctrl Right Ctrl
compose:rctrl-altgr 3rd level of Right Ctrl
compose:caps Caps Lock
compose:caps-altgr 3rd level of Caps Lock
compose:102 &lt;Less/Greater&gt;
compose:102-altgr 3rd level of &lt;Less/Greater&gt;
compose:paus Pause
compose:prsc PrtSc
compose:sclk Scroll Lock
compat Miscellaneous compatibility options
numpad:pc Default numeric keypad keys
numpad:mac Numeric keypad keys always enter digits (as in Mac OS)
numpad:microsoft Shift with numeric keypad keys works as in MS Windows
numpad:shift3 Shift does not cancel Num Lock, chooses 3rd level instead
srvrkeys:none Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server
apple:alupckeys Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)
shift:breaks_caps Shift cancels Caps Lock
misc:typo Enable extra typographic characters
shift:both_capslock Both Shift keys together toggle Caps Lock
shift:both_capslock_cancel Both Shift keys together activate Caps Lock, one Shift key deactivates
shift:both_shiftlock Both Shift keys together toggle ShiftLock
keypad:pointerkeys Shift + NumLock toggles PointerKeys
grab:break_actions Allow breaking grabs with keyboard actions (warning: security risk)
grab:debug Allow grab and window tree logging
currencysign Adding currency signs to certain keys
eurosign:e Euro on E
eurosign:2 Euro on 2
eurosign:4 Euro on 4
eurosign:5 Euro on 5
rupeesign:4 Rupee on 4
lv5 Key to choose 5th level
lv5:lsgt_switch_lock &lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser
lv5:ralt_switch_lock Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser
lv5:lwin_switch_lock Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser
lv5:rwin_switch_lock Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser
nbsp Using space key to input non-breakable space character
nbsp:none Usual space at any level
nbsp:level2 Non-breakable space character at second level
nbsp:level3 Non-breakable space character at third level
nbsp:level3s Non-breakable space character at third level, nothing at fourth level
nbsp:level3n Non-breakable space character at third level, thin non-breakable space character at fourth level
nbsp:level4 Non-breakable space character at fourth level
nbsp:level4n Non-breakable space character at fourth level, thin non-breakable space character at sixth level
nbsp:level4nl Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)
nbsp:zwnj2 Zero-width non-joiner character at second level
nbsp:zwnj2zwj3 Zero-width non-joiner character at second level, zero-width joiner character at third level
nbsp:zwnj2zwj3nb4 Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level
nbsp:zwnj2nb3 Zero-width non-joiner character at second level, non-breakable space character at third level
nbsp:zwnj2nb3s Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level
nbsp:zwnj2nb3zwj4 Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level
nbsp:zwnj2nb3nnb4 Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level
nbsp:zwnj3zwj4 Zero-width non-joiner character at third level, zero-width joiner at fourth level
japan Japanese keyboard options
japan:kana_lock Kana Lock key is locking
japan:nicola_f_bs NICOLA-F style Backspace
japan:hztg_escape Make Zenkaku Hankaku an additional ESC
esperanto Adding Esperanto supersigned letters
esperanto:qwerty To the corresponding key in a Qwerty layout
esperanto:dvorak To the corresponding key in a Dvorak layout
esperanto:colemak To the corresponding key in a Colemak layout
solaris Maintain key compatibility with old Solaris keycodes
solaris:sun_compat Sun Key compatibility
terminate Key sequence to kill the X server
terminate:ctrl_alt_bksp Ctrl + Alt + Backspace

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,105 @@
// based on
// albanian keyboard layout
// done by Pablo Saratxaga <pablo@mandrakesoft.com>
//
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type3)"
name[Group1]="Albanian";
key <AE01> { [ 1, exclam, asciitilde, dead_tilde ] };
key <AE02> { [ 2, quotedbl, dead_caron, oneeighth ] };
key <AE03> { [ 3, numbersign, dead_circumflex, sterling ] };
key <AE04> { [ 4, dollar, dead_breve, dollar ] };
key <AE05> { [ 5, percent, dead_abovering, threeeighths] };
key <AE06> { [ 6, asciicircum, dead_ogonek, fiveeighths ] };
key <AE07> { [ 7, ampersand, grave, dead_grave ] };
key <AE08> { [ 8, asterisk, dead_abovedot, trademark ] };
key <AE09> { [ 9, parenleft, dead_acute, plusminus ] };
key <AE10> { [ 0, parenright, dead_doubleacute, degree ] };
key <AE11> { [ minus, underscore, dead_diaeresis, questiondown] };
key <AD03> { [ e, E, EuroSign, EuroSign ] };
key <AD11> { [ ccedilla, Ccedilla, division, dead_abovering ] };
key <AD12> { [ at, apostrophe, multiply, dead_macron ] };
key <AC02> { [ s, S, dstroke, section ] };
key <AC03> { [ d, D, Dstroke, ETH ] };
key <AC10> { [ediaeresis, Ediaeresis, dollar, dead_doubleacute ] };
key <AC11> { [bracketleft, braceleft, ssharp, dead_caron ] };
key <TLDE> { [ backslash, bar, notsign, notsign ] };
key <BKSL> { [bracketright, braceright, currency, dead_breve ] };
key <AB08> { [ comma, semicolon, less, multiply ] };
key <AB09> { [ period, colon, greater, division ] };
key <AB10> { [ slash, question, dead_belowdot, dead_abovedot ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "plisi-d1" {
include "us"
name[Group1]= "Albanian (Plisi D1)";
key <TLDE> { [ grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, dollar, EuroSign ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, asciicircum ] };
key <AE07> { [ 7, ampersand, braceleft ] };
key <AE08> { [ 8, asterisk, braceright ] };
key <AE09> { [ 9, parenleft, bracketleft ] };
key <AE10> { [ 0, parenright, bracketright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ e, E ] };
key <AD04> { [ r, R ] };
key <AD05> { [ t, T ] };
key <AD06> { [ y, Y ] };
key <AD07> { [ u, U ] };
key <AD08> { [ i, I ] };
key <AD09> { [ o, O ] };
key <AD10> { [ p, P ] };
key <AD11> { [ ccedilla, Ccedilla ] };
key <AD12> { [ greater, less ] };
key <AC01> { [ a, A ] };
key <AC02> { [ s, S ] };
key <AC03> { [ d, D ] };
key <AC04> { [ f, F ] };
key <AC05> { [ g, G ] };
key <AC06> { [ h, H ] };
key <AC07> { [ j, J ] };
key <AC08> { [ k, K ] };
key <AC09> { [ l, L ] };
key <AC10> { [ ediaeresis, Ediaeresis ] };
key <AC11> { [ apostrophe, quotedbl ] };
key <AB01> { [ z, Z ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C ] };
key <AB04> { [ v, V ] };
key <AB05> { [ b, B ] };
key <AB06> { [ n, N ] };
key <AB07> { [ m, M ] };
key <AB08> { [ comma, semicolon ] };
key <AB09> { [ period, colon ] };
key <AB10> { [ slash, question ] };
key <BKSL> { [ backslash, bar ] };
include "level3(ralt_switch)"
};

View File

@ -0,0 +1,34 @@
// based on a keyboard map from an 'xkb/symbols/de' file
default
xkb_symbols "basic" {
include "de(basic)"
name[Group1]="German (Austria)";
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "de(nodeadkeys)"
name[Group1]="German (Austria, eliminate dead keys)";
};
partial alphanumeric_keys
xkb_symbols "mac" {
include "de(mac)"
name[Group1]= "German (Austria, Macintosh)";
};
partial alphanumeric_keys
xkb_symbols "sundeadkeys" {
include "de(Sundeadkeys)"
name[Group1]="German (Austria, Sun dead keys)";
};

View File

@ -0,0 +1,34 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
include "rs(latin)"
name[Group1]="Bosnian";
};
partial alphanumeric_keys
xkb_symbols "us" {
include "rs(latinyz)"
name[Group1]= "Bosnian (US keyboard with Bosnian letters)";
};
partial alphanumeric_keys
xkb_symbols "alternatequotes" {
include "rs(latinalternatequotes)"
name[Group1]= "Bosnian (with guillemets for quotes)";
};
partial alphanumeric_keys
xkb_symbols "unicode" {
include "rs(latinunicode)"
name[Group1]= "Bosnian (with Bosnian digraphs)";
};
partial alphanumeric_keys
xkb_symbols "unicodeus" {
include "rs(latinunicodeyz)"
name[Group1]= "Bosnian (US keyboard with Bosnian digraphs)";
};

View File

@ -0,0 +1,239 @@
// based on a keyboard map from an 'xkb/symbols/be' file
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin"
name[Group1]="Belgian";
key <AE01> { [ ampersand, 1, bar, exclamdown ] };
key <AE02> { [ eacute, 2, at, oneeighth ] };
key <AE03> { [ quotedbl, 3, numbersign, sterling ] };
key <AE04> { [apostrophe, 4, onequarter, dollar ] };
key <AE05> { [ parenleft, 5, onehalf, threeeighths ] };
key <AE06> { [ section, 6, asciicircum, fiveeighths ] };
key <AE07> { [ egrave, 7, braceleft, seveneighths ] };
key <AE08> { [ exclam, 8, bracketleft, trademark ] };
key <AE09> { [ ccedilla, 9, braceleft, plusminus ] };
key <AE10> { [ agrave, 0, braceright, degree ] };
key <AE11> { [parenright, degree, backslash, questiondown ] };
key <AE12> { [ minus, underscore, dead_cedilla, dead_ogonek ] };
key <AD01> { [ a, A, at, Greek_OMEGA ] };
key <AD02> { [ z, Z, lstroke, Lstroke ] };
key <AD03> { [ e, E, EuroSign, cent ] };
key <AD09> { [ o, O, oe, OE ] }; // o O œ Œ
key <AD11> { [dead_circumflex, dead_diaeresis, bracketleft, dead_abovering ] };
key <AD12> { [ dollar, asterisk, bracketright, dead_macron ] };
key <AC01> { [ q, Q, ae, AE ] };
key <AC10> { [ m, M, dead_acute, dead_doubleacute ] };
key <AC11> { [ ugrave, percent, dead_acute, dead_caron ] };
key <TLDE> { [twosuperior, threesuperior, notsign, notsign ] };
key <BKSL> { [ mu, sterling, dead_grave, dead_breve ] };
key <AB01> { [ w, W, guillemotleft, less ] };
key <AB07> { [ comma, question, dead_cedilla, masculine ] };
key <AB08> { [ semicolon, period, horizconnector, multiply ] };
key <AB09> { [ colon, slash, periodcentered, division ] };
key <AB10> { [ equal, plus, dead_tilde, dead_abovedot] };
key <LSGT> { [ less, greater, backslash, backslash ] };
include "level3(ralt_switch)"
};
// Variant of the fr(oss) layout for Belgium
// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ³ ≤ │ 1 ≥ │ 2 É │ 3 ˘ │ 4 — │ 5 │ 6 ™ │ 7 È │ 8 ¡ │ 9 Ç │ 0 À │ ° Ø │ _ ± ┃ ⌫ Retour┃
// │ ² ¹ │ & | │ é @ │ " # │ ' ¸ │ ( ˇ │ § ^ │ è ` │ ! ~ │ ç { │ à } │ ) ø │ - ┃ arrière┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃ ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ * ̨ ┃Entrée ┃
// ┃Tab ↹ ┃ a æ │ z â │ e € │ r ê │ t þ │ y ÿ │ u û │ i î │ o œ │ p ô │ ^ [ │ $ ] ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ Q Ä │ S „ │ D Ë │ F │ G ¥ │ H Ð │ J Ü │ K Ï │ L │ M Ö │ % Ù │ £ ̄ ┃ ┃
// ┃Maj ⇬ ┃ q ä │ s ß │ d ë │ f │ g │ h ð │ j ü │ k ï │ l / │ m ö │ ù ' │ µ ` ┃ ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ ┃ > ≠ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / │ + ┃ ┃
// ┃Shift ⇧┃ < \ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ = ~ ┃Shift ⇧ ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃ ┃ ┃ ┃ ␣ Espace insécable ⍽ ┃ ┃ ┃ ┃
// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace ␣ ┃AltGr ⇮┃Menu ┃Ctrl ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
partial alphanumeric_keys
xkb_symbols "oss" {
include "fr(oss)"
include "be(oss_frbe)"
name[Group1]="Belgian (alternative)";
};
partial alphanumeric_keys
xkb_symbols "oss_frbe" {
// First row
key <TLDE> { [ twosuperior, threesuperior, onesuperior, lessthanequal ] }; // ² ³ ¹ ≤
key <AE01> { [ ampersand, 1, bar, greaterthanequal ] }; // & 1 | ≥
key <AE02> { [ eacute, 2, at, Eacute ] }; // é 2 @ É
key <AE04> { [ apostrophe, 4, dead_cedilla, 0x1002014 ] }; // ' 4 ¸ — (tiret cadratin)
key <AE05> { [ parenleft, 5, dead_caron, 0x1002013 ] }; // ( 5 ˇ (tiret demi-cadratin)
key <AE06> { [ section, 6, asciicircum, trademark ] }; // § 6 ^ ™
key <AE08> { [ exclam, 8, asciitilde, exclamdown ] }; // ! 8 ~ ¡
key <AE09> { [ ccedilla, 9, braceleft, Ccedilla ] }; // ç 9 { Ç
key <AE10> { [ agrave, 0, braceright, Agrave ] }; // à 0 } À
key <AE11> { [ parenright, degree, oslash, Ooblique ] }; // ) ° ø Ø
key <AE12> { [ minus, underscore, 0x1002011, plusminus ] }; // - _ - (tiret insécable) ±
// Second row
key <AD11> { [ dead_circumflex, dead_diaeresis, bracketleft, dead_abovering ] }; // ^ ̈ [ ˚
key <AD12> { [ dollar, asterisk, bracketright, dead_ogonek ] }; // $ * ] ̨
// Third row
key <AC09> { [ l, L, dead_stroke ] };
key <BKSL> { [ mu, sterling, dead_grave, dead_macron ] }; // µ £ ` ̄
// Fourth row
key <LSGT> { [ less, greater, backslash, notequal ] }; // < > \ ≠
key <AB10> { [ equal, plus, dead_tilde, 0x1002212 ] }; // = + ~
};
partial alphanumeric_keys
xkb_symbols "oss_latin9" {
// Restricts the be(oss) layout to latin9 symbols
include "fr(oss_latin9)"
include "be(oss_frbe)"
include "keypad(oss_latin9)"
name[Group1]="Belgian (alternative, Latin-9 only)";
// First row
key <TLDE> { [ twosuperior, threesuperior, onesuperior, less ] }; // ² ³ ¹ <
key <AE01> { [ ampersand, 1, bar, greater ] }; // & 1 | >
key <AE04> { [ apostrophe, 4, dead_cedilla, minus ] }; // ' 4 ¸ -
key <AE05> { [ parenleft, 5, dead_caron, minus ] }; // ( 5 ˇ -
key <AE06> { [ section, 6, asciicircum, asciicircum ] }; // § 6 ^ ^
key <AE12> { [ minus, underscore, minus, plusminus ] }; // - _ - ±
// Second row
key <AD12> { [ dollar, asterisk, bracketright, dead_cedilla ] }; // $ * ] ¸
// Third row
key <AC09> { [ l, L, l, L ] }; // l L l L
key <BKSL> { [ mu, sterling, dead_grave, dead_circumflex ] }; // µ £ ` ^
// Fourth row
key <LSGT> { [ less, greater, backslash, equal ] }; // < > \ =
key <AB10> { [ equal, plus, dead_tilde, minus ] }; // = + ~ -
};
partial alphanumeric_keys
xkb_symbols "oss_Sundeadkeys" {
// Modifies the basic be(oss) layout to use the Sun dead keys
include "be(oss)"
// First row
key <AE04> { [ apostrophe, 4, dead_cedilla, 0x1002014 ] }; // ' 4 ¸ — (tiret cadratin)
// Second row
key <AD11> { [ dead_circumflex, dead_diaeresis, bracketleft, dead_abovering ] }; // ^ ̈ [ ˚
//Third row
key <AC11> { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù
key <BKSL> { [ mu, sterling, dead_grave, dead_macron ] }; // µ £ ` ̄
// Fourth row
key <AB10> { [ equal, plus, dead_tilde, 0x1002212 ] }; // = + ~
};
partial alphanumeric_keys
xkb_symbols "oss_sundeadkeys" {
include "be(oss_Sundeadkeys)"
name[Group1]="Belgian (alternative, Sun dead keys)";
};
partial alphanumeric_keys
xkb_symbols "iso-alternate" {
include "be(basic)"
name[Group1]="Belgian (ISO alternate)";
key <AD01> { [ a, A, ae, AE ] };
key <AD02> { [ z, Z, guillemotleft, less ] };
key <AC01> { [ q, Q, at, Greek_OMEGA ] };
key <AC10> { [ m, M, mu, masculine ] };
key <AB01> { [ w, W, lstroke, Lstroke ] };
key <AB07> { [ comma, question, dead_cedilla, dead_doubleacute ] };
};
partial alphanumeric_keys
xkb_symbols "sundeadkeys" {
// Use the Sun dead keys
include "be(basic)"
name[Group1]="Belgian (Sun dead keys)";
key <AD11> { [dead_circumflex, dead_diaeresis, bracketleft, bracketleft] };
key <AC11> { [ ugrave, percent, dead_acute, dead_acute ] };
key <BKSL> { [ mu, sterling, dead_grave, dead_grave ] };
key <AB07> { [ comma, question, dead_cedilla, dead_cedilla] };
key <AB10> { [ equal, plus, dead_tilde, dead_tilde ] };
};
partial alphanumeric_keys
xkb_symbols "Sundeadkeys" {
// Use the Sun dead keys
include "be(sundeadkeys)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
// Eliminates dead keys from the basic Belgian layout
include "be(basic)"
name[Group1]="Belgian (eliminate dead keys)";
key <AE12> { [ minus, underscore, cedilla, ogonek ] };
key <AD11> { [asciicircum, diaeresis, bracketleft, bracketleft] };
key <AD12> { [ dollar, asterisk, bracketright, macron ] };
key <AC10> { [ m, M, acute, doubleacute ] };
key <AC11> { [ ugrave, percent, apostrophe, apostrophe ] };
key <BKSL> { [ mu, sterling, grave, grave ] };
key <AB07> { [ comma, question, cedilla, masculine ] };
key <AB10> { [ equal, plus, asciitilde, asciitilde ] };
};
// Wang model 724 azerty Belgium keyboard
partial alphanumeric_keys
xkb_symbols "wang" {
include "be(basic)"
include "keypad(legacy_wang)"
name[Group1]="Belgian (Wang model 724 azerty)";
// Engravings on Wang 725-3771-ae
key <TLDE> { [ twosuperior, threesuperior, notsign, asciitilde ] };
key <LSGT> { [ less, greater, backslash, brokenbar ] };
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/be(sun_type6)"
};

View File

@ -0,0 +1,251 @@
//////////////////////////////////////////////////////////////////////////
// Copyright (C) 1999, 2000, 2007, 2009 by Anton Zinoviev <anton@lml.bas.bg>
//
// This software may be used, modified, copied, distributed, and sold,
// both in source and binary form provided that the above copyright
// notice and these terms are retained. The name of the author may not
// be used to endorse or promote products derived from this software
// without prior permission. THIS SOFTWARE IS PROVIDED "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT
// SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT
// OF THE USE OF THIS SOFTWARE.
//
//////////////////////////////////////////////////////////////////////////
// Version 2.0
// The following variants are defined in this file:
// "bds" - the BDS keyboard layout compliant with the proposed
// Bulgarian state standard BDS 5237:2006
// "phonetic" - the phonetic Bulgarian layout with the traditional position
// of the letters
// "bas_phonetic" - the phonetic keyboard layout compliant with the
// proposed Bulgarian state standard BDS 5237:2006
// "latin" - an extended variant of the QWERTY layout with symbols that
// Bulgarian users will type while the keyboard is in Latin mode
// The reasons behind the layout of the symbols in levels 3 and 4 are
// explained in http://arxiv.org/abs/0905.0484 (in Bulgarian).
// Two notes for the maintainers of xkeyboard-config:
// 1. Please do not use key names such as <LatQ> for the Bulgarian
// phonetic layouts. The placement of the symbols must stay always
// the same regardless of which one of the alias sets in
// xkb/keycodes/aliases is used.
// 2. The layouts should not include level3(ralt_switch).
//////////////////////////////////////////////////////////////////////////
// Describes Bulgarian keyboard "BDS" modified according to the
// the new state standard BDS 5237:2006 and extended with symbols in
// levels 3 and 4.
default partial alphanumeric_keys
xkb_symbols "bds" {
name[Group1]= "Bulgarian";
key <TLDE> {[ parenleft, parenright, bracketleft, bracketright ]};
key <AE01> {[ 1, exclam ]};
key <AE02> {[ 2, question ]};
key <AE03> {[ 3, plus, dagger, dagger ]};
key <AE04> {[ 4, quotedbl ]};
key <AE05> {[ 5, percent, U2329, U232A ]};
key <AE06> {[ 6, equal, emdash, emdash ]};
key <AE07> {[ 7, colon, ellipsis, ellipsis ]};
key <AE08> {[ 8, slash, U0300, U0301 ]};
key <AE09> {[ 9, endash ]};
key <AE10> {[ 0, numerosign ]};
key <AE11> {[ minus, dollar, U2011, EuroSign ]};
key <AE12> {[ period, EuroSign ]};
key <AD01> {[ comma, Cyrillic_yeru, rightsinglequotemark, leftsinglequotemark ]};
key <AD02> {[ Cyrillic_u, Cyrillic_U ]};
key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]};
key <AD04> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]};
key <AD05> {[ Cyrillic_sha, Cyrillic_SHA ]};
key <AD06> {[ Cyrillic_shcha, Cyrillic_SHCHA ]};
key <AD07> {[ Cyrillic_ka, Cyrillic_KA, copyright, copyright ]};
key <AD08> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]};
key <AD09> {[ Cyrillic_de, Cyrillic_DE ]};
key <AD10> {[ Cyrillic_ze, Cyrillic_ZE ]};
key <AD11> {[ Cyrillic_tse, Cyrillic_TSE ]};
key <AD12> {[ semicolon, section ]};
key <AC01> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
key <AC02> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]};
key <AC03> {[ Cyrillic_a, Cyrillic_A ]};
key <AC04> {[ Cyrillic_o, Cyrillic_O ]};
key <AC05> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
key <AC06> {[ Cyrillic_ghe, Cyrillic_GHE ]};
key <AC07> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]};
key <AC08> {[ Cyrillic_en, Cyrillic_EN ]};
key <AC09> {[ Cyrillic_ve, Cyrillic_VE ]};
key <AC10> {[ Cyrillic_em, Cyrillic_EM ]};
key <AC11> {[ Cyrillic_che, Cyrillic_CHE ]};
key <BKSL> {[ doublelowquotemark, leftdoublequotemark, guillemotleft, guillemotright ]};
key <LSGT> {[ U045D, U040D ]};
key <AB01> {[ Cyrillic_yu, Cyrillic_YU ]};
key <AB02> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]};
key <AB03> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]};
key <AB04> {[ Cyrillic_e, Cyrillic_E ]};
key <AB05> {[ Cyrillic_ef, Cyrillic_EF ]};
key <AB06> {[ Cyrillic_ha, Cyrillic_HA ]};
key <AB07> {[ Cyrillic_pe, Cyrillic_PE ]};
key <AB08> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]};
key <AB09> {[ Cyrillic_el, Cyrillic_EL ]};
key <AB10> {[ Cyrillic_be, Cyrillic_BE ]};
key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]};
};
// This is an improved variant of the traditional Bulgarian phonetic
// keyboard. Some unnecessary symbols in levels 1 and 2 are replaced
// by more useful ones (similar as in "bas_phonetic") and additional
// symbols are added in levels 3 and 4.
partial alphanumeric_keys
xkb_symbols "phonetic" {
name[Group1]= "Bulgarian (traditional phonetic)";
key <TLDE> {[ Cyrillic_che, Cyrillic_CHE ]};
key <AE01> {[ 1, exclam ]};
key <AE02> {[ 2, at ]};
key <AE03> {[ 3, numerosign ]};
key <AE04> {[ 4, dollar, EuroSign, EuroSign ]};
key <AE05> {[ 5, percent ]};
key <AE06> {[ 6, EuroSign ]};
key <AE07> {[ 7, section ]};
key <AE08> {[ 8, asterisk ]};
key <AE09> {[ 9, parenleft, bracketleft, U2329 ]};
key <AE10> {[ 0, parenright, bracketright, U232A ]};
key <AE11> {[ minus, endash, U2011, U2011 ]};
key <AE12> {[ equal, plus, emdash, dagger ]};
key <AD01> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]};
key <AD02> {[ Cyrillic_ve, Cyrillic_VE ]};
key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]};
key <AD04> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]};
key <AD05> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]};
key <AD06> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]};
key <AD07> {[ Cyrillic_u, Cyrillic_U ]};
key <AD08> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]};
key <AD09> {[ Cyrillic_o, Cyrillic_O ]};
key <AD10> {[ Cyrillic_pe, Cyrillic_PE ]};
key <AD11> {[ Cyrillic_sha, Cyrillic_SHA ]};
key <AD12> {[ Cyrillic_shcha, Cyrillic_SHCHA ]};
key <AC01> {[ Cyrillic_a, Cyrillic_A ]};
key <AC02> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]};
key <AC03> {[ Cyrillic_de, Cyrillic_DE ]};
key <AC04> {[ Cyrillic_ef, Cyrillic_EF ]};
key <AC05> {[ Cyrillic_ghe, Cyrillic_GHE ]};
key <AC06> {[ Cyrillic_ha, Cyrillic_HA ]};
key <AC07> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]};
key <AC08> {[ Cyrillic_ka, Cyrillic_KA ]};
key <AC09> {[ Cyrillic_el, Cyrillic_EL ]};
key <AC10> {[ semicolon, colon, ellipsis, ellipsis ]};
key <AC11> {[ apostrophe, quotedbl, rightsinglequotemark, leftsinglequotemark ]};
key <BKSL> {[ Cyrillic_yu, Cyrillic_YU ]};
key <LSGT> {[ U045D, U040D ]};
key <AB01> {[ Cyrillic_ze, Cyrillic_ZE ]};
key <AB02> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
key <AB03> {[ Cyrillic_tse, Cyrillic_TSE, copyright, copyright ]};
key <AB04> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
key <AB05> {[ Cyrillic_be, Cyrillic_BE ]};
key <AB06> {[ Cyrillic_en, Cyrillic_EN ]};
key <AB07> {[ Cyrillic_em, Cyrillic_EM ]};
key <AB08> {[ comma, doublelowquotemark, guillemotleft, guillemotleft ]};
key <AB09> {[ period, leftdoublequotemark, guillemotright, guillemotright ]};
key <AB10> {[ slash, question, U0300, U0301 ]};
key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]};
};
// This is the Bulgarian phonetic keyboard according to the proposed
// state standard BDS 5237:2006 with additional symbols in levels 3 and 4.
partial alphanumeric_keys
xkb_symbols "bas_phonetic" {
include "bg(phonetic)"
name[Group1]= "Bulgarian (new phonetic)";
key <TLDE> {[ Cyrillic_yu, Cyrillic_YU ]};
key <AD01> {[ Cyrillic_che, Cyrillic_CHE ]};
key <AD02> {[ Cyrillic_sha, Cyrillic_SHA ]};
key <AD11> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]};
key <BKSL> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
key <AB02> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
key <AB04> {[ Cyrillic_ve, Cyrillic_VE ]};
};
// This is an extended variant of the standard Latin QWERTY layout with
// additional symbols in levels 3 and 4.
partial hidden alphanumeric_keys
xkb_symbols "latin" {
key <TLDE> {[ grave, asciitilde, U2248, U2245 ]};
key <AE01> {[ 1, exclam, notsign, notsign ]};
key <AE02> {[ 2, at, twosuperior, enfilledcircbullet ]};
key <AE03> {[ 3, numbersign, threesuperior, notequal ]};
key <AE04> {[ 4, dollar, EuroSign, sterling ]};
key <AE05> {[ 5, percent, U2030, U2030 ]};
key <AE06> {[ 6, asciicircum, logicaland, logicalor ]};
key <AE07> {[ 7, ampersand, section, section ]};
key <AE08> {[ 8, asterisk, infinity, multiply ]};
key <AE09> {[ 9, parenleft, U2202, nabla ]};
key <AE10> {[ 0, parenright, U2300, U2300 ]};
key <AE11> {[ minus, underscore, U2011, endash ]};
key <AE12> {[ equal, plus, emdash, plusminus ]};
key <AD01> {[ q, Q, Greek_THETA, Greek_theta ]};
key <AD02> {[ w, W, Greek_OMEGA, Greek_omega ]};
key <AD03> {[ e, E, U2203, Greek_epsilon ]};
key <AD04> {[ r, R, registered, Greek_rho ]};
key <AD05> {[ t, T, trademark, Greek_tau ]};
key <AD06> {[ y, Y, yen, Greek_upsilon ]};
key <AD07> {[ u, U, intersection, union ]};
key <AD08> {[ i, I, integral, Greek_iota ]};
key <AD09> {[ o, O, degree, U222E ]};
key <AD10> {[ p, P, Greek_PI, Greek_pi ]};
key <AD11> {[ bracketleft, braceleft, U2286, includedin ]};
key <AD12> {[ bracketright, braceright, U2208, U2209 ]};
key <AC01> {[ a, A, U2200, Greek_alpha ]};
key <AC02> {[ s, S, Greek_SIGMA, Greek_sigma ]};
key <AC03> {[ d, D, Greek_DELTA, Greek_delta ]};
key <AC04> {[ f, F, Greek_PHI, Greek_phi ]};
key <AC05> {[ g, G, Greek_GAMMA, Greek_gamma ]};
key <AC06> {[ h, H, U2225, Greek_eta ]};
key <AC07> {[ j, J ]};
key <AC08> {[ k, K, U03F0, Greek_kappa ]};
key <AC09> {[ l, L, Greek_LAMBDA, Greek_lambda ]};
key <AC10> {[ semicolon, colon, division, division ]};
key <AC11> {[ apostrophe, quotedbl, leftdoublequotemark, rightdoublequotemark]};
key <BKSL> {[ backslash, bar, identical, downtack ]};
key <LSGT> {[ less, greater, U2266, U2267 ]};
key <AB01> {[ z, Z, U2220, Greek_zeta ]};
key <AB02> {[ x, X, Greek_XI, Greek_xi ]};
key <AB03> {[ c, C, copyright, Greek_chi ]};
key <AB04> {[ v, V, Greek_PSI, Greek_psi ]};
key <AB05> {[ b, B, U03D1, Greek_beta ]};
key <AB06> {[ n, N, U207F, Greek_nu ]};
key <AB07> {[ m, M, Greek_mu, Greek_mu ]};
key <AB08> {[ comma, less, U2266, U21D4 ]};
key <AB09> {[ period, greater, U2267, U21D2 ]};
key <AB10> {[ slash, question, leftsinglequotemark, rightsinglequotemark]};
key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Decimal ]};
};

View File

@ -0,0 +1,310 @@
default
xkb_symbols "abnt2" {
// Based on a very simple Brazilian ABNT2 keyboard,
// by Ricardo Y. Igarashi (iga@that.com.br).
// With added support for dead keys in I18N applications,
// by Conectiva (http://www.conectiva.com.br).
include "latin"
name[Group1]="Portuguese (Brazil)";
key <TLDE> { [ apostrophe, quotedbl, notsign, notsign ] };
key <AE02> { [ 2, at, twosuperior, onehalf ] };
key <AE03> { [ 3, numbersign, threesuperior, threequarters ] };
key <AE04> { [ 4, dollar, sterling, onequarter ] };
key <AE05> { [ 5, percent, cent, threeeighths ] };
key <AE06> { [ 6, dead_diaeresis, notsign, diaeresis ] };
key <AE12> { [ equal, plus, section, dead_ogonek ] };
key <AD01> { [ q, Q, slash, slash ] };
key <AD02> { [ w, W, question, question ] };
key <AD03> { [ e, E, EuroSign, EuroSign ] };
key <AD04> { [ r, R, registered, registered ] };
key <AD11> { [ dead_acute, dead_grave, acute, grave ] };
key <AD12> { [ bracketleft, braceleft, ordfeminine, dead_macron ] };
key <BKSL> { [ bracketright, braceright, masculine, masculine ] };
key <AC10> { [ ccedilla, Ccedilla, dead_acute,dead_doubleacute ] };
key <AC11> { [ dead_tilde,dead_circumflex, asciitilde, asciicircum ] };
key <LSGT> { [ backslash, bar, masculine, dead_breve ] };
key <AB03> { [ c, C, copyright, copyright ] };
key <AB07> { [ m, M, mu, mu ] };
key <AB10> { [ semicolon, colon, dead_belowdot, dead_abovedot ] };
// The ABNT-2 keyboard has this special key:
key <AB11> { [ slash, question, degree, questiondown ] };
modifier_map Mod3 { Scroll_Lock };
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "br(abnt2)"
name[Group1]="Portuguese (Brazil, eliminate dead keys)";
key <AE06> { [ 6, diaeresis, notsign, notsign ] };
key <AD11> { [ apostrophe, grave ] };
key <AC10> { [ ccedilla, Ccedilla, acute, doubleacute ] };
key <AC11> { [ asciitilde, asciicircum ] };
key <AB10> { [ semicolon, colon, dead_belowdot, abovedot ] };
};
// The ABNT2 keyboard on IBM/Lenovo Thinkpads,
// by Piter PUNK <piterpk@terra.com.br>.
//
partial alphanumeric_keys
xkb_symbols "thinkpad" {
include "br(abnt2)"
name[Group1]="Portuguese (Brazil)";
key <RCTL> { [ slash, question, degree, questiondown ] };
};
partial alphanumeric_keys
xkb_symbols "olpc" {
include "us(basic)"
name[Group1]="Portuguese (Brazil)";
key <TLDE> { [ apostrophe, quotedbl ] };
key <AE01> { [ 1, exclam, onesuperior ] };
key <AE02> { [ 2, at, twosuperior ] };
key <AE03> { [ 3, numbersign, threesuperior ] };
key <AE04> { [ 4, dollar, sterling ] };
key <AE05> { [ 5, percent, cent ] };
key <AE06> { [ 6, dead_diaeresis, notsign ] };
key <AE12> { [ equal, plus, section ] };
key <AD03> { [ e, E, EuroSign ] };
key <AD11> { [ dead_acute, dead_grave, acute, grave ] };
key <AD12> { [ bracketleft, braceleft, 0x10000AA ] };
key <BKSL> { [ bracketright, braceright, 0x10000BA ] };
key <AC10> { [ ccedilla, Ccedilla ] };
key <AC11> { [ dead_tilde, dead_circumflex ] };
key <AB01> { [ z, Z, bar ] };
key <AB03> { [ c, C, 0x10020A2 ] };
key <AB09> { [ period, greater, backslash ] };
key <AB10> { [ semicolon, colon ] };
key <I219> { [ slash, question, degree, ISO_Next_Group ] };
include "level3(ralt_switch)"
};
//
// Brazilian Dvorak layout 2005-04-18
// "Teclado Simplificado Brasileiro" ou "Dvorak Brasileiro"
//
// Heitor Moraes heitor.moraes@gmail.com
// Luiz Portella lfpor@lujz.org
// Nando Florestan nando2003@mandic.com.br
// Ari Caldeira ari@tecladobrasileiro.com.br
//
partial alphanumeric_keys
xkb_symbols "dvorak" {
name[Group1]="Portuguese (Brazil, Dvorak)";
// Numeric row
key <TLDE> { [ apostrophe, quotedbl, dead_caron, dead_doubleacute ] };
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
key <AE02> { [ 2, at, twosuperior, onehalf ] };
key <AE03> { [ 3, numbersign, threesuperior, threequarters ] };
key <AE04> { [ 4, dollar, sterling, onequarter ] };
key <AE05> { [ 5, percent, cent, 0x01002030 ] };
key <AE06> { [ 6, dead_diaeresis, notsign, diaeresis ] };
key <AE07> { [ 7, ampersand, dead_belowdot, dead_abovedot ] };
key <AE08> { [ 8, asterisk, dead_ogonek, dead_horn ] };
key <AE09> { [ 9, parenleft, dead_cedilla, dead_hook ] };
key <AE10> { [ 0, parenright, dead_macron, dead_breve ] };
key <AE11> { [ bracketleft, braceleft, ordfeminine, 0x01000326 ] };
key <AE12> { [ bracketright, braceright, masculine, dead_abovering ] };
// Upper row
key <AD01> { [ slash, question, degree, questiondown ] };
key <AD02> { [ comma, less, 0x01000329, 0x01000313 ] };
key <AD03> { [ period, greater, 0x01002022, periodcentered ] };
key <AD04> { [ p, P, thorn, THORN ] };
key <AD05> { [ y, Y, yen, yen ] };
key <AD06> { [ f, F, leftdoublequotemark, leftsinglequotemark ] };
key <AD07> { [ g, G, rightdoublequotemark, rightsinglequotemark ] };
key <AD08> { [ c, C, uparrow, copyright ] };
key <AD09> { [ r, R, registered, registered ] };
key <AD10> { [ l, L, lstroke, Lstroke ] };
key <AD11> { [ dead_acute, dead_grave, acute, grave ] };
key <AD12> { [ equal, plus, section, plusminus ] };
// Central row
key <AC01> { [ a, A, ae, AE ] };
key <AC02> { [ o, O, oe, OE ] };
key <AC03> { [ e, E, EuroSign, EuroSign ] };
key <AC04> { [ u, U, oslash, Ooblique ] };
key <AC05> { [ i, I, idotless, Iabovedot ] };
key <AC06> { [ d, D, eth, ETH ] };
key <AC07> { [ h, H, leftarrow, paragraph ] };
key <AC08> { [ t, T, rightarrow, trademark ] };
key <AC09> { [ n, N, eng, ENG ] };
key <AC10> { [ s, S, ssharp, ssharp ] };
key <AC11> { [ dead_tilde, dead_circumflex, asciitilde, asciicircum ] };
key <BKSL> { [ minus, underscore, 0x01002015, 0x01000336 ] };
// Lower row
key <LSGT> { [ ccedilla, Ccedilla, backslash, bar ] };
key <AB01> { [ semicolon, colon, 0x01000331, 0x0100032D ] };
key <AB02> { [ q, Q, 0x01000259, 0x0100018F ] };
key <AB03> { [ j, J, 0x01000292, 0x010001B7 ] };
key <AB04> { [ k, K, guillemotleft, 0x01002039 ] };
key <AB05> { [ x, X, multiply, division ] };
key <AB06> { [ b, B, guillemotright, 0x0100203A ] };
key <AB07> { [ m, M, downarrow, mu ] };
key <AB08> { [ w, W, ubreve, Ubreve ] };
key <AB09> { [ v, V, doublelowquotemark, singlelowquotemark ] };
key <AB10> { [ z, Z, 0x0100201F, 0x0100201B ] };
key <AB11> { [ backslash, bar, currency, brokenbar ] };
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
// Configures the "," for the numeric keypad
include "kpdl(comma)"
// Configures the use of the AltGr key
include "level3(ralt_switch)"
};
//
// Brazilian Nativo layout.
// This is a Dvorak-based layout, designed for the Portuguese language.
//
// Ari Caldeira <ari@tecladobrasileiro.com.br> 2005-07-19
//
partial alphanumeric_keys
xkb_symbols "nativo" {
name[Group1]="Portuguese (Brazil, Nativo)";
// Numeric row
key <TLDE> { [ equal, plus, section, plusminus ] };
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
key <AE02> { [ 2, at, twosuperior, onehalf ] };
key <AE03> { [ 3, numbersign, threesuperior, threequarters ] };
key <AE04> { [ 4, dollar, sterling, onequarter ] };
key <AE05> { [ 5, percent, cent, 0x01002030 ] };
key <AE06> { [ 6, dead_diaeresis, notsign, diaeresis ] };
key <AE07> { [ 7, ampersand, dead_belowdot, dead_abovedot ] };
key <AE08> { [ 8, asterisk, dead_ogonek, dead_horn ] };
key <AE09> { [ 9, parenleft, dead_cedilla, dead_hook ] };
key <AE10> { [ 0, parenright, dead_macron, dead_breve ] };
key <AE11> { [ bracketleft, braceleft, ordfeminine, 0x01000326 ] };
key <AE12> { [ bracketright, braceright, masculine, dead_abovering ] };
// Upper row
key <AD01> { [ slash, question, degree, questiondown ] };
key <AD02> { [ comma, less, 0x01000329, 0x01000313 ] };
key <AD03> { [ period, greater, 0x01002022, periodcentered ] };
key <AD04> { [ h, H, paragraph, paragraph ] };
key <AD05> { [ x, X, multiply, division ] };
key <AD06> { [ w, W, ubreve, Ubreve ] };
key <AD07> { [ l, L, lstroke, Lstroke ] };
key <AD08> { [ t, T, trademark, trademark ] };
key <AD09> { [ c, C, copyright, copyright ] };
key <AD10> { [ p, P, thorn, THORN ] };
key <AD11> { [ dead_tilde, dead_circumflex, asciitilde, asciicircum ] };
key <AD12> { [ minus, underscore, 0x01002015, 0x01000336 ] };
// Central row
key <AC01> { [ i, I, idotless, Iabovedot ] };
key <AC02> { [ e, E, EuroSign, EuroSign ] };
key <AC03> { [ a, A, ae, AE ] };
key <AC04> { [ o, O, oe, OE ] };
key <AC05> { [ u, U, oslash, Ooblique ] };
key <AC06> { [ m, M, mu, mu ] };
key <AC07> { [ d, D, eth, ETH ] };
key <AC08> { [ s, S, ssharp, ssharp ] };
key <AC09> { [ r, R, registered, registered ] };
key <AC10> { [ n, N, eng, ENG ] };
key <AC11> { [ dead_acute, dead_grave, acute, grave ] };
key <BKSL> { [ apostrophe, quotedbl, dead_caron, dead_doubleacute ] };
// Lower row
key <LSGT> { [ semicolon, colon, 0x01000331, 0x0100032D ] };
key <AB01> { [ y, Y, yen, yen ] };
key <AB02> { [ ccedilla, Ccedilla, backslash, bar ] };
key <AB03> { [ j, J, 0x01000292, 0x010001B7 ] };
key <AB04> { [ b, B, guillemotleft, 0x01002039 ] };
key <AB05> { [ k, K, guillemotright, 0x0100203A ] };
key <AB06> { [ q, Q, 0x01000259, 0x0100018F ] };
key <AB07> { [ v, V, doublelowquotemark, singlelowquotemark ] };
key <AB08> { [ g, G, leftdoublequotemark, leftsinglequotemark ] };
key <AB09> { [ f, F, rightdoublequotemark, rightsinglequotemark ] };
key <AB10> { [ z, Z, 0x0100201F, 0x0100201B ] };
key <AB11> { [ backslash, bar, currency, brokenbar ] };
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
// Configures the "," for the numeric keypad
include "kpdl(comma)"
// Configures the use of the AltGr key
include "level3(ralt_switch)"
};
//
// Brazilian Nativo layout for US keyboards.
//
// Ari Caldeira <ari@tecladobrasileiro.com.br> 2005-07-19
//
partial alphanumeric_keys
xkb_symbols "nativo-us" {
include "br(nativo)"
name[Group1]="Portuguese (Brazil, Nativo for US keyboards)";
key <AB01> { [ y, Y, ccedilla, Ccedilla ] };
key <AB02> { [ semicolon, colon, backslash, bar ] };
};
//
// Brazilian Nativo layout for typing Esperanto.
//
// Ari Caldeira <ari@tecladobrasileiro.com.br> 2005-07-19
//
partial alphanumeric_keys
xkb_symbols "nativo-epo" {
include "br(nativo)"
name[Group1]="Esperanto (Brazil, Nativo)";
key <AD04> { [ h, H, hcircumflex, Hcircumflex ] };
key <AD05> { [ ccircumflex, Ccircumflex, x, X ] };
key <AD06> { [ ubreve, Ubreve, w, W ] };
key <AB01> { [ jcircumflex, Jcircumflex, y, Y ] };
key <AB02> { [ scircumflex, Scircumflex, ccedilla, Ccedilla ] };
key <AB06> { [ gcircumflex, Gcircumflex, q, Q ] };
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/br(sun_type6)"
};

View File

@ -0,0 +1,529 @@
default partial
xkb_symbols "fr" {
name[Group1] = "French (Canada)";
key <TLDE> { [ numbersign, bar, backslash ] };
key <AE01> { [ 1, exclam, plusminus ] };
key <AE02> { [ 2, quotedbl, at ] };
key <AE03> { [ 3, slash, sterling ] };
key <AE04> { [ 4, dollar, cent ] };
key <AE05> { [ 5, percent, currency ] };
key <AE06> { [ 6, question, notsign ] };
key <AE07> { [ 7, ampersand, brokenbar ] };
key <AE08> { [ 8, asterisk, twosuperior ] };
key <AE09> { [ 9, parenleft, threesuperior ] };
key <AE10> { [ 0, parenright, onequarter ] };
key <AE11> { [ minus, underscore, onehalf ] };
key <AE12> { [ equal, plus, threequarters ] };
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ e, E ] };
key <AD04> { [ r, R ] };
key <AD05> { [ t, T ] };
key <AD06> { [ y, Y ] };
key <AD07> { [ u, U ] };
key <AD08> { [ i, I ] };
key <AD09> { [ o, O, section ] };
key <AD10> { [ p, P, paragraph ] };
key <AD11> { [dead_circumflex, dead_circumflex, bracketleft ] };
key <AD12> { [ dead_cedilla, dead_diaeresis, bracketright ] };
key <AC01> { [ a, A ] };
key <AC02> { [ s, S ] };
key <AC03> { [ d, D ] };
key <AC04> { [ f, F ] };
key <AC05> { [ g, G ] };
key <AC06> { [ h, H ] };
key <AC07> { [ j, J ] };
key <AC08> { [ k, K ] };
key <AC09> { [ l, L ] };
key <AC10> { [ semicolon, colon, asciitilde ] };
key <AC11> { [dead_grave, dead_grave, braceleft ] };
key <BKSL> { [ less, greater, braceright ] };
key <LSGT> { [guillemotleft, guillemotright, degree] };
key <AB01> { [ z, Z ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C ] };
key <AB04> { [ v, V ] };
key <AB05> { [ b, B ] };
key <AB06> { [ n, N ] };
key <AB07> { [ m, M, mu ] };
key <AB08> { [ comma, apostrophe, macron ] };
key <AB09> { [ period, period, hyphen ] };
key <AB10> { [ eacute, Eacute, dead_acute ] };
key <SPCE> { [ space, space, nobreakspace ] };
include "level3(ralt_switch)"
};
xkb_symbols "fr-dvorak" {
name[Group1] = "French (Canada, Dvorak)";
key <TLDE> { [ numbersign, bar, backslash ] };
key <AE01> { [ 1, exclam, plusminus ] };
key <AE02> { [ 2, quotedbl, at ] };
key <AE03> { [ 3, slash, sterling ] };
key <AE04> { [ 4, dollar, cent ] };
key <AE05> { [ 5, percent, currency ] };
key <AE06> { [ 6, question, notsign ] };
key <AE07> { [ 7, ampersand, brokenbar ] };
key <AE08> { [ 8, asterisk, twosuperior ] };
key <AE09> { [ 9, parenleft, threesuperior ] };
key <AE10> { [ 0, parenright, onequarter ] };
key <AE11> { [dead_circumflex, dead_circumflex, bracketleft ] };
key <AE12> { [ dead_cedilla, dead_diaeresis, bracketright ] };
key <AD01> { [dead_grave, dead_grave, braceleft ] };
key <AD02> { [ comma, apostrophe, macron ] };
key <AD03> { [ period, period, hyphen ] };
key <AD04> { [ p, P, paragraph ] };
key <AD05> { [ y, Y ] };
key <AD06> { [ f, F ] };
key <AD07> { [ g, G ] };
key <AD08> { [ c, C ] };
key <AD09> { [ r, R ] };
key <AD10> { [ l, L ] };
key <AD11> { [ eacute, Eacute, dead_acute ] };
key <AD12> { [ equal, plus, threequarters ] };
key <AC01> { [ a, A ] };
key <AC02> { [ o, O, section ] };
key <AC03> { [ e, E ] };
key <AC04> { [ u, U ] };
key <AC05> { [ i, I ] };
key <AC06> { [ d, D ] };
key <AC07> { [ h, H ] };
key <AC08> { [ t, T ] };
key <AC09> { [ n, N ] };
key <AC10> { [ s, S ] };
key <AC11> { [ minus, underscore, onehalf ] };
key <BKSL> { [ less, greater, braceright ] };
key <LSGT> { [guillemotleft, guillemotright, degree] };
key <AB01> { [ semicolon, colon, asciitilde ] };
key <AB02> { [ q, Q ] };
key <AB03> { [ j, J ] };
key <AB04> { [ k, K ] };
key <AB05> { [ x, X ] };
key <AB06> { [ b, B ] };
key <AB07> { [ m, M, mu ] };
key <AB08> { [ w, W ] };
key <AB09> { [ v, V ] };
key <AB10> { [ z, Z ] };
key <SPCE> { [ space, space, nobreakspace ] };
include "level3(ralt_switch)"
};
partial
xkb_symbols "fr-legacy" {
include "ca(fr)"
name[Group1] = "French (Canada, legacy)";
key <TLDE> { [ degree, degree, notsign ] };
key <AE01> { [ 1, exclam, onesuperior ] };
key <AE03> { [ 3, numbersign, threesuperior ] };
key <AE04> { [ 4, dollar, onequarter ] };
key <AE05> { [ 5, percent, onehalf ] };
key <AE06> { [ 6, question, threequarters ] };
key <AE07> { [ 7, ampersand, braceleft ] };
key <AE08> { [ 8, asterisk, bracketleft ] };
key <AE09> { [ 9, parenleft, bracketright, plusminus ] };
key <AE10> { [ 0, parenright, braceright ] };
key <AE11> { [ minus, underscore, bar, questiondown] };
key <AE12> { [ equal, plus, dead_cedilla ] };
key <AD04> { [ r, R, paragraph, registered ] };
key <AD06> { [ y, Y, yen ] };
key <AD09> { [ o, O, oslash, Ooblique ] };
key <AD10> { [ p, P, thorn, THORN ] };
key <AD11> { [dead_circumflex, dead_circumflex, degree ] };
key <AD12> { [ ccedilla, Ccedilla, dead_tilde, dead_diaeresis ] };
key <AC01> { [ a, A, ae, AE ] };
key <AC02> { [ s, S, ssharp, section ] };
key <AC03> { [ d, D, eth, ETH ] };
key <AC04> { [ f, F, ordfeminine ] };
key <AC10> { [ semicolon, colon, dead_acute, dead_acute ] };
key <AC11> { [ egrave, Egrave ] };
key <BKSL> { [ agrave, Agrave, dead_grave ] };
key <LSGT> { [ ugrave, Ugrave, backslash, bar ] };
key <AB01> { [ z, Z, guillemotleft ] };
key <AB02> { [ x, X, guillemotright ] };
key <AB03> { [ c, C, cent, copyright ] };
key <AB07> { [ m, M, mu, masculine ] };
key <AB08> { [ comma, apostrophe, less ] };
key <AB09> { [ period, period, greater ] };
key <AB10> { [ eacute, Eacute, slash ] };
};
partial
xkb_symbols "multi" {
include "ca(fr)"
name[Group1] = "Canadian Multilingual (first part)";
key <TLDE> { [ slash, backslash, bar ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, dollar ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, question ] };
key <AE07> { [ 7, ampersand, braceleft ] };
key <AE08> { [ 8, asterisk, braceright ] };
key <AE09> { [ 9, parenleft, bracketleft ] };
key <AE10> { [ 0, parenright, bracketright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus, notsign ] };
key <AD09> { [ o, O ] };
key <AD10> { [ p, P ] };
key <AD11> { [dead_circumflex, dead_diaeresis, dead_grave ] };
key <AD12> { [ ccedilla, Ccedilla, asciitilde ] };
key <AC10> { [ semicolon, colon, degree ] };
key <AC11> { [ egrave, Egrave ] };
key <BKSL> { [ agrave, Agrave ] };
key <LSGT> { [ ugrave, Ugrave ] };
key <AB01> { [ z, Z, guillemotleft ] };
key <AB02> { [ x, X, guillemotright ] };
key <AB08> { [ comma, apostrophe, less ] };
key <AB09> { [ period, quotedbl, greater ] };
key <AB10> { [ eacute, Eacute ] };
};
partial
xkb_symbols "multi-2gr" {
name[Group1] = "Canadian Multilingual (second part)";
key <TLDE> { [ NoSymbol, hyphen ] };
key <AE01> { [ onesuperior, exclamdown ] };
key <AE02> { [ twosuperior, NoSymbol ] };
key <AE03> { [ threesuperior, sterling ] };
key <AE04> { [ onequarter, currency ] };
key <AE05> { [ onehalf,threeeighths ] };
key <AE06> { [ threequarters, fiveeighths ] };
key <AE07> { [ NoSymbol,seveneighths ] };
key <AE08> { [ NoSymbol, trademark ] };
key <AE09> { [ NoSymbol, plusminus ] };
key <AE11> { [ NoSymbol, questiondown] };
key <AE12> { [ dead_cedilla, dead_ogonek ] };
key <AD01> { [ NoSymbol, Greek_OMEGA ] };
key <AD02> { [ lstroke, Lstroke ] };
key <AD03> { [ oe, OE ] };
key <AD04> { [ paragraph, registered ] };
key <AD05> { [ tslash, Tslash ] };
key <AD06> { [ leftarrow, yen ] };
key <AD07> { [ downarrow, uparrow ] };
key <AD08> { [ rightarrow, idotless ] };
key <AD09> { [ oslash, Ooblique ] };
key <AD10> { [ thorn, THORN ] };
key <AD11> { [ NoSymbol, dead_abovering ] };
key <AD12> { [ dead_tilde, dead_macron ] };
key <AC01> { [ ae, AE ] };
key <AC02> { [ ssharp, section ] };
key <AC03> { [ eth, ETH ] };
key <AC04> { [ NoSymbol, ordfeminine ] };
key <AC05> { [ eng, ENG ] };
key <AC06> { [ hstroke, Hstroke ] };
key <AC07> { [ U0133, U0132 ] };
key <AC08> { [ kra, NoSymbol ] };
key <AC09> { [ U0140, U013F ] };
key <AC10> { [ dead_acute, dead_doubleacute ] };
key <AC11> { [ NoSymbol, dead_caron ] };
key <BKSL> { [ NoSymbol, dead_breve ] };
key <LSGT> { [ NoSymbol, brokenbar ] };
key <AB03> { [ cent, copyright ] };
key <AB04> { [ leftdoublequotemark, leftsinglequotemark ] };
key <AB05> { [ rightdoublequotemark, rightsinglequotemark ] };
key <AB06> { [ U0149, U266A ] };
key <AB07> { [ mu, masculine ] };
key <AB08> { [ Greek_horizbar, multiply ] };
key <AB09> { [ periodcentered, division ] };
key <AB10> { [ NoSymbol, dead_abovedot ] };
};
// based on
// Inuktitut keyboard for X11
// written by Pablo Saratxaga <pablo@mandrakesoft.com>
alphanumeric_keys
xkb_symbols "ike" {
name[Group1]= "Inuktitut";
key <AE01> { [ 0x01001595, 1 ] };
key <AE02> { [ 0x01001449, 2 ] };
key <AE03> { [ 0x01001550, 3 ] };
key <AE04> { [ 0x01001483, 4 ] };
key <AE05> { [ 0x01001466, 5 ] };
key <AE06> { [ 0x01001585, 6 ] };
key <AE07> { [ 0x010014bb, 7 ] };
key <AE08> { [ 0x010014d0, 8 ] };
key <AE09> { [ 0x010014ea, 9 ] };
key <AE10> { [ 0x0100153e, 0 ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ 0x0100155d, equal ] };
key <AD01> { [ 0x0100158f, 0x0100148b ] };
key <AD02> { [ 0x01001403, 0x01001431 ] };
key <AD03> { [ 0x0100157f, 0x01001546 ] };
key <AD04> { [ 0x0100146d, 0x01001596 ] };
key <AD05> { [ 0x0100144e, 0x01001671 ] };
key <AD06> { [ 0x010014ef, 0x01001673 ] };
key <AD07> { [ 0x010014a5, 0x01001675 ] };
key <AD08> { [ 0x010014c2, 0x010015a4 ] };
key <AD09> { [ 0x010014d5, 0x010015a0 ] };
key <AD10> { [ 0x01001528, 0x010015a6 ] };
key <AD11> { [ 0x010014a1, 0x01001505 ] };
key <AD12> { [ dead_abovedot, 0x0100141e] };
key <AC01> { [ 0x01001591, 0x0100148d ] };
key <AC02> { [ 0x01001405, 0x01001433 ] };
key <AC03> { [ 0x01001581, 0x01001548 ] };
key <AC04> { [ 0x0100146f, 0x01001555 ] };
key <AC05> { [ 0x01001450, parenleft ] };
key <AC06> { [ 0x010014f1, parenright ] };
key <AC07> { [ 0x010014a7, 0x0100152a ] };
key <AC08> { [ 0x010014c4, 0x01001557 ] };
key <AC09> { [ 0x010014d7, 0x010015a2 ] };
key <AC10> { [ semicolon, colon ] };
key <AC11> { [ apostrophe, quotedbl ] };
key <AB01> { [ 0x01001593, 0x01001490 ] };
key <AB02> { [ 0x0100140a, 0x01001438 ] };
key <AB03> { [ 0x01001583, 0x0100154b ] };
key <AB04> { [ 0x01001472, question ] };
key <AB05> { [ 0x01001455, 0x0100157c ] };
key <AB06> { [ 0x010014f4, 0x010014c7 ] };
key <AB07> { [ 0x010014aa, 0x010014da ] };
key <AB08> { [ comma, less ] };
key <AB09> { [ period, greater ] };
key <AB10> { [ 0x0100152d, 0x01001559 ] };
key <TLDE> { [ 0x0100157b, 0x01001575 ] };
key <LSGT> { [ 0x01001579, 0x01001577 ] };
key <BKSL> { [ backslash, bar ] };
};
partial
xkb_symbols "multix" {
name[Group1] = "Canadian Multilingual";
key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";
key <TLDE> { [ slash, backslash, bar, NoSymbol,
NoSymbol, hyphen ] };
key <AE01> { [ 1, exclam, plusminus, NoSymbol,
onesuperior, exclamdown ] };
key <AE02> { [ 2, at, at, NoSymbol,
twosuperior, NoSymbol ] };
key <AE03> { [ 3, numbersign, sterling, NoSymbol,
threesuperior, sterling ] };
key <AE04> { [ 4, dollar, cent, NoSymbol,
onequarter, currency ] };
key <AE05> { [ 5, percent, currency, NoSymbol,
onehalf, threeeighths ] };
key <AE06> { [ 6, question, notsign, NoSymbol,
threequarters, fiveeighths ] };
key <AE07> { [ 7, ampersand, braceleft, NoSymbol,
NoSymbol, seveneighths ] };
key <AE08> { [ 8, asterisk, braceright, NoSymbol,
NoSymbol, trademark ] };
key <AE09> { [ 9, parenleft, bracketleft, NoSymbol,
NoSymbol, plusminus ] };
key <AE10> { [ 0, parenright, bracketright, NoSymbol ] };
key <AE11> { [ minus, underscore, onehalf, NoSymbol,
NoSymbol, questiondown] };
key <AE12> { [ equal, plus, notsign, NoSymbol,
dead_cedilla, dead_ogonek ] };
key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";
key <AD01> { [ q, Q, NoSymbol, NoSymbol,
NoSymbol, Greek_OMEGA ] };
key <AD02> { [ w, W, NoSymbol, NoSymbol,
lstroke, Lstroke ] };
key <AD03> { [ e, E, NoSymbol, NoSymbol,
oe, OE ] };
key <AD04> { [ r, R, NoSymbol, NoSymbol,
paragraph, registered ] };
key <AD05> { [ t, T, NoSymbol, NoSymbol,
tslash, Tslash ] };
key <AD06> { [ y, Y, NoSymbol, NoSymbol,
leftarrow, yen ] };
key <AD07> { [ u, U, NoSymbol, NoSymbol,
downarrow, uparrow ] };
key <AD08> { [ i, I, NoSymbol, NoSymbol,
rightarrow, idotless ] };
key <AD09> { [ o, O, section, NoSymbol,
oslash, Ooblique ] };
key <AD10> { [ p, P, paragraph, NoSymbol,
thorn, THORN ] };
key.type[group1]="EIGHT_LEVEL";
key <AD11> { [dead_circumflex, dead_diaeresis, dead_grave, NoSymbol,
NoSymbol, dead_abovering ] };
key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";
key <AD12> { [ ccedilla, Ccedilla, asciitilde, NoSymbol,
dead_tilde, dead_macron ] };
key <AC01> { [ a, A, NoSymbol, NoSymbol,
ae, AE ] };
key <AC02> { [ s, S, NoSymbol, NoSymbol,
ssharp, section ] };
key <AC03> { [ d, D, NoSymbol, NoSymbol,
eth, ETH ] };
key <AC04> { [ f, F, NoSymbol, NoSymbol,
NoSymbol, ordfeminine ] };
key <AC05> { [ g, G, NoSymbol, NoSymbol,
eng, ENG ] };
key <AC06> { [ h, H, NoSymbol, NoSymbol,
hstroke, Hstroke ] };
key <AC07> { [ j, J, NoSymbol, NoSymbol,
U0133, U0132 ] };
key <AC08> { [ k, K, NoSymbol, NoSymbol,
kra, NoSymbol ] };
key <AC09> { [ l, L, NoSymbol, NoSymbol,
U0140, U013F ] };
key.type[group1]="EIGHT_LEVEL";
key <AC10> { [ semicolon, colon, degree, NoSymbol,
dead_acute, dead_doubleacute ] };
key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";
key <AC11> { [ egrave, Egrave, braceleft, NoSymbol,
NoSymbol, dead_caron ] };
key <BKSL> { [ agrave, Agrave, braceright, NoSymbol,
NoSymbol, dead_breve ] };
key <LSGT> { [ ugrave, Ugrave, degree, NoSymbol,
NoSymbol, brokenbar ] };
key.type[group1]="FOUR_LEVEL_SEMIALPHABETIC";
key <AB01> { [ z, Z, guillemotleft, NoSymbol ] };
key <AB02> { [ x, X, guillemotright, NoSymbol ] };
key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC";
key <AB03> { [ c, C, NoSymbol, NoSymbol,
cent, copyright ] };
key <AB04> { [ v, V, NoSymbol, NoSymbol,
leftdoublequotemark, leftsinglequotemark ] };
key <AB05> { [ b, B, NoSymbol, NoSymbol,
rightdoublequotemark, rightsinglequotemark ] };
key <AB06> { [ n, N, NoSymbol, NoSymbol,
U0149, U266A ] };
key <AB07> { [ m, M, mu, NoSymbol,
mu, masculine ] };
key <AB08> { [ comma, apostrophe, less, NoSymbol,
Greek_horizbar, multiply ] };
key <AB09> { [ period, quotedbl, greater, NoSymbol,
periodcentered, division ] };
key <AB10> { [ eacute, Eacute, dead_acute, NoSymbol,
NoSymbol, dead_abovedot ] };
include "nbsp(level3s)"
modifier_map Control{ Control_L };
include "level3(ralt_switch)"
include "level5(rctrl_switch)"
};
// OLPC Section
xkb_symbols "olpc" {
include "ca(fr)"
key <AE02> { [ 2, quotedbl, ograve, Ograve ] };
key <AE03> { [ 3, slash, at, VoidSymbol ] };
key <AD03> { [ e, E, EuroSign, VoidSymbol] };
key <AB09> { [ period, period, 0x1002010 ] };
key <I219> { [ guillemotleft, guillemotright, degree, VoidSymbol ] };
};
partial alphanumeric_keys
xkb_symbols "eng" {
include "us(basic)"
name[Group1] = "English (Canada)";
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "kut" {
// Ejective U0313 and acute accents are taken from shs layout.
include "ca(shs)"
name[Group1]= "Kutenai";
// Alveolar Click
key <AD05> { [ t, T,U01C2 ,U01C2 ] };
//Cent sign
key <AB03> { [ c, C,U00A2,U00A2 ] };
//Mid dot
key <AB09> { [ period, greater,U00B7 ] };
//Glottal stop
key <AB10> { [ slash, question, U0294 ] };
//COMBINING COMMA ABOVE RIGHT
key <AC11> { [ apostrophe, quotedbl, U0315,U0315 ] };
//MODIFIER LETTER RIGHT HALF RING
key <AC10> { [ semicolon, colon,U02BE,U02BE ] };
};
// Secwepemctsin keyboard for X11
// written by Neskie Manuel <neskiem@gmail.com>
partial alphanumeric_keys
xkb_symbols "shs" {
include "us"
name[Group1]= "Secwepemctsin";
// Using a "dead key" to get a COMBINING COMMA ABOVE
// for ejectives on q, l, t, s, m, g, k, p, w, y, r.
// The Compose key is used for the other acutes and grave.
key <AB08> { [ comma, less, U0313 ] };
key <AC01> { [ a, A, aacute, Aacute ] };
key <AD03> { [ e, E, eacute, Eacute ] };
key <AD07> { [ u, U, uacute, Uacute ] };
key <AD08> { [ i, I, iacute, Iacute ] };
key <AD09> { [ o, O, oacute, Oacute ] };
include "level3(ralt_switch)"
include "compose(rctrl)"
};
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/ca(sun_type6)"
};

View File

@ -0,0 +1,185 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
// This layout conforms to a new Czech compromise standard
// designed to satisfy most Unix, Windows and Mac users.
// 2001 by Kamil Toman <ktoman@email.cz>
include "latin"
name[Group1]= "Czech";
key <TLDE> { [ semicolon, dead_abovering, grave, asciitilde ] };
key <AE01> { [ plus, 1, exclam, dead_tilde ] };
key <AE02> { [ ecaron, 2, at, dead_caron ] };
key <AE03> { [ scaron, 3, numbersign, dead_circumflex ] };
key <AE04> { [ ccaron, 4, dollar, dead_breve ] };
key <AE05> { [ rcaron, 5, percent, dead_abovering]};
key <AE06> { [ zcaron, 6, asciicircum, dead_ogonek ] };
key <AE07> { [ yacute, 7, ampersand, dead_grave ] };
key <AE08> { [ aacute, 8, asterisk, dead_abovedot] };
key <AE09> { [ iacute, 9, braceleft, dead_acute ] };
key <AE10> { [ eacute, 0, braceright, dead_doubleacute ] };
key <AE11> { [ equal, percent, NoSymbol, dead_diaeresis]};
key <AE12> { [dead_acute, dead_caron, dead_macron, dead_cedilla ] };
key <AD01> { [ q, Q, backslash, NoSymbol ] };
key <AD02> { [ w, W, bar, Nosymbol ] };
key <AD03> { [ e, E, EuroSign, NoSymbol ] };
key <AD04> { [ r, R, NoSymbol, NoSymbol ] };
key <AD05> { [ t, T, NoSymbol, NoSymbol ] };
key <AD06> { [ z, Z, NoSymbol, NoSymbol ] };
key <AD07> { [ u, U, NoSymbol, NoSymbol ] };
key <AD08> { [ i, I, NoSymbol, NoSymbol ] };
key <AD09> { [ o, O, NoSymbol, NoSymbol ] };
key <AD10> { [ p, P, NoSymbol, NoSymbol ] };
key <AD11> { [ uacute, slash, bracketleft, division ] };
key <AD12> { [parenright, parenleft, bracketright, multiply ] };
key <AC01> { [ a, A, asciitilde, NoSymbol ] };
key <AC02> { [ s, S, dstroke, NoSymbol ] };
key <AC03> { [ d, D, Dstroke, NoSymbol ] };
key <AC04> { [ f, F, bracketleft, NoSymbol ] };
key <AC05> { [ g, G, bracketright, NoSymbol ] };
key <AC06> { [ h, H, grave, NoSymbol ] };
key <AC07> { [ j, J, apostrophe, NoSymbol ] };
key <AC08> { [ k, K, lstroke, NoSymbol ] };
key <AC09> { [ l, L, Lstroke, NoSymbol ] };
key <AC10> { [ uring, quotedbl, dollar, NoSymbol ] };
key <AC11> { [ section, exclam, apostrophe, ssharp ] };
key <AC12> { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] };
key <BKSL> { [dead_diaeresis, apostrophe, backslash, bar ] };
key <LSGT> { [ backslash, bar, slash, NoSymbol ] };
key <AB01> { [ y, Y, degree, NoSymbol ] };
key <AB02> { [ x, X, numbersign, Nosymbol ] };
key <AB03> { [ c, C, ampersand, NoSymbol ] };
key <AB04> { [ v, V, at, NoSymbol ] };
key <AB05> { [ b, B, braceleft, NoSymbol ] };
key <AB06> { [ n, N, braceright, NoSymbol ] };
key <AB07> { [ m, M, asciicircum, NoSymbol ] };
key <AB08> { [ comma, question, less, NoSymbol ] };
key <AB09> { [ period, colon, greater, NoSymbol ] };
key <AB10> { [ minus, underscore, asterisk, NoSymbol ] };
key <SPCE> { [ space, space, space, space ] };
include "level3(ralt_switch)"
};
xkb_symbols "bksl" {
// Use <BKSL> instead of <LSGT> (useful for keyboards without <LSGT> key).
include "cz(basic)"
name[Group1]= "Czech (with <\|> key)";
key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
};
partial alphanumeric_keys
xkb_symbols "qwerty" {
// This layout represents the actual Czech keyboards;
// it complies with the symbols printed on the keys.
// 2011 by Lukáš Mojžíš <lmojzis@grenames.cz>
include "cz(basic)"
name[Group1]= "Czech (qwerty)";
key <AB01> { [ z, Z, degree, NoSymbol ] };
key <AC10> { [ uring, quotedbl, semicolon, colon ] };
key <AC11> { [ section, exclam, apostrophe, ssharp ] };
key <AD06> { [ y, Y, NoSymbol, NoSymbol ] };
key <AD11> { [ uacute, slash, bracketleft, braceleft ] };
key <AD12> { [parenright, parenleft, bracketright, braceright ] };
key <AE09> { [ iacute, 9, parenleft, dead_acute ] };
key <AE10> { [ eacute, 0, parenright, dead_doubleacute ] };
};
xkb_symbols "qwerty_bksl" {
// Use <BKSL> instead of <LSGT> (useful for keyboards without <LSGT> key).
include "cz(qwerty)"
name[Group1]= "Czech (qwerty, extended Backslash)";
key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
};
partial alphanumeric_keys alternate_group
xkb_symbols "ucw" {
// This layout is usually used as the second group,
// it contains accented characters only, no 'latin' set.
// 2008 by Milan Vancura <mvancura@suse.cz>
name[Group1]= "Czech (UCW layout, accented letters only)";
key <AB01> { [zcaron, Zcaron ] };
key <AB02> { [ssharp ] };
key <AB03> { [ccaron, Ccaron ] };
key <AB04> { [ccedilla, Ccedilla ] };
key <AB05> { [ntilde, Ntilde ] };
key <AB06> { [ncaron, Ncaron ] };
key <AB07> { [lacute, Lacute ] };
key <AC01> { [aacute, Aacute ] };
key <AC02> { [scaron, Scaron ] };
key <AC03> { [dcaron, Dcaron ] };
key <AC04> { [ediaeresis, Ediaeresis ] };
key <AC05> { [racute, Racute ] };
key <AC06> { [uacute, Uacute ] };
key <AC07> { [udiaeresis, Udiaeresis ] };
key <AC08> { [ocircumflex, Ocircumflex ] };
key <AC09> { [lcaron, Lcaron ] };
key <AD01> { [adiaeresis, Adiaeresis ] };
key <AD02> { [ecaron, Ecaron ] };
key <AD03> { [eacute, Eacute ] };
key <AD04> { [rcaron, Rcaron ] };
key <AD05> { [tcaron, Tcaron ] };
key <AD06> { [yacute, Yacute ] };
key <AD07> { [uring, Uring ] };
key <AD08> { [iacute, Iacute ] };
key <AD09> { [oacute, Oacute ] };
key <AD10> { [odiaeresis, Odiaeresis ] };
};
partial alphanumeric_keys
xkb_symbols "dvorak-ucw" {
// US Dvorak layout extended with UCW,
// AltGr produces accented characters.
include "us(dvorak)"
name[Group1]= "Czech (US Dvorak with CZ UCW support)";
key <AB03> { [ j, J, eacute, Eacute ] };
key <AB04> { [ k, K, uacute, Uacute ] };
key <AB10> { [ z, Z, zcaron, Zcaron ] };
key <AC01> { [ a, A, aacute, Aacute ] };
key <AC02> { [ o, O, oacute, Oacute ] };
key <AC03> { [ e, E, ecaron, Ecaron ] };
key <AC04> { [ u, U, uring, Uring ] };
key <AC05> { [ i, I, iacute, Iacute ] };
key <AC06> { [ d, D, dcaron, Dcaron ] };
key <AC08> { [ t, T, tcaron, Tcaron ] };
key <AC09> { [ n, N, ncaron, Ncaron ] };
key <AC10> { [ s, S, scaron, Scaron ] };
key <AD05> { [ y, Y, yacute, Yacute ] };
key <AD08> { [ c, C, ccaron, Ccaron ] };
key <AD09> { [ r, R, rcaron, Rcaron ] };
include "level3(ralt_switch)"
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/cz(sun_type6)"
};

View File

@ -0,0 +1,806 @@
// based on a keyboard map from an 'xkb/symbols/de' file
default
xkb_symbols "basic" {
include "latin(type4)"
name[Group1]="German";
key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
key <AE03> { [ 3, section, threesuperior, sterling ] };
key <AE04> { [ 4, dollar, onequarter, currency ] };
key <AE11> {type[Group1]="FOUR_LEVEL_PLUS_LOCK", symbols[Group1]=
[ssharp, question, backslash, questiondown, 0x1001E9E ]};
// The unicode capital letter sharp s U+1E9E is transformed to "SS"
// to match the rules for capitalizing sharp s in german.
// If the capital sharp s is needed, delete the line
// starting with <U1E9C> from /usr/share/X11/locale/iso8859-15/Compose.
// If both doubled S and capital sharp s are needed, use 0x1001E9E
// for capital sharp s and some free unicode codepoint like 0x1001E9C
// for doubled S. Don`t forget to change this in the Compose file, too.
key <AE12> { [dead_acute, dead_grave, dead_cedilla, dead_ogonek ] };
key <AD03> { [ e, E, EuroSign, EuroSign ] };
key <AD06> { [ z, Z, leftarrow, yen ] };
key <AD11> { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] };
key <AD12> { [ plus, asterisk, asciitilde, macron ] };
key <AC02> { [ s, S, U017F, U1E9E ] };
key <AC07> { [ j, J, dead_belowdot, dead_abovedot ] };
key <AC10> { [odiaeresis, Odiaeresis, dead_doubleacute, dead_belowdot ] };
key <AC11> { [adiaeresis, Adiaeresis, dead_circumflex, dead_caron ] };
key <TLDE> { [dead_circumflex, degree, U2032, U2033 ] };
key <BKSL> { [numbersign, apostrophe, rightsinglequotemark, dead_breve ] };
key <AB01> { [ y, Y, guillemotright, U203A ] };
key <AB02> { [ x, X, guillemotleft, U2039 ] };
key <AB04> { [ v, V, doublelowquotemark, singlelowquotemark ] };
key <AB05> { [ b, B, leftdoublequotemark, leftsinglequotemark ] };
key <AB06> { [ n, N, rightdoublequotemark, rightsinglequotemark ] };
key <AB08> { [ comma, semicolon, periodcentered, multiply ] };
key <AB09> { [ period, colon, U2026, division ] };
key <AB10> { [ minus, underscore, endash, emdash ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "legacy" {
// previous standard German layout with tilde as dead key
include "de(basic)"
name[Group1]="German (legacy)";
key <AD12> { [ plus, asterisk, dead_tilde, dead_macron ] };
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
// modify the basic German layout to not have any dead keys
include "de(basic)"
name[Group1]="German (eliminate dead keys)";
key <TLDE> { [asciicircum, degree, notsign, notsign ] };
key <AE12> { [ acute, grave, cedilla, cedilla ] };
key <AD11> { [udiaeresis, Udiaeresis, diaeresis, diaeresis ] };
key <AD12> { [ plus, asterisk, asciitilde, macron ] };
key <AC10> { [odiaeresis, Odiaeresis, doubleacute, doubleacute ] };
key <AC11> { [adiaeresis, Adiaeresis, asciicircum, asciicircum ] };
key <BKSL> { [numbersign, apostrophe, grave, grave ] };
};
partial alphanumeric_keys
xkb_symbols "deadgraveacute" {
// modify the basic German layout to have only acute and grave
// as dead keys (tilde and circumflex are needed as spacing characters
// in many programming languages)
include "de(basic)"
name[Group1]="German (dead grave acute)";
key <TLDE> { [asciicircum, degree, notsign, notsign ] };
key <AD12> { [ plus, asterisk, asciitilde, dead_macron ] };
key <BKSL> { [numbersign, apostrophe, grave, grave ] };
};
partial alphanumeric_keys
xkb_symbols "deadacute" {
// modify the basic German layout to have only acute as
// dead keys (ASCII grave, tilde and circumflex are needed as
// spacing characters in many programming languages and text formatters)
include "de(deadgraveacute)"
name[Group1]="German (dead acute)";
key <AE12> { [dead_acute, grave, dead_cedilla, dead_ogonek ] };
key <BKSL> { [numbersign, apostrophe, dead_grave, dead_grave ] };
};
partial alphanumeric_keys
xkb_symbols "T3" {
name[Group1]="German (T3)";
key.type[Group1] = "EIGHT_LEVEL";
key <TLDE> { [ dead_circumflex, degree, multiply, NoSymbol, U204A, hyphen, bar, NoSymbol ] };
key <AE01> { [ 1, exclam, rightsinglequotemark, NoSymbol, onesuperior, exclamdown, U02B9, NoSymbol ] };
key <AE02> { [ 2, quotedbl, twosuperior, NoSymbol, twosuperior, currency, U02BA, NoSymbol ] };
key <AE03> { [ 3, section, threesuperior, NoSymbol, threesuperior, sterling, U02BF, NoSymbol ] };
key <AE04> { [ 4, dollar, emdash, NoSymbol, onequarter, 0x20AC, U02BE, NoSymbol ] };
key <AE05> { [ 5, percent, exclamdown, NoSymbol, onehalf, uparrow, U02C1, NoSymbol ] };
key <AE06> { [ 6, ampersand, questiondown, NoSymbol, threequarters, downarrow, U02C0, NoSymbol ] };
key <AE07> { [ 7, slash, braceleft, NoSymbol, oneeighth, leftarrow, braceleft, NoSymbol ] };
key <AE08> { [ 8, parenleft, bracketleft, NoSymbol, threeeighths, rightarrow, braceright, NoSymbol ] };
key <AE09> { [ 9, parenright, bracketright, NoSymbol, fiveeighths, plusminus, bracketleft, NoSymbol ] };
key <AE10> { [ 0, equal, braceright, NoSymbol, seveneighths, trademark, bracketright, NoSymbol ] };
key <AE11> { [ ssharp, question, backslash, NoSymbol, backslash, questiondown, U02BB, NoSymbol ] };
key <AE12> { [ dead_acute, dead_grave, dead_abovedot, NoSymbol, dead_cedilla, dead_ogonek, notsign, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC";
key <AD01> { [ q, Q, at, NoSymbol, U0242, U0241, U030D, NoSymbol ] };
key <AD02> { [ w, W, dead_caron, NoSymbol, U02B7, U2126, dead_abovedot, NoSymbol ] };
key <AD03> { [ e, E, EuroSign, NoSymbol, oe, OE, dead_breve, NoSymbol ] };
key <AD04> { [ r, R, dead_diaeresis, NoSymbol, paragraph, registered, dead_circumflex, NoSymbol ] };
key <AD05> { [ t, T, dead_macron, NoSymbol, UA78C, UA78B, dead_diaeresis, NoSymbol ] };
key <AD06> { [ z, Z, dead_doubleacute, NoSymbol, U027C, yen, dead_invertedbreve, NoSymbol ] };
key <AD07> { [ u, U, dead_breve, NoSymbol, U0223, U0222, dead_caron, NoSymbol ] };
key <AD08> { [ i, I, dead_tilde, NoSymbol, idotless, U214D, dead_abovecomma, NoSymbol ] };
key <AD09> { [ o, O, dead_abovering, NoSymbol, oslash, Oslash, dead_horn, NoSymbol ] };
key <AD10> { [ p, P, dead_hook, NoSymbol, thorn, THORN, dead_hook, NoSymbol ] };
key <AD11> { [ udiaeresis, Udiaeresis, dead_horn, NoSymbol, U017F, dead_abovering, dead_grave, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL";
key <AD12> { [ plus, asterisk, asciitilde, NoSymbol, dead_tilde, dead_macron, at, NoSymbol ] };
key.type[Group1] = "ONE_LEVEL";
key <CAPS> { [ Caps_Lock ] };
key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC";
key <AC01> { [ a, A, lessthanequal, NoSymbol, ae, AE, U0329, NoSymbol ] };
key <AC02> { [ s, S, greaterthanequal, NoSymbol, ssharp, section, dead_belowdot, NoSymbol ] };
key <AC03> { [ d, D, U2300, NoSymbol, eth, ETH, dead_belowbreve, NoSymbol ] };
key <AC04> { [ f, F, minutes, NoSymbol, U0294, ordfeminine, dead_belowcircumflex, NoSymbol ] };
key <AC05> { [ g, G, seconds, NoSymbol, eng, ENG, dead_belowmacron, NoSymbol ] };
key <AC06> { [ h, H, U1E9E, NoSymbol, U0272, U019D, U0332, NoSymbol ] };
key <AC07> { [ j, J, dead_cedilla, NoSymbol, U0133, U0132, dead_belowring, NoSymbol ] };
key <AC08> { [ k, K, dead_belowcomma, NoSymbol, kra, dead_belowcomma, dead_stroke, NoSymbol ] };
key <AC09> { [ l, L, dead_ogonek, NoSymbol, lstroke, Lstroke, U0338, NoSymbol ] };
key <AC10> { [ odiaeresis, Odiaeresis, dead_belowdot, NoSymbol, dead_acute, dead_doubleacute, degree, NoSymbol ] };
key <AC11> { [ adiaeresis, Adiaeresis, dead_stroke, NoSymbol, U019B, U1E9E, minutes, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL";
key <BKSL> { [ numbersign, apostrophe, registered, NoSymbol, schwa, SCHWA, seconds, NoSymbol ] };
key <LSGT> { [ less, greater, bar, NoSymbol, U0149, brokenbar, U266A, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC";
key <AB01> { [ y, Y, U203A, NoSymbol, U0292, U01B7, guillemotleft, NoSymbol ] };
key <AB02> { [ x, X, guillemotright, NoSymbol, doublelowquotemark, singlelowquotemark, guillemotright, NoSymbol ] };
key <AB03> { [ c, C, copyright, NoSymbol, cent, copyright, Greek_horizbar, NoSymbol ] };
key <AB04> { [ v, V, guillemotleft, NoSymbol, leftdoublequotemark, leftsinglequotemark, U2039, NoSymbol ] };
key <AB05> { [ b, B, U2039, NoSymbol, rightdoublequotemark, rightsinglequotemark, U203A, NoSymbol ] };
key <AB06> { [ n, N, endash, NoSymbol, U019E, U0220, endash, NoSymbol ] };
key <AB07> { [ m, M, Greek_mu, NoSymbol, mu, masculine, emdash, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL";
key <AB08> { [ comma, semicolon, U02BB, NoSymbol, ellipsis, multiply, dollar, NoSymbol ] };
key <AB09> { [ period, colon, U200C, NoSymbol, periodcentered, division, numbersign, NoSymbol ] };
key <AB10> { [ minus, underscore, hyphen, NoSymbol, U0140, U013F, U2011, NoSymbol ] };
key <SPCE> { [ space, space, nobreakspace, NoSymbol, U202F, U200C, nobreakspace, NoSymbol ] };
include "kpdl(comma)"
include "level5(modifier_mapping)"
include "level3(modifier_mapping)"
key.type[Group1] = "THREE_LEVEL";
key <LFSH> { [ Shift_L, Shift_L, ISO_Level5_Latch ] };
key <RTSH> { [ Shift_R, Shift_R, ISO_Level5_Latch ] };
key <RALT> { [ ISO_Level3_Latch, ISO_Level5_Latch, ISO_Level5_Latch ] };
};
partial alphanumeric_keys
xkb_symbols "ro" {
// add romanian-specific letters to the basic German layout.
// Romanian symbols are accessible with combination of <AltGr> and
// 'a', 's', 't', 'i', 'ä (&auml)' (+<Shift> for capital letters).
// To view romanian-specific symbols, add "export LC_CTYPE=ro_RO"
// or "export LC_CTYPE=de_DE.utf8" to your .profile.
include "de(basic)"
name[Group1]="Romanian (Germany)";
key <AD05> { [ t, T, tcedilla, Tcedilla ] };
key <AD08> { [ i, I, icircumflex, Icircumflex ] };
key <AC01> { [ a, A, acircumflex, Acircumflex ] };
key <AC02> { [ s, S, scedilla, Scedilla ] };
key <AC11> { [ adiaeresis, Adiaeresis, abreve, Abreve ] };
};
partial alphanumeric_keys
xkb_symbols "ro_nodeadkeys" {
// add romanian-specific letters to the German nodeadkeys layout.
// Read the comment for de_ro !
include "de(nodeadkeys)"
name[Group1]="Romanian (Germany, eliminate dead keys)";
key <AD05> { [ t, T, tcedilla, Tcedilla ] };
key <AD08> { [ i, I, icircumflex, Icircumflex ] };
key <AC01> { [ a, A, acircumflex, Acircumflex ] };
key <AC02> { [ s, S, scedilla, Scedilla ] };
key <AC11> { [ adiaeresis, Adiaeresis, abreve, Abreve ] };
};
// German Dvorak keymap by Thorsten Staerk (www.staerk.de/thorsten)
// Have acute and grave as dead keys, tilde and circumflex alive as they are needed
// in many programming languages.
// to use this keymap, use a 105-key-keyboard and the command setxkbmap -model pc105 -layout dvorak -variant de
// source: http://www-lehre.informatik.uni-osnabrueck.de/~rfreund/dvorak.php
partial alphanumeric_keys
xkb_symbols "dvorak" {
include "us(dvorak)"
name[Group1]="German (Dvorak)";
key <TLDE> { [ asciicircum, degree ] };
key <AE01> { [ 1, exclam, onesuperior ] };
key <AE02> { [ 2, quotedbl, twosuperior ] };
key <AE03> { [ 3, section, threesuperior ] };
key <AE04> { [ 4, dollar, bar ] };
key <AE05> { [ 5, percent, bar ] };
key <AE06> { [ 6, ampersand, brokenbar ] };
key <AE07> { [ 7, slash, braceleft ] };
key <AE08> { [ 8, parenleft, bracketleft ] };
key <AE09> { [ 9, parenright, bracketright ] };
key <AE10> { [ 0, equal, braceright ] };
key <AE11> { [ plus, asterisk, asciitilde ] };
key <AE12> { [ less, greater, dead_grave ] };
key <AD01> { [ udiaeresis, Udiaeresis, at ] };
key <AD02> { [ comma, semicolon, dead_diaeresis ] };
key <AD03> { [ period, colon ] };
key <AD08> { [ c, C, copyright, Cacute ] };
key <AD09> { [ t, T, trademark ] };
key <AD10> { [ z, Z, zabovedot, Zabovedot ] };
key <AD11> { [ question, ssharp ] };
key <AD12> { [ slash, backslash, dead_acute ] };
key <AC01> { [ a, A, at, aogonek ] };
key <AC02> { [ o, O, oacute, Oacute ] };
key <AC03> { [ e, E, EuroSign, eogonek ] };
key <AC04> { [ i, I ] };
key <AC05> { [ u, U ] };
key <AC06> { [ h, H ] };
key <AC07> { [ d, D ] };
key <AC08> { [ r, R, registered ] };
key <AC09> { [ n, N, nacute, Nacute ] };
key <AC10> { [ s, S, sacute, Sacute] };
key <AC11> { [ l, L, lstroke, Lstroke ] };
key <AB01> { [ odiaeresis, Odiaeresis ] };
key <AB02> { [ q, Q, at ] };
key <AB07> { [ m, M, mu ] };
key <AB10> { [ numbersign, apostrophe ] };
key <BKSL> { [ minus, underscore, hyphen, diaeresis] };
key <LSGT> { [ adiaeresis, Adiaeresis, bar ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "Sundeadkeys" {
// For naming consistency
include "de(basic)"
};
partial alphanumeric_keys
xkb_symbols "sundeadkeys" {
// For naming consistency
include "de(Sundeadkeys)"
name[Group1]="German (Sun dead keys)";
};
// German Neo-Layout Version 2
// adopted 2004 by Hanno Behrens <Hanno.Behrens@gmx.de>
// inspired by Dvorak/de-ergo http://www.goebel-consult.de/de-ergo/
//
// Authors:
// Stephan Hilb <stephan at ehilb dot de>
// <lucky at zankt dot net>
// Benjamin Kellermann <Benjamin dot Kellermann at gmx dot Germany>
// Erik Streb <mail at erikstreb dot de>
// and many other contributors
//
// http://www.neo-layout.org
//
// $Revision$, $Date$
partial alphanumeric_keys modifier_keys keypad_keys
xkb_symbols "neo_base" {
// Levels in Neo jargon
// --------------------------------------------------------------
// Ebene 1: normal
// Ebene 2: Shift
// Ebene 3: Mod3
// Ebene 4: Mod4 (for marking something use Shift + Mod4)
// Ebene 5: Shift + Mod3
// Ebene 6: Mod3 + Mod4
// Compose (not a level): Mod3 + Tab
// Feststelltaste (Capslock): Shift + Shift
// Mod4-Lock: Mod4 + Mod4
// Mod4-Lock: Shift + Mod3 + Tab
// Legend
// ===============
// Levels in Xkbmap jargon to be found here in the definitions.
// These are the levels used, and Xorg's translations:
// --------------------------------------------------------------
// Xorg: Level1 Level2 Level3 Level4 Level5 Level6 Level7 Level8
// Neo: Ebene1 Ebene2 Ebene3 Ebene5 Ebene4 Pseudo-Ebene Ebene6 ???
// Keys (Neo): None Shift Mod3 Mod3 + Shift Mod4 Mod4 + Shift Mod3 + Mod4 Mod3 + Mod4 + Shift
// Alphanumeric-keys
// ===============
key.type[Group1] = "EIGHT_LEVEL";
// Tab as Multi_key (Compose)
// --------------------------------------------------------------
key <TAB> { [ Tab, ISO_Left_Tab, Multi_key, ISO_Level5_Lock, NoSymbol, NoSymbol, NoSymbol, ISO_Level5_Lock ] };
// Number row
// --------------------------------------------------------------
key <TLDE> { [ dead_circumflex, dead_caron, U21BB, U02DE, dead_abovedot, Pointer_EnableKeys, dead_belowdot, NoSymbol ] };
key <AE01> { [ 1, degree, onesuperior, onesubscript, ordfeminine, NoSymbol, notsign, NoSymbol ] };
key <AE02> { [ 2, section, twosuperior, twosubscript, masculine, NoSymbol, logicalor, NoSymbol ] };
key <AE03> { [ 3, U2113, threesuperior, threesubscript, numerosign, NoSymbol, logicaland, NoSymbol ] };
key <AE04> { [ 4, guillemotright, U203A, femalesymbol, NoSymbol, NoSymbol, U22A5, NoSymbol ] };
key <AE05> { [ 5, guillemotleft, U2039, malesymbol, periodcentered, NoSymbol, U2221, NoSymbol ] };
key <AE06> { [ 6, dollar, cent, U26A5, sterling, NoSymbol, U2225, NoSymbol ] };
key <AE07> { [ 7, EuroSign, yen, U03F0, currency, NoSymbol, rightarrow, NoSymbol ] };
key <AE08> { [ 8, doublelowquotemark, singlelowquotemark, U27E8, Tab, ISO_Left_Tab, U221E, NoSymbol ] };
key <AE09> { [ 9, leftdoublequotemark, leftsinglequotemark, U27E9, KP_Divide, KP_Divide, variation, NoSymbol ] };
key <AE10> { [ 0, rightdoublequotemark, rightsinglequotemark, zerosubscript, KP_Multiply, KP_Multiply, emptyset, NoSymbol ] };
key <AE11> { [ minus, emdash, NoSymbol, U2011, KP_Subtract, KP_Subtract, hyphen, NoSymbol ] };
key <AE12> { [ dead_grave, dead_cedilla, dead_abovering, dead_dasia, dead_diaeresis, NoSymbol, dead_macron, NoSymbol ] };
// Top row
// --------------------------------------------------------------
key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
key <AD01> { [ x, X, ellipsis, Greek_xi, Prior, Prior, Greek_XI, NoSymbol ] };
key <AD02> { [ v, V, underscore, NoSymbol, BackSpace, BackSpace, radical, NoSymbol ] };
key <AD03> { [ l, L, bracketleft, Greek_lambda, Up, Up, Greek_LAMBDA, NoSymbol ] };
key <AD04> { [ c, C, bracketright, Greek_chi, Delete, Delete, U2102, NoSymbol ] };
key <AD05> { [ w, W, asciicircum, Greek_omega, Next, Next, Greek_OMEGA, NoSymbol ] };
key <AD06> { [ k, K, exclam, Greek_kappa, exclamdown, NoSymbol, multiply, NoSymbol ] };
key <AD07> { [ h, H, less, Greek_psi, KP_7, KP_7, Greek_PSI, NoSymbol ] };
key <AD08> { [ g, G, greater, Greek_gamma, KP_8, KP_8, Greek_GAMMA, NoSymbol ] };
key <AD09> { [ f, F, equal, Greek_phi, KP_9, KP_9, Greek_PHI, NoSymbol ] };
key <AD10> { [ q, Q, ampersand, U03D5, KP_Add, KP_Add, U211A, NoSymbol ] };
key <AD11> { [ ssharp, U1E9E, U017F, Greek_finalsmallsigma, U2212, NoSymbol, jot, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL";
key <AD12> { [ dead_acute, dead_tilde, dead_stroke, dead_psili, dead_doubleacute, NoSymbol, dead_breve, NoSymbol ] };
// Middle row
// --------------------------------------------------------------
key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
key <AC01> { [ u, U, backslash, NoSymbol, Home, Home, includedin, NoSymbol ] };
key <AC02> { [ i, I, slash, Greek_iota, Left, Left, integral, NoSymbol ] };
key <AC03> { [ a, A, braceleft, Greek_alpha, Down, Down, U2200, NoSymbol ] };
key <AC04> { [ e, E, braceright, Greek_epsilon, Right, Right, U2203, NoSymbol ] };
key <AC05> { [ o, O, asterisk, Greek_omicron, End, End, elementof, NoSymbol ] };
key <AC06> { [ s, S, question, Greek_sigma, questiondown, NoSymbol, Greek_SIGMA, NoSymbol ] };
key <AC07> { [ n, N, parenleft, Greek_nu, KP_4, KP_4, U2115, NoSymbol ] };
key <AC08> { [ r, R, parenright, Greek_rho, KP_5, KP_5, U211D, NoSymbol ] };
key <AC09> { [ t, T, minus, Greek_tau, KP_6, KP_6, partialderivative, NoSymbol ] };
key <AC10> { [ d, D, colon, Greek_delta, KP_Separator, comma, Greek_DELTA, NoSymbol ] };
key <AC11> { [ y, Y, at, Greek_upsilon, period, KP_Decimal, nabla, NoSymbol ] };
// Bottom row
// --------------------------------------------------------------
key <AB01> { [ udiaeresis, Udiaeresis, numbersign, NoSymbol, Escape, Escape, union, NoSymbol ] };
key <AB02> { [ odiaeresis, Odiaeresis, dollar, U03F5, Tab, Tab, intersection, NoSymbol ] };
key <AB03> { [ adiaeresis, Adiaeresis, bar, Greek_eta, Insert, Insert, U2135, NoSymbol ] };
key <AB04> { [ p, P, asciitilde, Greek_pi, Return, Return, Greek_PI, NoSymbol ] };
key <AB05> { [ z, Z, grave, Greek_zeta, Undo, Redo, U2124, NoSymbol ] };
key <AB06> { [ b, B, plus, Greek_beta, colon, NoSymbol, U21D0, NoSymbol ] };
key <AB07> { [ m, M, percent, Greek_mu, KP_1, KP_1, ifonlyif, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL";
key <AB08> { [ comma, endash, quotedbl, U03F1, KP_2, KP_2, U21D2, NoSymbol ] };
key <AB09> { [ period, enfilledcircbullet, apostrophe, U03D1, KP_3, KP_3, U21A6, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
key <AB10> { [ j, J, semicolon, Greek_theta, semicolon, NoSymbol, Greek_THETA, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL";
// Space key
// --------------------------------------------------------------
key <SPCE> { [ space, space, space, nobreakspace, KP_0, KP_0, U202F, NoSymbol ] };
// Keypad-keys
// ===============
// The former Numlock key:
key <NMLK> { [ Tab, ISO_Left_Tab, equal, approxeq, notequal, Pointer_EnableKeys, identical, NoSymbol ] };
// Topmost row
// --------------------------------------------------------------
key <KPDV> { [ KP_Divide, KP_Divide, division, U2300, U2215, NoSymbol, U2223, NoSymbol ] };
key <KPMU> { [ KP_Multiply, KP_Multiply, U22C5, U2299, multiply, NoSymbol, U2297, NoSymbol ] };
key <KPSU> { [ KP_Subtract, KP_Subtract, U2212, U2296, U2216, NoSymbol, U2238, NoSymbol ] };
// Top row
// --------------------------------------------------------------
key <KP7> { [ KP_7, U2714, U2195, U226A, KP_Home, KP_Home, upstile, NoSymbol ] };
key <KP8> { [ KP_8, U2718, uparrow, intersection, KP_Up, KP_Up, U22C2, NoSymbol ] };
key <KP9> { [ KP_9, dagger, U20D7, U226B, KP_Prior, KP_Prior, U2309, NoSymbol ] };
key <KPAD> { [ KP_Add, KP_Add, plusminus, U2295, U2213, NoSymbol, U2214, NoSymbol ] };
// Middle row
// --------------------------------------------------------------
key <KP4> { [ KP_4, club, leftarrow, includedin, KP_Left, KP_Left, U2286, NoSymbol ] };
key <KP5> { [ KP_5, EuroSign, colon, U22B6, KP_Begin, KP_Begin, U22B7, NoSymbol ] };
key <KP6> { [ KP_6, U2023, rightarrow, includes, KP_Right, KP_Right, U2287, NoSymbol ] };
// Bottom row
// --------------------------------------------------------------
key <KP1> { [ KP_1, diamond, U2194, lessthanequal, KP_End, KP_End, downstile, NoSymbol ] };
key <KP2> { [ KP_2, heart, downarrow, union, KP_Down, KP_Down, U22C3, NoSymbol ] };
key <KP3> { [ KP_3, U2660, U21CC, greaterthanequal, KP_Next, KP_Next, U230B, NoSymbol ] };
key <KPEN> { [ KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, NoSymbol ] };
key <KPEQ> { [ KP_Equal, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
// Bottommost row
// --------------------------------------------------------------
key <KP0> { [ KP_0, U2423, percent, U2030, KP_Insert, KP_Insert, U25A1, NoSymbol ] };
key <KPDL> { [ KP_Separator, period, comma, minutes, KP_Delete, KP_Delete, seconds, NoSymbol ] };
};
partial alphanumeric_keys modifier_keys keypad_keys
xkb_symbols "neo" {
include "de(neo_base)"
name[Group1]= "German (Neo 2)";
include "shift(both_capslock)"
include "level3(caps_switch)"
include "level3(bksl_switch)"
include "level5(lsgt_switch)"
include "level5(ralt_switch)"
};
// Copied from macintosh_vndr/de
// olh@suse.de very close to MacOS map
partial alphanumeric_keys
xkb_symbols "mac" {
include "de"
name[Group1]= "German (Macintosh)";
key <AE01> { [ 1, exclam, exclamdown, at ] };
key <AE05> { [ 5, percent, bracketleft ] };
key <AE06> { [ 6, ampersand, bracketright ] };
key <AE07> { [ 7, slash, bar, backslash ] };
key <AE08> { [ 8, parenleft, braceleft, asciitilde ] };
key <AE09> { [ 9, parenright, braceright ] };
key <AD01> { [ q, Q, guillemotleft, guillemotright ] };
key <AD04> { [ r, R, registered ] };
key <AD07> { [ u, U, diaeresis, Aacute ] };
key <AD08> { [ i, I, slash, Ucircumflex ] };
key <AD11> { [ udiaeresis, Udiaeresis, periodcentered, degree ] };
key <AD12> { [ plus, asterisk, asciitilde ] };
key <AC01> { [ a, A, aring, Aring ] };
key <AC05> { [ g, G, copyright ] };
key <AC06> { [ h, H, ordfeminine ] };
key <AC09> { [ l, L, at ] };
key <AC10> { [ odiaeresis, Odiaeresis, dead_acute ] };
key <AB06> { [ n, N, asciitilde ] };
};
partial alphanumeric_keys
xkb_symbols "mac_nodeadkeys" {
// modify the standard German mac layout to not have any dead keys
include "de(mac)"
name[Group1]= "German (Macintosh, eliminate dead keys)";
key <TLDE> { [ asciicircum, degree, notsign ] };
key <AE04> { [ 4, dollar, onequarter, currency ] };
key <AE12> { [ acute, grave, cedilla ] };
key <AD11> { [ udiaeresis, Udiaeresis, diaeresis ] };
key <AD12> { [ plus, asterisk, asciitilde, macron ] };
key <AC10> { [ odiaeresis, Odiaeresis, acute ] };
key <AC11> { [ adiaeresis, Adiaeresis, asciicircum ] };
key <BKSL> { [ numbersign, apostrophe, grave ] };
};
partial alphanumeric_keys
xkb_symbols "dsb"
{
include "latin(basic)"
name[Group1] = "Lower Sorbian";
key <AB01> { [ z, Z, zcaron, Zcaron ] };
key <AB02> { [ x, X, zacute, Zacute ] };
key <AB03> { [ c, C, cacute, Cacute ] };
key <AB04> { [ v, V, ccaron, Ccaron ] };
key <AB06> { [ n, N, nacute, Nacute ] };
key <AC02> { [ s, S, sacute, Sacute ] };
key <AC03> { [ d, D, scaron, Scaron ] };
key <AC04> { [ f, F ] };
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ e, E, ecaron, Ecaron ] };
key <AD04> { [ r, R, racute, Racute ] };
key <AD05> { [ t, T, U20B5, EuroSign ] };
key <AD09> { [ o, O, oacute, Oacute ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "dsb_qwertz"
{
include "latin(basic)"
name[Group1] = "Lower Sorbian (qwertz)";
key <AB01> { [ y, Y ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C, cacute, Cacute ] };
key <AB04> { [ v, V, ccaron, Ccaron ] };
key <AB06> { [ n, N, nacute, Nacute ] };
key <AC02> { [ s, S, sacute, Sacute ] };
key <AC03> { [ d, D, scaron, Scaron ] };
key <AC04> { [ f, F ] };
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ e, E, ecaron, Ecaron ] };
key <AD04> { [ r, R, racute, Racute ] };
key <AD05> { [ t, T, U20B5, EuroSign ] };
key <AD06> { [ z, Z, zcaron, Zcaron ] };
key <AD07> { [ u, U, zacute, Zacute ] };
key <AD09> { [ o, O, oacute, Oacute ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "qwerty" {
// This layout should work exactly as a de with the exception
// of 'Z' and 'Y' keys, which are in the qwerty style (ie. swapped).
// 2008 by Matej Košík <kosik@fiit.stuba.sk>
include "de(basic)"
name[Group1] = "German (qwerty)";
key <AB01> { [ z, Z, leftarrow, yen ] };
key <AD06> { [ y, Y, guillemotleft, less ] };
};
// layout for Russian letters on an german keyboard
// based on US-RU layout by Ivan Popov <pin@konvalo.org> 2005-07-17
// adopted for german layout by Alexey Fisher <bug-track@fisher-privat.net> 2010-08-19
partial alphanumeric_keys
xkb_symbols "ru" {
include "de(basic)"
name[Group1]= "Russian (Germany, phonetic)";
key.type[group1]="FOUR_LEVEL_ALPHABETIC";
key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
key <TLDE> { [ Cyrillic_io, Cyrillic_IO, asciitilde ] };
key <LatX> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
key <LatI> { [ Cyrillic_i, Cyrillic_I ] };
key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
key <LatH> { [ Cyrillic_ha, Cyrillic_HA ] };
key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
key <AC10> { [ Cyrillic_che, Cyrillic_CHE ] };
key <AD11> { [ Cyrillic_sha, Cyrillic_SHA ] };
key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA, plus, asterisk ] };
key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
key <LatV> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
key <AC11> { [ Cyrillic_e, Cyrillic_E ] };
key <BKSL> { [ Cyrillic_yu, Cyrillic_YU, numbersign, apostrophe ] };
key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "htcdream" {
include "inet(htcdream)"
name[Group1]= "German";
//second row
key <AD01> { [ q, Q, Tab, Tab ] };
key <AD02> { [ w, W, grave, grave ] };
key <AD03> { [ e, E, EuroSign, EuroSign ] };
key <AD04> { [ r, R, underscore, underscore ] };
key <AD05> { [ t, T, sterling, sterling] };
key <AD06> { [ z, Z, division, division ] };
key <AD07> { [ u, U, udiaeresis, udiaeresis ] };
key <AD08> { [ i, I, minus, minus ] };
key <AD09> { [ o, O, odiaeresis, odiaeresis ] };
key <AD10> { [ p, P, equal, equal ] };
//third row
key <AC01> { [ a, A, adiaeresis, adiaeresis ] };
key <AC02> { [ s, S, ssharp, ssharp] };
key <AC03> { [ d ,D, backslash, backslash ] };
key <AC04> { [ f, F, braceleft, braceleft ] };
key <AC05> { [ g, G, braceright, braceright ] };
key <AC06> { [ h, H, multiply, multiply ] };
key <AC07> { [ j, J, colon, colon ] };
key <AC08> { [ k, K, plus, plus ] };
key <AC09> { [ l, L, apostrophe, apostrophe ] };
//forth row
key <AB01> { [ y, Y, bar, bar ] };
key <AB02> { [ x, X, bracketleft, bracketleft ] };
key <AB03> { [ c, C, bracketright, bracketright ] };
key <AB04> { [ v, V, less, less ] };
key <AB05> { [ b, B, greater, greater ] };
key <AB06> { [ n, N, semicolon, semicolon ] };
key <AB07> { [ m, M, quotedbl, quotedbl ] };
key <AB08> { [ comma, comma, question, question ] };
//fifth row
key <FK15> { [ at, at, asciitilde, asciitilde ] };
include "level3(alt_switch)"
};
partial alphanumeric_keys
xkb_symbols "tr" {
// add turkish-specific letters to the basic German layout.
// Turkish symbols are accessible with combination of <AltGr> and
// 'i', 's', 'g', 'c'' (+<Shift> for capital letters).
include "de(basic)"
name[Group1]="Turkish (Germany)";
key <AD08> { [ i, I, U0131, U0130 ] };
key <AC02> { [ s, S, U015F, U015E ] };
key <AC05> { [ g, G, U011F, U011E ] };
key <AB03> { [ c, C, U0E7, U0C7 ] };
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "us" {
include "us"
name[Group1]="German (US keyboard with German letters)";
key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
key <AC02> { [ s, S, ssharp, ssharp ] };
key <AC10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
key <AC11> { [ apostrophe, quotedbl, adiaeresis, Adiaeresis ] };
key <AD03> { [ e, E, EuroSign, EuroSign ] };
key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
key <AD09> { [ o, O, odiaeresis, Odiaeresis ] };
key <AD11> { [ bracketleft, braceleft, udiaeresis, Udiaeresis ] };
key <AE03> { [ 3, numbersign, section, section ] };
key <AE11> { [ minus, underscore, ssharp, question ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "hu" {
// modify the basic German layout to not have any dead keys and add Hungarian letters
include "de(basic)"
name[Group1]="German (with Hungarian letters and no dead keys)";
key <AB01> { [ y, Y, guillemotleft, less ] };
key <AC10> { [odiaeresis, Odiaeresis, eacute, Eacute ] };
key <AC11> { [adiaeresis, Adiaeresis, aacute, Aacute] };
key <AD03> { [ e, E, EuroSign, EuroSign ] };
key <AD06> { [ z, Z, leftarrow, yen ] };
key <AD07> { [ u, U, uacute, Uacute ] };
key <AD08> { [ i, I, iacute, Iacute ] };
key <AD09> { [ o, O, odoubleacute,Odoubleacute ] };
key <AD11> { [udiaeresis, Udiaeresis, udoubleacute,Udoubleacute ] };
key <AD12> { [ plus, asterisk, asciitilde, macron ] };
key <AE12> { [ acute, grave, oacute, Oacute ] };
key <BKSL> { [numbersign, apostrophe, grave, grave ] };
key <TLDE> { [asciicircum, degree, notsign, notsign ] };
};
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/de(sun_type6)"
};
partial alphanumeric_keys
xkb_symbols "adnw_base" {
include "de(neo_base)"
key.type[Group1] = "EIGHT_LEVEL";
key <AD04> { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] };
key <AB04> { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
key <AD01> { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] };
key <AD02> { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] };
key <AD03> { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] };
key <AD05> { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] };
key <AD06> { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] };
key <AD07> { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] };
key <AD08> { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] };
key <AD09> { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] };
key <AD10> { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] };
key <AD11> { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] };
key <AC01> { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] };
key <AC02> { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] };
key <AC03> { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] };
key <AC04> { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] };
key <AC05> { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] };
key <AC06> { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] };
key <AC07> { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] };
key <AC08> { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] };
key <AC09> { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] };
key <AC10> { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] };
key <AC11> { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] };
key <AB01> { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] };
key <AB02> { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] };
key <AB03> { [ odiaeresis, odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] };
key <AB05> { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] };
key <AB06> { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] };
key <AB07> { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] };
key <AB08> { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] };
key <AB09> { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] };
key <AB10> { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] };
};
partial alphanumeric_keys modifier_keys keypad_keys
xkb_symbols "adnw" {
include "de(adnw_base)"
name[Group1]= "German (Aus der Neo-Welt)";
include "shift(both_capslock)"
include "level3(caps_switch)"
include "level3(bksl_switch)"
include "level5(lsgt_switch)"
include "level5(ralt_switch)"
};

View File

@ -0,0 +1,88 @@
// based on a keyboard map from an 'xkb/symbols/dk' file
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type2)"
name[Group1]="Danish";
key <AE11> { [ plus, question, plusminus, questiondown ] };
key <AE12> { [dead_acute, dead_grave, bar, brokenbar ] };
key <AC10> { [ ae, AE, dead_acute, dead_doubleacute ] };
key <AC11> { [ oslash, Ooblique, dead_circumflex, dead_caron ] };
key <TLDE> { [ onehalf, section, threequarters, paragraph ] };
key <BKSL> { [apostrophe, asterisk, dead_doubleacute, multiply ] };
key <LSGT> { [ less, greater, backslash, notsign ] };
include "kpdl(comma)"
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "dk(basic)"
name[Group1]="Danish (eliminate dead keys)";
key <AE12> { [ acute, grave, bar, ogonek ] };
key <AD11> { [ aring, Aring, diaeresis, degree ] };
key <AD12> { [ diaeresis, asciicircum, asciitilde, macron ] };
key <AC10> { [ ae, AE, acute, doubleacute ] };
key <AC11> { [ oslash, Ooblique, asciicircum, caron ] };
key <BKSL> { [apostrophe, asterisk, doubleacute, multiply ] };
key <AB08> { [ comma, semicolon, cedilla, ogonek ] };
key <AB09> { [ period, colon, periodcentered, abovedot ] };
};
partial alphanumeric_keys
xkb_symbols "winkeys" {
include "dk(basic)"
name[Group1] = "Danish (Winkeys)";
include "eurosign(5)"
};
// Copied from macintosh_vndr/dk
partial alphanumeric_keys
xkb_symbols "mac" {
include "dk"
name[Group1]= "Danish (Macintosh)";
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
key <AB10> { [ minus, underscore, hyphen, macron ] };
include "kpdl(dot)"
};
partial alphanumeric_keys
xkb_symbols "mac_nodeadkeys" {
include "dk(mac)"
name[Group1]= "Danish (Macintosh, eliminate dead keys)";
key <AE12> { [ acute, grave, bar, ogonek ] };
key <AD12> { [diaeresis, asciicircum, asciitilde, dead_macron ] };
};
partial alphanumeric_keys
xkb_symbols "dvorak" {
include "no(dvorak)"
name[Group1]= "Danish (Dvorak)";
key <AD12> { [ asciitilde, asciicircum, dead_diaeresis, dead_tilde ] };
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/dk(sun_type6)"
};

Some files were not shown because too many files have changed in this diff Show More