Sym mod in setkb.sh
* The setkb.sh shortstring can now take full 'caws' ergo mod combos * The 'pc10#wide' models were renamed to 'pc10#-wide' * Sym-ISO/ANSI variants were renamed to sym_w-10(4|5)
This commit is contained in:
parent
4b6d14b710
commit
37cba71426
153
setkb.sh
153
setkb.sh
|
@ -1,11 +1,10 @@
|
|||
#!/bin/bash
|
||||
## ========================================================================================
|
||||
## ==== SETKB.sh to set the XKB keyboard options ====
|
||||
## ==== by Øystein "DreymaR" Bech-Aase, 2014- ====
|
||||
## ========================================================================================
|
||||
|
||||
## =================================================================
|
||||
## === SETKB.sh to set the XKB keyboard options ===
|
||||
## === by Øystein "DreymaR" Bech-Aase, 2014- ===
|
||||
## =================================================================
|
||||
|
||||
HeadStr="DreymaR's setxkbmap script (by OeBeAa, 2022-10)"
|
||||
HeadStr="DreymaR's setxkbmap script (by OeBeAa, 2023-06)"
|
||||
DescStr=\
|
||||
"\e[1mShell script to change X.org keyboard setup\e[0m\n"\
|
||||
" using the 'setxkbmap' command.\n"\
|
||||
|
@ -20,14 +19,15 @@ FootStr="Happy xkb-hacking! ~ Øystein 'DreymaR' Bech-Aase"
|
|||
|
||||
## NOTE: I made a handy shorthand for activating simple Cmk[eD] model/layout combos.
|
||||
## See the help text of this script for more info on the model-locale-symbols syntax.
|
||||
## Example: '5w no us' activates model pc105aw-sl, layout no(cmk_ed_us)
|
||||
## Example: '5aw no us' activates model pc105awide, layout no(cmk_ed_us)
|
||||
## Models: 4n 4a(pc104angle) 4w(pc104wide) 4aw(pc104awide) 4f(pc104awing)
|
||||
## 5n 5a(pc105angle) 5w(pc105wide) 5aw(pc105awide)
|
||||
## - Curl(DH) "models" add a 'c', like this: 4c, 5caw etc
|
||||
## - Thus, the allowed model short strings are (4|5)(n|a|c|ca)[(w|f)]
|
||||
## - Curl(DH) "models" add a 'c' in front, like this: 4c, 5caw etc
|
||||
## - Sym "models" add a 's' at the end, like this: 4cas, 5caws etc
|
||||
## - Thus, the allowed model short strings are (4|5)(n|a|c|ca)[(w|f)][s]
|
||||
## XKB options are left out of this: Too complex (e.g., replace or append?)
|
||||
|
||||
##-------------- init ------------------------------------------
|
||||
## ---------- init ----------------------------------------------------------------------
|
||||
|
||||
#~ MyDATE=`date +"%Y-%m-%d_%H-%M"`
|
||||
MyNAME=`basename $0`
|
||||
|
@ -35,21 +35,21 @@ MyNAME=`basename $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'
|
||||
XKBDIR="${X11DIR}/xkb" # The default X11 xkb dir
|
||||
XKBLOC="./xkb-data_xmod/xkb" # The default local xkb dir in this repo
|
||||
XKBDIR="${X11DIR}/xkb" # The default X11 xkb dir
|
||||
XKBLOC='./xkb-data_xmod/xkb' # The default local xkb dir in this repo
|
||||
|
||||
#~ XKBmodel=pc104awide # ANSI-104 keyboard w/ Angle(Z)Wide(Quote) mod
|
||||
XKBmodel=pc105awide # ISO-105 keyboard w/ CurlAngleWide(Slash) mod
|
||||
#~ XKBmodel=pc104awide # ANSI-104 keyboard w/ Angle(Z)Wide(Quote) mod
|
||||
XKBmodel=pc105awide # ISO-105 keyboard w/ CurlAngleWide(Slash) mod
|
||||
#~ XKBlayout='us(cmk_ed_us),gr(colemak),ru(colemak)' # Multiple layouts
|
||||
XKBlayout='us(cmk_ed_us)' # US English Colemak[eD]'Universal Symbols' layout
|
||||
XKBlayout='us(cmk_ed_us)' # US English Colemak[eD]'Universal Symbols' layout
|
||||
XKBoption='misc:extend,lv5:caps_switch_lock,grp:shifts_toggle,compose:menu'
|
||||
Verbosity=9 # (-v) How much info should setxkbmap print out?
|
||||
KeepXKM='no' # (-k) Retain old /var/lib/xkb/server-*.xkm files?
|
||||
XRunDir=${XKBDIR} # (-d) The xkb-type dir to run setxkbmap from
|
||||
AddCmdYN='no' # (-a) Add setxkbmap cmd to file?
|
||||
Verbosity=9 # (-v) How much info should setxkbmap print out?
|
||||
KeepXKM='no' # (-k) Retain old /var/lib/xkb/server-*.xkm files?
|
||||
XRunDir=${XKBDIR} # (-d) The xkb-type dir to run setxkbmap from
|
||||
AddCmdYN='no' # (-a) Add setxkbmap cmd to file?
|
||||
AddDefault="${HOME}/.bashrc"
|
||||
AddCmdTo=${AddDefault} # (-f) File (such as '~/.bashrc') to add setxkbmap cmd to
|
||||
SetXStr='' #'5caw us us' # (--) Shortcut string for setkb (model locale eD-variant)
|
||||
AddCmdTo=${AddDefault} # (-f) File (such as '~/.bashrc') to add setxkbmap cmd to
|
||||
ArgStr='' #'5caws us us' # (--) Shortcut string for setkb (model locale eD-variant)
|
||||
## NOTE: '# (-a)' means that the value can be set by option argument '-a <value>'
|
||||
|
||||
HelpStr="\e[1mUsage: bash ${MyNAME} [optional args] [<kbd> [<loc> <sym>]]\e[0m\n"\
|
||||
|
@ -65,22 +65,23 @@ HelpStr="\e[1mUsage: bash ${MyNAME} [optional args] [<kbd> [<loc> <sym>]]\e[0m\n
|
|||
"[-k] Keep old XKB server(s) - '${KeepXKM}' [toggle, no arg.]\n"\
|
||||
"[-a] Add cmd line to file? - '${AddCmdYN}' [toggle, no arg.]\n"\
|
||||
"[-f] <file> to add cmd to - '${AddCmdTo}'\n"\
|
||||
"[--] <ShortStr> - '${SetXStr}'\n"\
|
||||
"[--] <ShortStr> - '${ArgStr}'\n"\
|
||||
"\nSpecify '-d-' to run from the local repo directory w/o installing.\n"\
|
||||
"\n\e[1mShortStr syntax, defining eD model+layout as a short split string:\e[0m\n"\
|
||||
"==================================================================\n"\
|
||||
" <kbd> 4/5 - ANSI-104/ISO-105 keyboard model, then...\n"\
|
||||
" n/a/c - Normal/Angle/Curl-DH, and optionally...\n"\
|
||||
" w/f - Wide/A-Wing (a.k.a. 'A-Frame')\n"\
|
||||
" w/f - Wide/A-Wing (a.k.a. 'A-Frame'), and...\n"\
|
||||
" s - Sym (optional)\n"\
|
||||
" <loc> Two-letter locale layout code like 'us' for USA, 'gb' for UK etc\n"\
|
||||
" <sym> 'us'/'ks' for 'Universal' or 'Keep Locale' symbol variants\n\n"\
|
||||
" Examples: '5a se us': Angle-ISO, Swedish Cmk[eD] 'UnifiedSym'\n"\
|
||||
" '4ca gb ks': Curl(DH)Angle-ANSI, Eng.(UK) Cmk[eD] 'KeepSym'\n"\
|
||||
" '5caw': Curl(DH)AngleWide-ISO, keep current layout/variant\n"
|
||||
" Examples: '5a se us': Angle-ISO, Swedish Cmk[eD] 'UnifiedSym'\n"\
|
||||
" '4ca gb ks': Curl(DH)Angle-ANSI, Eng.(UK) Cmk[eD] 'KeepSym'\n"\
|
||||
" '5caws': Curl(DH)AngleWideSym-ISO, keep current layout/variant\n"
|
||||
#~ " (See the script's comments for more info.)"
|
||||
|
||||
|
||||
##-------------- functions and line parser ---------------------
|
||||
## ---------- functions and line parser -------------------------------------------------
|
||||
|
||||
MyMsg() # Formatted output: last arg is printf 'style[;fgcolor[;bgcolor]]'
|
||||
{
|
||||
|
@ -102,13 +103,13 @@ MyPoint()
|
|||
|
||||
MyWarning()
|
||||
{
|
||||
MyMsg "WARNING: ${@:-'Beware of nargles!'}" "\n" '1;36;44' # Bold cyan on blue
|
||||
MyMsg "WARNING: ${@:-'Beware of nargles!'}" "\n" '1;36;44' # Bold cyan on blue
|
||||
#~ exit 1
|
||||
}
|
||||
|
||||
MyError()
|
||||
{
|
||||
MyMsg "$MyNAME - ERROR: ${@:-'Undefined error'}" "\n" '1;37;41' # Bold white on red
|
||||
MyMsg "$MyNAME - ERROR: ${@:-'Undefined error'}" "\n" '1;37;41' # Bold white on red
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
@ -129,7 +130,7 @@ MyCD()
|
|||
&& MyPoint "Changed dir to '${NewDir}'" || MyError "Change to '${NewDir}' failed"
|
||||
}
|
||||
|
||||
#~ if [ "$#" == 0 ]; then PrintHelpAndExit 2; fi # No args
|
||||
#~ if [ "$#" == 0 ]; then PrintHelpAndExit 2; fi # No args
|
||||
while getopts "m:l:o:v:d:f:akh?" cmdarg; do
|
||||
case $cmdarg in
|
||||
m) XKBmodel="$OPTARG" ;;
|
||||
|
@ -143,62 +144,70 @@ while getopts "m:l:o:v:d:f:akh?" cmdarg; do
|
|||
h) PrintHelpAndExit 0 ;;
|
||||
\?) PrintHelpAndExit 0 ;;
|
||||
:) PrintHelpAndExit 1 ;;
|
||||
# s) SetXStr=($OPTARG) ;; # Split the string
|
||||
# s) ArgStr=($OPTARG) ;; # Split the string
|
||||
esac
|
||||
done
|
||||
shift $(( $OPTIND - 1 )) # Remove already processed args
|
||||
[[ "$@" == "" ]] || SetXStr=($@) # Split the ShortString
|
||||
shift $(( $OPTIND - 1 )) # Remove already processed args
|
||||
[[ "${XRunDir}" == '-' ]] && XRunDir="${XKBLOC}" # Use the default local dir
|
||||
|
||||
[[ "${XRunDir}" == '-' ]] && XRunDir="${XKBLOC}" # Use the default local dir
|
||||
|
||||
if [ -n "${SetXStr}" ]; then # Use ShortString notation
|
||||
case ${SetXStr[0]} in
|
||||
4n|4c) XKBmodel='pc104' ;; # Generic ANSI-101/104-key
|
||||
4a|4ca) XKBmodel='pc104angle' ;; # w/ Angle(Z) ergo mod
|
||||
4w|4cw) XKBmodel='pc104wide' ;; # w/ Wide(Quote) ergo mod
|
||||
4aw|4caw) XKBmodel='pc104awide' ;; # w/ Angle(Z)Wide(Quote) ergo mod
|
||||
4f|4af|4cf) XKBmodel='pc104awing' ;; # w/ AngleWing(Quote) ergo mod
|
||||
|
||||
5n|5c) XKBmodel='pc105' ;; # Generic ISO-102/105-key
|
||||
5a|5ca) XKBmodel='pc105angle' ;; # w/ Angle(LSGT) ergo mod
|
||||
5w|5cw) XKBmodel='pc105wide' ;; # w/ Wide(Slash) ergo mod
|
||||
5aw|5caw) XKBmodel='pc105awide' ;; # w/ AngleWide(Slash) ergo mod
|
||||
|
||||
*) MyError "ShortStr model '${SetXStr[0]}' unknown!" ;;
|
||||
[[ "$@" == "" ]] || ArgStr=($@) # Split the ShortString, if present
|
||||
if [ -n "${ArgStr}" ]; then # Use ShortString notation
|
||||
ModStr="${ArgStr[0]}"
|
||||
KbdStr="${ModStr:0:1}" ; ModStr="${ModStr:1}" # 1st chr = Kbd type: 4/5 for ANSI/ISO
|
||||
[[ "${ModStr:0:1}" == 'c' ]] && DH-Mod='y' || DH-Mod='n' # 2nd chr may be 'c' for the Curl mod
|
||||
[[ ${DH-Mod} == 'y' ]] && ModStr="${ModStr:1}" # (remove the found character)
|
||||
[[ "${ModStr: -1}" == 's' ]] && SymMod='y' || SymMod='n' # Last chr may be 's' for the Sym mod
|
||||
if [[ ${SymMod} == 'y' ]]; then
|
||||
ModStr="${ModStr:: -1}"
|
||||
if [[ "${ModStr}" =~ 'w' ]]; then # Sort out Sym variants
|
||||
case "#{KbdStr}" in
|
||||
4) SymStr='wide-104' ;; # symkeys(sym_w-104)
|
||||
5) SymStr='wide-105' ;; # symkeys(sym_w-105)
|
||||
*) MyError "Kbd model 'pc10${KbdStr}' unknown!" ;;
|
||||
esac
|
||||
else
|
||||
SymStr='non-wide' # symkeys(sym_non-w)
|
||||
fi
|
||||
SymStr="sym_${SymStr}"
|
||||
fi
|
||||
case "${ModStr}" in
|
||||
n) ModStr='' ;; # Generic pc104(ANSI)/pc105(ISO) kbd
|
||||
a) ModStr='angle' ;; # w/ Angle ergo mod
|
||||
w) ModStr='-wide' ;; # w/ Wide ergo mod
|
||||
aw) ModStr='awide' ;; # w/ AngleWide ergo mod
|
||||
f|af) ModStr='awing' ;; # w/ AngleWing ergo mod
|
||||
*) MyError "ShortStr model '${ArgStr[0]}' unknown!" ;;
|
||||
esac
|
||||
##case ${SetXStr[0]} in # eD WIP: Check for Sym mods, add as option. Can we do a search for s in the string?
|
||||
## Need different mod variants (options) for `ws` and non-Wide `s`.
|
||||
## Can we lop of 4/5 first, and make a model string 'pc10#' based on that, to simplify the above?
|
||||
## Can we search for c and s separately in the string? The c will be first after 4/5, and s at the end.
|
||||
if [ -n "${SetXStr[2]}" ]; then # If there are three parts, ...
|
||||
case ${SetXStr[2]} in # ...determine the layout variant.
|
||||
us) XKBvar='cmk_ed_us' ;; # Cmk-eD Unified Symbols variant
|
||||
ks) XKBvar='cmk_ed_ks' ;; # Cmk-eD Keep Locale Symbols variant
|
||||
*) XKBvar=${SetXStr[2]} ;; # Use specified variant
|
||||
XKBmodel="pc10${KbdStr}${ModStr}" # Kbd type and Angle/Wide define xkb model
|
||||
[[ ${DH-Mod} == 'y' ]] && XKBoption+=',misc:cmk_curl_dh' # Curl-DH is an XKB option
|
||||
[[ ${SymMod} == 'y' ]] && XKBoption+=",misc:${SymStr}" # Sym mod is an XKB option
|
||||
|
||||
if [ -n "${ArgStr[2]}" ]; then # If there are three parts, ...
|
||||
case "${ArgStr[2]}" in # ...determine the layout variant.
|
||||
us) XKBvar='cmk_ed_us' ;; # Cmk-eD Unified Symbols variant
|
||||
ks) XKBvar='cmk_ed_ks' ;; # Cmk-eD Keep Locale Symbols variant
|
||||
*) XKBvar="${ArgStr[2]}" ;; # Use specified variant
|
||||
esac
|
||||
else
|
||||
XKBvar='basic' # Default variant
|
||||
XKBvar='basic' # Use the default variant for this locale
|
||||
fi
|
||||
if [ -n "${SetXStr[1]}" ]; then # If there are two or more parts, ...
|
||||
XKBlayout="${SetXStr[1]}($XKBvar)" # ...use the lay(var) string.
|
||||
else # Otherwise, use existing layout.
|
||||
if [ -n "${ArgStr[1]}" ]; then # If there are two or more parts, ...
|
||||
XKBlayout="${ArgStr[1]}($XKBvar)" # ...use the lay(var) string.
|
||||
else # Otherwise, use existing layout.
|
||||
XKBlayout=`setxkbmap -query | grep layout | awk '{print $2}'`
|
||||
fi
|
||||
fi
|
||||
## TODO: Also set the right Extend variant option for Curl, when it gets implemented.
|
||||
|
||||
## NOTE: The code below post processes Curl models into model+option, as per my XKB implementation.
|
||||
[[ ${SetXStr[0]} =~ "c" ]] && XKBoption+=',misc:cmk_curl_dh'
|
||||
## [[ ${SetXStr[0]} =~ "s" ]] && XKBoption+=',misc:ed_sym-w' # TODO: Implement Sym, for both Wide and non-Wide configs
|
||||
|
||||
##-------------- main ------------------------------------------
|
||||
## ---------- main ----------------------------------------------------------------------
|
||||
|
||||
MyMsg "$HeadStr"
|
||||
#~ MyCD "${XKBpath%/}/${XRunDir%/}"
|
||||
if [ -n "${SetXStr}" ]; then
|
||||
if [ -n "${ArgStr}" ]; then
|
||||
MyPoint "Using model/layout '$XKBmodel'/'$XKBlayout' from ShortStr"
|
||||
fi
|
||||
|
||||
MyCD "${XRunDir%/}" # Change to the xkb dir first
|
||||
MyCD "${XRunDir%/}" # Change to the xkb dir first
|
||||
|
||||
## Check for root privileges (if not root, needs the sudo command)
|
||||
DoSudo=''
|
||||
|
@ -222,7 +231,7 @@ if [ ${XRunDir} == ${XKBDIR} ]; then
|
|||
MyPoint "Running setxkbmap with the system XKB dir:\n"
|
||||
OptXKB="-v ${Verbosity}" # Note: Verbosity doesn't work well with -print
|
||||
else
|
||||
MyPoint "Running setxkbmap with a local XKB dir:\n" # . is the local dir
|
||||
MyPoint "Running setxkbmap with a local XKB dir:\n" # . is the local dir
|
||||
OptXKB="-print | xkbcomp -I -I. -I${XKBDIR} $DISPLAY 2>/dev/null" # Wasn't there a hyphen before $DISPLAY?
|
||||
fi
|
||||
setxkbmap $SetXKB $OptXKB
|
||||
|
@ -252,10 +261,10 @@ extraEnter='';[[ `ps --no-headers -o comm= $PPID` == 'install-dreymar' ]] || ext
|
|||
MyMsg "${MyNAME} finished!" ${extraEnter}
|
||||
exit 0
|
||||
|
||||
##-------------- misc ------------------------------------------
|
||||
## ---------- misc ----------------------------------------------------------------------
|
||||
|
||||
#~ MyWarning "'${MyNAME}' debug - exiting!"; exit 0
|
||||
#~ echo "'$XKBmodel' '$XKBlayout'"; for i in 0 1 2; do echo "'${SetXStr[i]}'"; done; exit 0
|
||||
#~ echo "'$XKBmodel' '$XKBlayout'"; for i in 0 1 2; do echo "'${ArgStr[i]}'"; done; exit 0
|
||||
|
||||
## US/ANSI Wide ergo mod,
|
||||
## Colemak[eD] US layout,
|
||||
|
|
|
@ -1026,7 +1026,7 @@ xkb_geometry "pc104angle" {
|
|||
}; // End of "pc104angle" geometry
|
||||
|
||||
// pc104_Wide(Quote) ergonomic mod (by DreymaR, 2013)
|
||||
xkb_geometry "pc104wide" {
|
||||
xkb_geometry "pc104-wide" {
|
||||
include "pc(pc104)"
|
||||
description= "Generic 104 - Wide Ergo mod";
|
||||
|
||||
|
@ -1069,11 +1069,11 @@ xkb_geometry "pc104wide" {
|
|||
};
|
||||
}; // End of bottom row
|
||||
}; // End of "Alpha" section
|
||||
}; // End of "pc104wide" geometry
|
||||
}; // End of "pc104-wide" geometry
|
||||
|
||||
// pc104_Angle(Z)Wide(Quote) ergonomic mod (by DreymaR, 2015)
|
||||
xkb_geometry "pc104awide" {
|
||||
include "pc(pc104wide)"
|
||||
include "pc(pc104-wide)"
|
||||
description= "Generic 104 - Angle(Z)Wide Ergo mod";
|
||||
|
||||
section.left= 19;
|
||||
|
@ -1184,7 +1184,7 @@ xkb_geometry "pc105curl" {
|
|||
}; // End of "pc105curl" geometry
|
||||
|
||||
// pc105_Wide(Slash) ergonomic mod (by DreymaR, 2011)
|
||||
xkb_geometry "pc105wide" {
|
||||
xkb_geometry "pc105-wide" {
|
||||
include "pc(pc105)"
|
||||
description= "Generic 105 - Wide Ergo mod";
|
||||
|
||||
|
@ -1227,11 +1227,11 @@ xkb_geometry "pc105wide" {
|
|||
};
|
||||
}; // End of bottom row
|
||||
}; // End of "Alpha" section
|
||||
}; // End of "pc105wide" geometry
|
||||
}; // End of "pc105-wide" geometry
|
||||
|
||||
// pc105_AngleWide(Slash) ergonomic mod (by DreymaR, 2011)
|
||||
xkb_geometry "pc105awide" {
|
||||
include "pc(pc105wide)"
|
||||
include "pc(pc105-wide)"
|
||||
description= "Generic 105 - AngleWide Ergo mod";
|
||||
|
||||
section.left= 19;
|
||||
|
|
|
@ -614,31 +614,31 @@ xkb_keycodes "pc104angle" {
|
|||
};
|
||||
|
||||
// pc104_Wide(Quote) ergonomic mod (by DreymaR, 2013)
|
||||
xkb_keycodes "pc104wide" {
|
||||
xkb_keycodes "pc104-wide" {
|
||||
|
||||
include "evdev(pc104wide-rightpart)"
|
||||
include "evdev(pc104wide-midpart)"
|
||||
include "evdev(pc104-wide-rightpart)"
|
||||
include "evdev(pc104-wide-midpart)"
|
||||
augment "evdev(evdev)"
|
||||
};
|
||||
|
||||
// pc104_Angle(Z)Wide(Quote) ergonomic mod (by DreymaR, 2013)
|
||||
xkb_keycodes "pc104awide" {
|
||||
|
||||
include "evdev(pc104wide-rightpart)"
|
||||
include "evdev(pc104wide-midpart)"
|
||||
include "evdev(pc104-wide-rightpart)"
|
||||
include "evdev(pc104-wide-midpart)"
|
||||
augment "evdev(pc104angle)"
|
||||
};
|
||||
|
||||
// pc104_AngleWing(Quote) ergonomic mod (by DreymaR, 2015)
|
||||
xkb_keycodes "pc104awing" {
|
||||
|
||||
include "evdev(pc104wide-rightpart)"
|
||||
include "evdev(pc104-wide-rightpart)"
|
||||
include "evdev(pc104awing-leftpart)"
|
||||
augment "evdev(evdev)"
|
||||
};
|
||||
|
||||
// pc104_Wide partial ergonomic mod (by DreymaR, 2013)
|
||||
xkb_keycodes "pc104wide-midpart" {
|
||||
xkb_keycodes "pc104-wide-midpart" {
|
||||
|
||||
<AE12> = 16; // = < 7
|
||||
<AD11> = 29; // [ < Y
|
||||
|
@ -648,7 +648,7 @@ xkb_keycodes "pc104wide-midpart" {
|
|||
};
|
||||
|
||||
// pc104_Wide partial ergonomic mod (by DreymaR, 2013)
|
||||
xkb_keycodes "pc104wide-rightpart" {
|
||||
xkb_keycodes "pc104-wide-rightpart" {
|
||||
|
||||
<AE07> = 17; // 7 < 8
|
||||
<AE08> = 18; // 8 < 9
|
||||
|
@ -720,12 +720,12 @@ xkb_keycodes "pc105angle" {
|
|||
// pc105_AngleWide(Slash) ergonomic mod (by DreymaR, 2011)
|
||||
xkb_keycodes "pc105awide" {
|
||||
|
||||
include "evdev(pc105wide)"
|
||||
include "evdev(pc105-wide)"
|
||||
augment "evdev(pc105angle)"
|
||||
};
|
||||
|
||||
// pc105_Wide(Slash) ergonomic mod (by DreymaR, 2011)
|
||||
xkb_keycodes "pc105wide" {
|
||||
xkb_keycodes "pc105-wide" {
|
||||
|
||||
<AE12> = 16; // = < 7
|
||||
<AE07> = 17; // 7 < 8
|
||||
|
|
|
@ -425,31 +425,31 @@ xkb_keycodes "pc104angle" {
|
|||
};
|
||||
|
||||
// pc104_Wide(Quote) ergonomic mod (by DreymaR, 2013)
|
||||
xkb_keycodes "pc104wide" {
|
||||
xkb_keycodes "pc104-wide" {
|
||||
|
||||
include "xfree86(pc104wide-rightpart)"
|
||||
include "xfree86(pc104wide-midpart)"
|
||||
include "xfree86(pc104-wide-rightpart)"
|
||||
include "xfree86(pc104-wide-midpart)"
|
||||
augment "xfree86(xfree86)"
|
||||
};
|
||||
|
||||
// pc104_Angle(Z)Wide(Quote) ergonomic mod (by DreymaR, 2013)
|
||||
xkb_keycodes "pc104awide" {
|
||||
|
||||
include "xfree86(pc104wide-rightpart)"
|
||||
include "xfree86(pc104wide-midpart)"
|
||||
include "xfree86(pc104-wide-rightpart)"
|
||||
include "xfree86(pc104-wide-midpart)"
|
||||
augment "xfree86(pc104angle)"
|
||||
};
|
||||
|
||||
// pc104_AngleWing(Quote) ergonomic mod (by DreymaR, 2015)
|
||||
xkb_keycodes "pc104awing" {
|
||||
|
||||
include "xfree86(pc104wide-rightpart)"
|
||||
include "xfree86(pc104-wide-rightpart)"
|
||||
include "xfree86(pc104awing-leftpart)"
|
||||
augment "xfree86(xfree86)"
|
||||
};
|
||||
|
||||
// pc104_Wide partial ergonomic mod (by DreymaR, 2013)
|
||||
xkb_keycodes "pc104wide-midpart" {
|
||||
xkb_keycodes "pc104-wide-midpart" {
|
||||
|
||||
<AE12> = 16; // = < 7
|
||||
<AD11> = 29; // [ < Y
|
||||
|
@ -459,7 +459,7 @@ xkb_keycodes "pc104wide-midpart" {
|
|||
};
|
||||
|
||||
// pc104_Wide partial ergonomic mod (by DreymaR, 2013)
|
||||
xkb_keycodes "pc104wide-rightpart" {
|
||||
xkb_keycodes "pc104-wide-rightpart" {
|
||||
|
||||
<AE07> = 17; // 7 < 8
|
||||
<AE08> = 18; // 8 < 9
|
||||
|
@ -531,12 +531,12 @@ xkb_keycodes "pc105angle" {
|
|||
// pc105_AngleWide(Slash) ergonomic mod (by DreymaR, 2011)
|
||||
xkb_keycodes "pc105awide" {
|
||||
|
||||
include "xfree86(pc105wide)"
|
||||
include "xfree86(pc105-wide)"
|
||||
augment "xfree86(pc105angle)"
|
||||
};
|
||||
|
||||
// pc105_Wide(Slash) ergonomic mod (by DreymaR, 2011)
|
||||
xkb_keycodes "pc105wide" {
|
||||
xkb_keycodes "pc105-wide" {
|
||||
|
||||
<AE12> = 16; // = < 7
|
||||
<AE07> = 17; // 7 < 8
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
|
||||
// PC models
|
||||
! $pcmodels = pc86 pc101 pc102 pc104 pc104alt pc105 \
|
||||
pc104angle pc104wide pc104awide pc104awing \
|
||||
pc105angle pc105wide pc105awide \
|
||||
pc104angle pc104-wide pc104awide pc104awing \
|
||||
pc105angle pc105-wide pc105awide \
|
||||
pc104curl-z pc104caw-zqu pc104cawing pc105curl pc105caw-sl
|
||||
|
||||
// Jolla devices and keyboards
|
||||
|
@ -162,14 +162,14 @@
|
|||
$macs = macintosh
|
||||
thinkpadz60 = xfree86(thinkpadz60)
|
||||
pc104angle = xfree86(pc104angle)
|
||||
pc104wide = xfree86(pc104wide)
|
||||
pc104-wide = xfree86(pc104-wide)
|
||||
pc104awide = xfree86(pc104awide)
|
||||
pc104awing = xfree86(pc104awing)
|
||||
pc104curl-z = xfree86(pc104curl-z)
|
||||
pc104caw-zqu = xfree86(pc104caw-zqu)
|
||||
pc104cawing = xfree86(pc104cawing)
|
||||
pc105angle = xfree86(pc105angle)
|
||||
pc105wide = xfree86(pc105wide)
|
||||
pc105-wide = xfree86(pc105-wide)
|
||||
pc105awide = xfree86(pc105awide)
|
||||
pc105curl = xfree86(pc105curl)
|
||||
pc105caw-sl = xfree86(pc105caw-sl)
|
||||
|
@ -1311,8 +1311,8 @@
|
|||
lv5:lctl_switch_lock_cancel = +level5(lctl_switch_lock_cancel)
|
||||
parens:swap_brackets = +parens(swap_brackets)
|
||||
misc:sym_non-wide = +symkeys(cmk_ed_sym_non-w)
|
||||
misc:sym_wide-iso = +symkeys(cmk_ed_sym_w-iso)
|
||||
misc:sym_wide-ansi = +symkeys(cmk_ed_sym_w-ansi)
|
||||
misc:sym_wide-104 = +symkeys(cmk_ed_sym_w-104)
|
||||
misc:sym_wide-105 = +symkeys(cmk_ed_sym_w-105)
|
||||
|
||||
|
||||
! option = compat
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
pc104alt Generic 104-key PC with L-shaped Enter key
|
||||
pc105 Generic 105-key PC
|
||||
pc104angle Generic 104-key PC Angle(Z) Ergo
|
||||
pc104wide Generic 104-key PC Wide Ergo
|
||||
pc104-wide Generic 104-key PC Wide Ergo
|
||||
pc104awide Generic 104-key PC Angle(Z)Wide Ergo
|
||||
pc105angle Generic 105-key PC (intl.) Angle Ergo
|
||||
pc105wide Generic 105-key PC (intl.) Wide Ergo
|
||||
pc105-wide Generic 105-key PC (intl.) Wide Ergo
|
||||
pc105awide Generic 105-key PC (intl.) AngleWide Ergo
|
||||
dell101 Dell 101-key PC
|
||||
latitude Dell Latitude laptop
|
||||
|
@ -1008,8 +1008,8 @@
|
|||
misc:extend Enable level5 Extend mappings (home position arrows etc)
|
||||
misc:cmk_curl_dh Colemak Curl(DH) ergo mod
|
||||
misc:sym_non-wide Sym ergo mod for non-Wide geometry
|
||||
misc:sym_wide-iso Sym ergo mod for Wide-ISO geometry
|
||||
misc:sym_wide-ansi Sym ergo mod for Wide-ANSI geometry
|
||||
misc:sym_wide-104 Sym ergo mod for Wide-ANSI geometry
|
||||
misc:sym_wide-105 Sym ergo mod for Wide-ISO geometry
|
||||
shift:both_capslock Both Shift together enable Caps Lock
|
||||
shift:both_capslock_cancel Both Shift together enable Caps Lock; one Shift key disables it
|
||||
shift:both_shiftlock Both Shift together enable Shift Lock
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
</model>
|
||||
<model>
|
||||
<configItem>
|
||||
<name>pc104wide</name>
|
||||
<name>pc104-wide</name>
|
||||
<description>Generic 104-key PC (Wide Ergo mod)</description>
|
||||
<vendor>Generic</vendor>
|
||||
</configItem>
|
||||
|
@ -75,7 +75,7 @@
|
|||
</model>
|
||||
<model>
|
||||
<configItem>
|
||||
<name>pc105wide</name>
|
||||
<name>pc105-wide</name>
|
||||
<description>Generic 105-key PC (intl.) (Wide Ergo mod)</description>
|
||||
<vendor>Generic</vendor>
|
||||
</configItem>
|
||||
|
@ -8277,14 +8277,14 @@
|
|||
</option>
|
||||
<option>
|
||||
<configItem>
|
||||
<name>misc:sym_wide-iso</name>
|
||||
<description>Sym ergo mod for Wide-ISO geometry</description>
|
||||
<name>misc:sym_wide-104</name>
|
||||
<description>Sym ergo mod for Wide-ANSI geometry</description>
|
||||
</configItem>
|
||||
</option>
|
||||
<option>
|
||||
<configItem>
|
||||
<name>misc:sym_wide-ansi</name>
|
||||
<description>Sym ergo mod for Wide-ANSI geometry</description>
|
||||
<name>misc:sym_wide-105</name>
|
||||
<description>Sym ergo mod for Wide-ISO geometry</description>
|
||||
</configItem>
|
||||
</option> <!-- <-< DreymaR -->
|
||||
<option>
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
|
||||
// PC models
|
||||
! $pcmodels = pc86 pc101 pc102 pc104 pc104alt pc105 \
|
||||
pc104angle pc104wide pc104awide pc104awing \
|
||||
pc105angle pc105wide pc105awide \
|
||||
pc104angle pc104-wide pc104awide pc104awing \
|
||||
pc105angle pc105-wide pc105awide \
|
||||
pc104curl-z pc104caw-zqu pc104cawing pc105curl pc105caw-sl
|
||||
|
||||
// Jolla devices and keyboards
|
||||
|
@ -100,14 +100,14 @@
|
|||
olpc = evdev+olpc(olpc)
|
||||
olpcm = evdev+olpc(olpcm)
|
||||
pc104angle = evdev(pc104angle)
|
||||
pc104wide = evdev(pc104wide)
|
||||
pc104-wide = evdev(pc104-wide)
|
||||
pc104awide = evdev(pc104awide)
|
||||
pc104awing = evdev(pc104awing)
|
||||
pc104curl-z = evdev(pc104curl-z)
|
||||
pc104caw-zqu = evdev(pc104caw-zqu)
|
||||
pc104cawing = evdev(pc104cawing)
|
||||
pc105angle = evdev(pc105angle)
|
||||
pc105wide = evdev(pc105wide)
|
||||
pc105-wide = evdev(pc105-wide)
|
||||
pc105awide = evdev(pc105awide)
|
||||
pc105curl = evdev(pc105curl)
|
||||
pc105caw-sl = evdev(pc105caw-sl)
|
||||
|
@ -1198,8 +1198,8 @@
|
|||
lv5:lctl_switch_lock_cancel = +level5(lctl_switch_lock_cancel)
|
||||
parens:swap_brackets = +parens(swap_brackets)
|
||||
misc:sym_non-wide = +symkeys(cmk_ed_sym_non-w)
|
||||
misc:sym_wide-iso = +symkeys(cmk_ed_sym_w-iso)
|
||||
misc:sym_wide-ansi = +symkeys(cmk_ed_sym_w-ansi)
|
||||
misc:sym_wide-104 = +symkeys(cmk_ed_sym_w-104)
|
||||
misc:sym_wide-105 = +symkeys(cmk_ed_sym_w-105)
|
||||
|
||||
|
||||
! option = compat
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
pc104alt Generic 104-key PC with L-shaped Enter key
|
||||
pc105 Generic 105-key PC
|
||||
pc104angle Generic 104-key PC Angle(Z) Ergo
|
||||
pc104wide Generic 104-key PC Wide Ergo
|
||||
pc104-wide Generic 104-key PC Wide Ergo
|
||||
pc104awide Generic 104-key PC Angle(Z)Wide Ergo
|
||||
pc105angle Generic 105-key PC (intl.) Angle Ergo
|
||||
pc105wide Generic 105-key PC (intl.) Wide Ergo
|
||||
pc105-wide Generic 105-key PC (intl.) Wide Ergo
|
||||
pc105awide Generic 105-key PC (intl.) AngleWide Ergo
|
||||
dell101 Dell 101-key PC
|
||||
latitude Dell Latitude laptop
|
||||
|
@ -1008,8 +1008,8 @@
|
|||
misc:extend Enable level5 Extend mappings (home position arrows etc)
|
||||
misc:cmk_curl_dh Colemak Curl(DH) ergo mod
|
||||
misc:sym_non-wide Sym ergo mod for non-Wide geometry
|
||||
misc:sym_wide-iso Sym ergo mod for Wide-ISO geometry
|
||||
misc:sym_wide-ansi Sym ergo mod for Wide-ANSI geometry
|
||||
misc:sym_wide-104 Sym ergo mod for Wide-ANSI geometry
|
||||
misc:sym_wide-105 Sym ergo mod for Wide-ISO geometry
|
||||
shift:both_capslock Both Shift together enable Caps Lock
|
||||
shift:both_capslock_cancel Both Shift together enable Caps Lock; one Shift key disables it
|
||||
shift:both_shiftlock Both Shift together enable Shift Lock
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
</model>
|
||||
<model>
|
||||
<configItem>
|
||||
<name>pc104wide</name>
|
||||
<name>pc104-wide</name>
|
||||
<description>Generic 104-key PC (Wide Ergo mod)</description>
|
||||
<vendor>Generic</vendor>
|
||||
</configItem>
|
||||
|
@ -75,7 +75,7 @@
|
|||
</model>
|
||||
<model>
|
||||
<configItem>
|
||||
<name>pc105wide</name>
|
||||
<name>pc105-wide</name>
|
||||
<description>Generic 105-key PC (intl.) (Wide Ergo mod)</description>
|
||||
<vendor>Generic</vendor>
|
||||
</configItem>
|
||||
|
@ -8277,14 +8277,14 @@
|
|||
</option>
|
||||
<option>
|
||||
<configItem>
|
||||
<name>misc:sym_wide-iso</name>
|
||||
<description>Sym ergo mod for Wide-ISO geometry</description>
|
||||
<name>misc:sym_wide-104</name>
|
||||
<description>Sym ergo mod for Wide-ANSI geometry</description>
|
||||
</configItem>
|
||||
</option>
|
||||
<option>
|
||||
<configItem>
|
||||
<name>misc:sym_wide-ansi</name>
|
||||
<description>Sym ergo mod for Wide-ANSI geometry</description>
|
||||
<name>misc:sym_wide-105</name>
|
||||
<description>Sym ergo mod for Wide-ISO geometry</description>
|
||||
</configItem>
|
||||
</option> <!-- <-< DreymaR -->
|
||||
<option>
|
||||
|
|
|
@ -50,24 +50,9 @@ xkb_symbols "cmk_ed_sym_non-w" {
|
|||
key <AB10> { [ slash, question, dead_stroke, questiondown ] }; // /? _¿
|
||||
};
|
||||
|
||||
// DreymaR's Sym mod for setups using the Wide-ISO model (without Sym, it has the Slash key on AD12)
|
||||
partial alphanumeric_keys
|
||||
xkb_symbols "cmk_ed_sym_w-iso" {
|
||||
include "symkeys(cmk_ed_commons)"
|
||||
include "symkeys(cmk_ed_numbers)"
|
||||
key <AE11> { [ equal, plus, dead_doubleacute, notequal ] }; // =+ _≠
|
||||
key <AE12> { [ backslash, bar, dead_grave, brokenbar ] }; // \| _¦
|
||||
key <AD10> { [ apostrophe, quotedbl, dead_acute, U2032 ] }; // '" _′
|
||||
key <AD11> { [ bracketleft, braceleft, aring, Aring ] }; // [{ åÅ
|
||||
key <AD12> { [ bracketright, braceright, ae, AE ] }; // ]} æÆ
|
||||
key <AC11> { [ semicolon, colon, dead_diaeresis, ellipsis ] }; // QWE P Cmk ;: ¨…
|
||||
key <BKSL> { [ slash, question, dead_stroke, questiondown ] }; // /? _¿
|
||||
key <AB10> { [ minus, underscore, dead_macron, plusminus ] }; // -_ _±
|
||||
};
|
||||
|
||||
// DreymaR's Sym mod for setups using the Wide-ANSI model (without Sym, it has the Quote key on AD12)
|
||||
partial alphanumeric_keys
|
||||
xkb_symbols "cmk_ed_sym_w-ans" {
|
||||
xkb_symbols "cmk_ed_sym_w-104" {
|
||||
include "symkeys(cmk_ed_commons)"
|
||||
include "symkeys(cmk_ed_numbers)"
|
||||
key <AE11> { [ equal, plus, dead_doubleacute, notequal ] }; // =+ _≠
|
||||
|
@ -80,6 +65,21 @@ xkb_symbols "cmk_ed_sym_w-ans" {
|
|||
key <AB10> { [ slash, question, dead_stroke, questiondown ] }; // /? _¿
|
||||
};
|
||||
|
||||
// DreymaR's Sym mod for setups using the Wide-ISO model (without Sym, it has the Slash key on AD12)
|
||||
partial alphanumeric_keys
|
||||
xkb_symbols "cmk_ed_sym_w-105" {
|
||||
include "symkeys(cmk_ed_commons)"
|
||||
include "symkeys(cmk_ed_numbers)"
|
||||
key <AE11> { [ equal, plus, dead_doubleacute, notequal ] }; // =+ _≠
|
||||
key <AE12> { [ backslash, bar, dead_grave, brokenbar ] }; // \| _¦
|
||||
key <AD10> { [ apostrophe, quotedbl, dead_acute, U2032 ] }; // '" _′
|
||||
key <AD11> { [ bracketleft, braceleft, aring, Aring ] }; // [{ åÅ
|
||||
key <AD12> { [ bracketright, braceright, ae, AE ] }; // ]} æÆ
|
||||
key <AC11> { [ semicolon, colon, dead_diaeresis, ellipsis ] }; // QWE P Cmk ;: ¨…
|
||||
key <BKSL> { [ slash, question, dead_stroke, questiondown ] }; // /? _¿
|
||||
key <AB10> { [ minus, underscore, dead_macron, plusminus ] }; // -_ _±
|
||||
};
|
||||
|
||||
hidden partial alphanumeric_keys
|
||||
xkb_symbols "cmk_ed_commons" {
|
||||
key <TLDE> { [ grave, asciitilde, dead_tilde, U2248 ] }; // `~ _≈
|
||||
|
|
Loading…
Reference in New Issue