Update setkb.sh
* BUG: Shell variables can't contain hyphens, sorry... So $DH-mod -> $DH_Mod * BUG: #{} -> ${} * Made setkb.sh robust towards more combinations and conditions.
This commit is contained in:
parent
37cba71426
commit
adcbc4986a
|
@ -61,7 +61,7 @@ localectl
|
||||||
---------
|
---------
|
||||||
* You can use the `localectl set-x11-keymap` command to make changes persistent; you may have to run it with `sudo` privileges
|
* You can use the `localectl set-x11-keymap` command to make changes persistent; you may have to run it with `sudo` privileges
|
||||||
* Syntax: `[sudo] localectl [--no-convert] set-x11-keymap layout [model [variant [options]]]`
|
* Syntax: `[sudo] localectl [--no-convert] set-x11-keymap layout [model [variant [options]]]`
|
||||||
* Example: `sudo localectl set-x11-keymap us pc105aw-sl cmk_ed_us "lv5:caps_switch_lock,misc:extend"`
|
* Example: `sudo localectl set-x11-keymap us pc105awide cmk_ed_us "lv5:caps_switch_lock,misc:extend"`
|
||||||
* For `layout` and `[variant]`, you can use for instance `"us,us"` and `"cmk_ed_us,"` to switch between Cmk-eD and the default us layout
|
* For `layout` and `[variant]`, you can use for instance `"us,us"` and `"cmk_ed_us,"` to switch between Cmk-eD and the default us layout
|
||||||
* Unfortunately, you can't switch between multiple models nor options this way – so your QWERTY may have the Angle (and Curl!) mods...
|
* Unfortunately, you can't switch between multiple models nor options this way – so your QWERTY may have the Angle (and Curl!) mods...
|
||||||
* Add `--no-convert` to not convert between closest matching console and X11 keyboard mappings; this precludes applying as system console mapping
|
* Add `--no-convert` to not convert between closest matching console and X11 keyboard mappings; this precludes applying as system console mapping
|
||||||
|
@ -89,15 +89,14 @@ input * {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
And, here's one for Hyprland:
|
And here's one for Hyprland's `~/.config/hypr/hyprland` file:
|
||||||
```
|
```
|
||||||
input {
|
input {
|
||||||
kb_rules=evdev
|
kb_rules=evdev
|
||||||
kb_model=pc105aw-sl
|
kb_model=pc105awide
|
||||||
kb_layout=us
|
kb_layout=us
|
||||||
kb_variant=cmk_ed_us
|
kb_variant=cmk_ed_us
|
||||||
kb_options=misc:extend,lv5:caps_switch_lock,grp:shifts_toggle,compose:menu,misc:cmk_curl_dh
|
kb_options=misc:extend,lv5:caps_switch_lock,grp:shifts_toggle,compose:menu,misc:cmk_curl_dh
|
||||||
|
|
||||||
repeat_rate=40
|
repeat_rate=40
|
||||||
repeat_delay=200
|
repeat_delay=200
|
||||||
}
|
}
|
||||||
|
|
43
setkb.sh
43
setkb.sh
|
@ -49,6 +49,7 @@ XRunDir=${XKBDIR} # (-d) The xkb-type dir to run setxkbmap from
|
||||||
AddCmdYN='no' # (-a) Add setxkbmap cmd to file?
|
AddCmdYN='no' # (-a) Add setxkbmap cmd to file?
|
||||||
AddDefault="${HOME}/.bashrc"
|
AddDefault="${HOME}/.bashrc"
|
||||||
AddCmdTo=${AddDefault} # (-f) File (such as '~/.bashrc') to add setxkbmap cmd to
|
AddCmdTo=${AddDefault} # (-f) File (such as '~/.bashrc') to add setxkbmap cmd to
|
||||||
|
PrntCmd='no' # (-p) Print the setxkbmap command instead of running it?
|
||||||
ArgStr='' #'5caws us us' # (--) Shortcut string for setkb (model locale eD-variant)
|
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>'
|
## NOTE: '# (-a)' means that the value can be set by option argument '-a <value>'
|
||||||
|
|
||||||
|
@ -65,6 +66,7 @@ HelpStr="\e[1mUsage: bash ${MyNAME} [optional args] [<kbd> [<loc> <sym>]]\e[0m\n
|
||||||
"[-k] Keep old XKB server(s) - '${KeepXKM}' [toggle, no arg.]\n"\
|
"[-k] Keep old XKB server(s) - '${KeepXKM}' [toggle, no arg.]\n"\
|
||||||
"[-a] Add cmd line to file? - '${AddCmdYN}' [toggle, no arg.]\n"\
|
"[-a] Add cmd line to file? - '${AddCmdYN}' [toggle, no arg.]\n"\
|
||||||
"[-f] <file> to add cmd to - '${AddCmdTo}'\n"\
|
"[-f] <file> to add cmd to - '${AddCmdTo}'\n"\
|
||||||
|
"[-p] Print cmd; don't run it - '${PrntCmd}'\n"\
|
||||||
"[--] <ShortStr> - '${ArgStr}'\n"\
|
"[--] <ShortStr> - '${ArgStr}'\n"\
|
||||||
"\nSpecify '-d-' to run from the local repo directory w/o installing.\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\e[1mShortStr syntax, defining eD model+layout as a short split string:\e[0m\n"\
|
||||||
|
@ -127,11 +129,11 @@ MyCD()
|
||||||
OldDir=`pwd`
|
OldDir=`pwd`
|
||||||
NewDir=${1:-`pwd`}
|
NewDir=${1:-`pwd`}
|
||||||
cd ${NewDir} \
|
cd ${NewDir} \
|
||||||
&& MyPoint "Changed dir to '${NewDir}'" || MyError "Change to '${NewDir}' failed"
|
&& MyPoint "Changing 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
|
while getopts "m:l:o:v:d:f:pakh?" cmdarg; do
|
||||||
case $cmdarg in
|
case $cmdarg in
|
||||||
m) XKBmodel="$OPTARG" ;;
|
m) XKBmodel="$OPTARG" ;;
|
||||||
l) XKBlayout="$OPTARG" ;;
|
l) XKBlayout="$OPTARG" ;;
|
||||||
|
@ -139,6 +141,7 @@ while getopts "m:l:o:v:d:f:akh?" cmdarg; do
|
||||||
v) Verbosity="$OPTARG" ;;
|
v) Verbosity="$OPTARG" ;;
|
||||||
d) XRunDir="$OPTARG" ;;
|
d) XRunDir="$OPTARG" ;;
|
||||||
f) AddCmdTo="$OPTARG" ;;
|
f) AddCmdTo="$OPTARG" ;;
|
||||||
|
p) PrntCmd='yes' ;;
|
||||||
a) AddCmdYN='yes' ;;
|
a) AddCmdYN='yes' ;;
|
||||||
k) KeepXKM='yes' ;;
|
k) KeepXKM='yes' ;;
|
||||||
h) PrintHelpAndExit 0 ;;
|
h) PrintHelpAndExit 0 ;;
|
||||||
|
@ -150,20 +153,20 @@ done
|
||||||
shift $(( $OPTIND - 1 )) # Remove already processed args
|
shift $(( $OPTIND - 1 )) # Remove already processed args
|
||||||
[[ "${XRunDir}" == '-' ]] && XRunDir="${XKBLOC}" # Use the default local dir
|
[[ "${XRunDir}" == '-' ]] && XRunDir="${XKBLOC}" # Use the default local dir
|
||||||
|
|
||||||
[[ "$@" == "" ]] || ArgStr=($@) # Split the ShortString, if present
|
[[ "$@" == "" ]] || ArgStr=($@) # Split the ShortString, if present
|
||||||
if [ -n "${ArgStr}" ]; then # Use ShortString notation
|
if [ -n "${ArgStr}" ]; then # Use ShortString notation
|
||||||
ModStr="${ArgStr[0]}"
|
ModStr="${ArgStr[0]}"
|
||||||
KbdStr="${ModStr:0:1}" ; ModStr="${ModStr:1}" # 1st chr = Kbd type: 4/5 for ANSI/ISO
|
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
|
[[ "${KbdStr}" =~ [45] ]] || MyError "Kbd model 'pc10${KbdStr}' unknown!"
|
||||||
[[ ${DH-Mod} == 'y' ]] && ModStr="${ModStr:1}" # (remove the found character)
|
[[ "${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
|
[[ "${ModStr: -1}" == 's' ]] && SymMod='y' || SymMod='n' # Last chr may be 's' for the Sym mod
|
||||||
if [[ ${SymMod} == 'y' ]]; then
|
if [[ ${SymMod} == 'y' ]]; then
|
||||||
ModStr="${ModStr:: -1}"
|
ModStr="${ModStr:: -1}"
|
||||||
if [[ "${ModStr}" =~ 'w' ]]; then # Sort out Sym variants
|
if [[ "${ModStr}" =~ [w] ]]; then # Sort out Sym variants
|
||||||
case "#{KbdStr}" in
|
case "${KbdStr}" in
|
||||||
4) SymStr='wide-104' ;; # symkeys(sym_w-104)
|
4) SymStr='wide-104' ;; # symkeys(sym_w-104)
|
||||||
5) SymStr='wide-105' ;; # symkeys(sym_w-105)
|
5) SymStr='wide-105' ;; # symkeys(sym_w-105)
|
||||||
*) MyError "Kbd model 'pc10${KbdStr}' unknown!" ;;
|
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
SymStr='non-wide' # symkeys(sym_non-w)
|
SymStr='non-wide' # symkeys(sym_non-w)
|
||||||
|
@ -171,7 +174,7 @@ if [ -n "${ArgStr}" ]; then # Use ShortString notation
|
||||||
SymStr="sym_${SymStr}"
|
SymStr="sym_${SymStr}"
|
||||||
fi
|
fi
|
||||||
case "${ModStr}" in
|
case "${ModStr}" in
|
||||||
n) ModStr='' ;; # Generic pc104(ANSI)/pc105(ISO) kbd
|
n|'') ModStr='' ;; # Generic pc104(ANSI)/pc105(ISO) kbd
|
||||||
a) ModStr='angle' ;; # w/ Angle ergo mod
|
a) ModStr='angle' ;; # w/ Angle ergo mod
|
||||||
w) ModStr='-wide' ;; # w/ Wide ergo mod
|
w) ModStr='-wide' ;; # w/ Wide ergo mod
|
||||||
aw) ModStr='awide' ;; # w/ AngleWide ergo mod
|
aw) ModStr='awide' ;; # w/ AngleWide ergo mod
|
||||||
|
@ -179,7 +182,7 @@ if [ -n "${ArgStr}" ]; then # Use ShortString notation
|
||||||
*) MyError "ShortStr model '${ArgStr[0]}' unknown!" ;;
|
*) MyError "ShortStr model '${ArgStr[0]}' unknown!" ;;
|
||||||
esac
|
esac
|
||||||
XKBmodel="pc10${KbdStr}${ModStr}" # Kbd type and Angle/Wide define xkb model
|
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
|
[[ ${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
|
[[ ${SymMod} == 'y' ]] && XKBoption+=",misc:${SymStr}" # Sym mod is an XKB option
|
||||||
|
|
||||||
if [ -n "${ArgStr[2]}" ]; then # If there are three parts, ...
|
if [ -n "${ArgStr[2]}" ]; then # If there are three parts, ...
|
||||||
|
@ -194,7 +197,8 @@ if [ -n "${ArgStr}" ]; then # Use ShortString notation
|
||||||
if [ -n "${ArgStr[1]}" ]; then # If there are two or more parts, ...
|
if [ -n "${ArgStr[1]}" ]; then # If there are two or more parts, ...
|
||||||
XKBlayout="${ArgStr[1]}($XKBvar)" # ...use the lay(var) string.
|
XKBlayout="${ArgStr[1]}($XKBvar)" # ...use the lay(var) string.
|
||||||
else # Otherwise, use existing layout.
|
else # Otherwise, use existing layout.
|
||||||
XKBlayout=`setxkbmap -query | grep layout | awk '{print $2}'`
|
[[ XKBlayout=`setxkbmap -query | grep layout | awk '{print $2}'` ]] \
|
||||||
|
|| XKBlayout='us' # If not found, default to the US locale
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
## TODO: Also set the right Extend variant option for Curl, when it gets implemented.
|
## TODO: Also set the right Extend variant option for Curl, when it gets implemented.
|
||||||
|
@ -204,7 +208,9 @@ fi
|
||||||
MyMsg "$HeadStr"
|
MyMsg "$HeadStr"
|
||||||
#~ MyCD "${XKBpath%/}/${XRunDir%/}"
|
#~ MyCD "${XKBpath%/}/${XRunDir%/}"
|
||||||
if [ -n "${ArgStr}" ]; then
|
if [ -n "${ArgStr}" ]; then
|
||||||
MyPoint "Using model/layout '$XKBmodel'/'$XKBlayout' from ShortStr"
|
MyPoint "ShortStr model/layout: ${XKBmodel} / ${XKBlayout}"
|
||||||
|
MyPoint "ShortStr lay. options: Curl(DH) - '${DH_Mod}'; Sym - '${SymMod}'."
|
||||||
|
MyEcho
|
||||||
fi
|
fi
|
||||||
|
|
||||||
MyCD "${XRunDir%/}" # Change to the xkb dir first
|
MyCD "${XRunDir%/}" # Change to the xkb dir first
|
||||||
|
@ -225,16 +231,21 @@ fi
|
||||||
## Clear the xkb options (to avoid duplicates)
|
## Clear the xkb options (to avoid duplicates)
|
||||||
setxkbmap -option ''
|
setxkbmap -option ''
|
||||||
|
|
||||||
## Run the actual setxkbmap command
|
## Run or print out the actual setxkbmap command
|
||||||
|
[[ ${PrntCmd} == 'yes' ]] && RunPrt='Printing' || RunPrt='Running'
|
||||||
SetXKB="-model ${XKBmodel} -layout ${XKBlayout} -option ${XKBoption}"
|
SetXKB="-model ${XKBmodel} -layout ${XKBlayout} -option ${XKBoption}"
|
||||||
if [ ${XRunDir} == ${XKBDIR} ]; then
|
if [ ${XRunDir} == ${XKBDIR} ]; then
|
||||||
MyPoint "Running setxkbmap with the system XKB dir:\n"
|
MyPoint "${RunPrt} setxkbmap command with the system XKB dir:\n"
|
||||||
OptXKB="-v ${Verbosity}" # Note: Verbosity doesn't work well with -print
|
OptXKB="-v ${Verbosity}" # Note: Verbosity doesn't work well with -print
|
||||||
else
|
else
|
||||||
MyPoint "Running setxkbmap with a local XKB dir:\n" # . is the local dir
|
MyPoint "${RunPrt} setxkbmap command 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?
|
OptXKB="-print | xkbcomp -I -I. -I${XKBDIR} $DISPLAY 2>/dev/null" # Wasn't there a hyphen before $DISPLAY?
|
||||||
fi
|
fi
|
||||||
setxkbmap $SetXKB $OptXKB
|
if [ ${PrntCmd} == 'yes' ]; then
|
||||||
|
MyEcho "setxkbmap ${SetXKB} ${OptXKB}"
|
||||||
|
else
|
||||||
|
setxkbmap ${SetXKB} ${OptXKB}
|
||||||
|
fi
|
||||||
MyEcho ""
|
MyEcho ""
|
||||||
|
|
||||||
## Add the setxkbmap command to a file, if specified. Note the quotes necessary for FileXKB.
|
## Add the setxkbmap command to a file, if specified. Note the quotes necessary for FileXKB.
|
||||||
|
|
|
@ -25,23 +25,32 @@ They work just fine with nearly all other versions and distros, though.
|
||||||
Note that the `base` and `evdev` rules are compiled slightly differently, so I provide both. Their `.lst` and `.xml` counterparts are identical/aliases.
|
Note that the `base` and `evdev` rules are compiled slightly differently, so I provide both. Their `.lst` and `.xml` counterparts are identical/aliases.
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
FIXD:
|
||||||
|
-----
|
||||||
|
* The setkb.sh script wasn't working as it should. It got an error saying, e.g., "model pc104 doesn't exist".
|
||||||
|
- Shortstrs like `4ns` and `5cas` worked, as did `4aw` or `5w`. `4ws` didn't; gave "pc104/pc105 doesn't exist" errors.
|
||||||
|
- Identified these bugs: `DH-Mod` -> `DH_Mod` && "#{ModStr}" -> "${ModStr}".
|
||||||
|
- Furthermore, the layout was empty if setkb.sh can't run the setxkbmap cmd to determine layout.
|
||||||
|
- Added a conditional to see if the command was run successfully or default to 'us'
|
||||||
|
- Furthermore, the variant defaults to 'cmk_ed_us' instead of 'basic'? Because of a default setting, or what? It's OK though.
|
||||||
|
- Models `5s`, `5c` or `5cs` still not working, giving errors like `5s doesn't exist`. `5ns` worked.
|
||||||
|
- The error was not having a case model for the empty string ''.
|
||||||
|
- Giving a weird KbdStr could lead to weirdness. Now it gives an error message.
|
||||||
|
<br>
|
||||||
|
|
||||||
|
2FIX:
|
||||||
|
-----
|
||||||
|
* WSL1 uses xorg rules. I've only prepared for evdev and base. How to solve that? But xorg -> base by link!
|
||||||
|
- Is there another reason, then, that setxkbmap can't see my changes? The files are installed.
|
||||||
|
|
||||||
|
* Local dir by setkb.sh isn't working?
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
-----
|
-----
|
||||||
* Rework ergo model names.
|
* The `pc105curl` model is actually a CurlAngle model, and thus badly named. Fix?!
|
||||||
- I'd like to use a model string `pc104`/`pc105` in setkb, which would simplify the case search in `SetXStr`.
|
- All the Curl models seem messy? What was I thinking? But maybe to avoid the option thing, they could still be useful?
|
||||||
- Then, the mods should have the same names, e.g., `pc104awide`/`pc105awide` instead of `pc104aw-zqu`/`pc105aw-sl`.
|
|
||||||
- Use `#angle`, `#wide`, `#awide` (and pc104awing).
|
|
||||||
- Is there currently no ISO-Wide option? No. That's because the Angle mod is "mandatory". But still, for consistency.
|
|
||||||
- Hide the AWing option from menus? It's pretty arcane and not really recommended.
|
|
||||||
- The `pc105curl` model is actually a CurlAngle model, and thus badly named. Fix. All the Curl models seem messy?
|
|
||||||
|
|
||||||
* Sym mod implementation
|
|
||||||
- The Sym mod should not be implemented as hard/model; it must not rearrange Extend.
|
|
||||||
- Better to make a new symbols/symbolkeys file, and put all symbol key definitions in there.
|
|
||||||
- That'd be nice for any other (not too radical) alt-layouts as well, I should think?
|
|
||||||
- Then select sym mod according to wide status, as an option.
|
|
||||||
- Update setkb.sh to handle all that.
|
|
||||||
|
|
||||||
* Better instructions for Wayland?
|
* Better instructions for Wayland?
|
||||||
- Depends on your Wayland Compositor (Sway is common?)
|
- Depends on your Wayland Compositor (Sway is common?)
|
||||||
|
@ -81,8 +90,6 @@ TODO:
|
||||||
* Check out the compose:102 option. This would be similar to what I've used in EPKL for Windows! It's also present in some other layouts.
|
* Check out the compose:102 option. This would be similar to what I've used in EPKL for Windows! It's also present in some other layouts.
|
||||||
- Add compose:102 in the default setkb options? Inconsistent between ISO and ANSI, just add a pro-tip?
|
- Add compose:102 in the default setkb options? Inconsistent between ISO and ANSI, just add a pro-tip?
|
||||||
|
|
||||||
* Echo the setxkbmap command when using setkb.sh, for ease of troubleshooting! Also make the script able to output the command for piping.
|
|
||||||
|
|
||||||
* Add a localectl option to setkb.sh? So people can choose that or setxkbmap. Eventually, even more variants such as Sway?
|
* Add a localectl option to setkb.sh? So people can choose that or setxkbmap. Eventually, even more variants such as Sway?
|
||||||
|
|
||||||
* Problems with Super+<letter> shortcuts: https://github.com/DreymaR/BigBagKbdTrixXKB/issues/23#issuecomment-1027839924
|
* Problems with Super+<letter> shortcuts: https://github.com/DreymaR/BigBagKbdTrixXKB/issues/23#issuecomment-1027839924
|
||||||
|
@ -176,7 +183,20 @@ HOLD:
|
||||||
|
|
||||||
DONE:
|
DONE:
|
||||||
-----
|
-----
|
||||||
* Update xkb-data to 2.35.1.1 as of 2023-05-31 (package updated 2022-04-05)
|
* Echo the setxkbmap command when using setkb.sh, for ease of troubleshooting! Also make the script able to output the command for piping?
|
||||||
|
|
||||||
|
* Reworked ergo model names.
|
||||||
|
- Mods should have modularly related names, e.g., `pc104awide`/`pc105awide` instead of `pc104aw-zqu`/`pc105aw-sl`.
|
||||||
|
- Converted, therefore, to `#angle`, `#wide`, `#awide` (and the "arcane" `pc104awing`, now hidden from menus).
|
||||||
|
|
||||||
|
* Sym mod implementation.
|
||||||
|
- The Sym mod can not be implemented as hard/model, as it must not rearrange Extend. Like Curl, it is an `option` mod.
|
||||||
|
- Made a symbols/symkeys file, and put all symbol key definitions in there.
|
||||||
|
- There are `non-wide`, `wide-104` and `wide-105` variants. The latter two build on the Colemak-Wide ergo mods.
|
||||||
|
- The `setkb.sh` script is updated to handle these with an `s` shortstr syntax, so it respects `caws` nomenclature.
|
||||||
|
- This should be nice for use with any other layouts that don't touch symbol keys as well! Even QWERTY.
|
||||||
|
|
||||||
|
* Update xkb-data to 2.35.1.1 as of 2023-05-31 (package updated 2022-04-05).
|
||||||
- The [freedesktop.org GitLab repo][XKBgitLb] is the freshest there is? But it has the rules in raw/uncompiled format.
|
- The [freedesktop.org GitLab repo][XKBgitLb] is the freshest there is? But it has the rules in raw/uncompiled format.
|
||||||
- So, instead use the [Debian Sid xkb-data package][XKB-DebS] which is the most updated one in actual use.
|
- So, instead use the [Debian Sid xkb-data package][XKB-DebS] which is the most updated one in actual use.
|
||||||
- Add the patch that fixes the hobbled Colemak (LatAm, Colemak for Gaming) variant
|
- Add the patch that fixes the hobbled Colemak (LatAm, Colemak for Gaming) variant
|
||||||
|
|
Loading…
Reference in New Issue