The main Big Bag pages are found at https://dreymar.colemak.org/. To see XKB info boxes there, select the Tux platform icon.
setxkbmap
command.~/.bashrc
; check your distro for which file(s) to use.setkb.sh "model locale variant"
shortstring syntax in the BigBag.
"5caw us us"
: PC105(ISO) board with Curl(DH)AngleWide mods, US locale, Cmk-eD UniversalSymbols variant.4n
instead of 5caw
. Look in the scripts.setxkbmap -v 9
.
setkb 4n
for ANSI keyboards; 5n
for ISO. What you want depends on your locale.setkb 4n/5n [loc [var]]
to get back your locale layout/model. The [var]
is for variant; omit it for the default/basic one.Ctrl+Alt+F#
TTY shortcuts, FKey Extend is now disabled by default.
symbols/extend
file.setxkbmap -v 9 -option "" -option "misc:extend,lv5:caps_switch_lock,compose:menu"
.
-option ""
clears any existing option settings, while the one with non-empty arguments add to existing options.xkb-data
package is very consistent between distros. I've use Debian xkb-data, sometimes with some Ubuntu updates.dpkg -x
or ar -xv
(from binutils
) on Linux
dpkg-reconfigure
command:
sudo dpkg-reconfigure keyboard-configuration
localectl set-x11-keymap
command to make changes persistent; you may have to run it with sudo
privileges[sudo] localectl [--no-convert] set-x11-keymap layout [model [variant [options]]]
sudo localectl set-x11-keymap us pc105awide cmk_ed_us "lv5:caps_switch_lock,misc:extend"
layout
and [variant]
, you can use for instance "us,us"
and "cmk_ed_us,"
to switch between Cmk-eD and the default us layout--no-convert
to not convert between closest matching console and X11 keyboard mappings; this precludes applying as system console mappingWayland has a somewhat different tack: It uses xkb-data files, but not an X server. So the setkb script won't work there, but the BigBag as such will.
It depends on which Wayland Compositor you're using. Sorry, but I don't know them all. See its docs for more info?
For the popular Sway compositor, add a piece like this example to your ~/.config/sway/config
file:
input * {
xkb_model pc105awide
xkb_layout us
xkb_variant cmk_ed_us
xkb_options lv5:caps_switch_lock,misc:extend,compose:menu
}
And here's one for Hyprland's ~/.config/hypr/hyprland
file:
input {
kb_rules=evdev
kb_model=pc105awide
kb_layout=us
kb_variant=cmk_ed_dh
kb_options=misc:extend,lv5:caps_switch_lock,compose:menu
repeat_rate=40
repeat_delay=200
}
The repeat settings are of course optional. Some like a higher repeat rate and a lower delay, and this is how to get that.
Here's a KDE Settings ~/.config/kxkbrc
file. It can be set via the Settings GUI, or edited directly:
[$Version]
update_info=kxkb_variants.upd:split-variants,kxkb.upd:remove-empty-lists,kxkb.upd:add-back-resetoptions
[Layout]
DisplayNames=,
LayoutList=us,us
LayoutLoopCount=-1
Model=pc104awide
Options=grp:alt_shift_toggle,grp:win_space_toggle,caps:backspace,lv3:ralt_switch_multikey,compose:menu
ResetOldOptions=true
ShowFlag=false
ShowLabel=true
ShowLayoutIndicator=true
ShowSingle=true
Use=true
VariantList=cmk_ed_dh,
This one uses Caps as a Backspace. See the example above to upgrade it to an Extend key.
In NixOS without Wayland/Sway, services.xserver should work:
services.xserver = {
layout = "us";
xkbVariant = "cmk_ed_dh";
xkbModel = "pc105awide";
xkbOptions = "misc:extend,lv5:caps_switch_lock,compose:menu";
};
To get the xserver layout in your console as well, use console.useXkbConfig
in your configuration.nix
file.
I guess the solution will be quite similar for other compositors, but I don't know more at the moment.
See DREYMAR'S BigBag XKB topic on the Colemak Forums.
There are plenty of explanations and further links in there.
TODO/DONE for this repo are found in the xmod folder README.
One good source of info on the xkb-data
package is the xkeyboard-config repository itself, and its docs
folder. The repo is found at GitLab.
Or, have a look in the X.Org Wiki.
https://www.x.org/wiki/XKB/
Arch has good documentation on all things XKB.
https://wiki.archlinux.org/title/X_keyboard_extension
https://wiki.archlinux.org/title/Xorg/Keyboard_configuration
Ivan Pascal is a grandmaster of XKB; to learn it better you should definitely consult his site. Though maybe a bit less complete for us who can't read Russian, it's well worth it.
http://pascal.tsu.ru/en/xkb
http://pascal.tsu.ru/en/xkb/gram-symbols.html
Happy XKB hacking!
DreymaR