The Complete Computer

My Custom Keyboard Layout

LifeTechEmacsArcology

It seems silly to me that such "valuable" keyboard real-estate on the default QWERTY is left to <>; I rebind them instead to !? and shift things around to fill the gaps:

  • Shift + comma produces an exclamation point

  • Shift + period produces a question mark

  • Shift + slash produces a backslash

  • Shift + 1 produces a less-than mark

  • Shift + backslash produces a greater-than mark

On my custom keyboards, these are put in reasonable places, hitting Shift + NUMBER is not something I am looking to do, as I have a dedicated symbol layer. This isn't universal, however. By default, Shift + Backslash produces a pipe character, which is also in my Keyboardio Atreus 's symbol layer.

nix source: :tangle ~/arroyo-nix/nixos/xmodmap.nix
{ pkgs, ... }: let punctFile = pkgs.writeText "punctuations.xkb" '' default partial alphanumeric_keys modifier_keys xkb_symbols "rr_punctuations" { include "pc+us(basic)+inet(evdev)" name[Group1]= "US ASCII, punctuation swap"; key <AE01> {[ 1, less ]}; key <BKSL> {[ bar, greater ]}; key <AB08> {[ comma, exclam ]}; key <AB09> {[ period, question ]}; key <AB10> {[ slash, backslash ]}; }; ''; in { # load shift-sign changes # services.xserver.displayManager.sessionCommands = "${pkgs.xorg.xkbcomp}/bin/xkbcomp ${compiledLayout} $DISPLAY"; services.xserver.xkb = { model = "pc104"; layout = "punctual"; # xkbVariant = ""; # options = "ctrl:nocaps"; extraLayouts = { punctual = { description = "Shift ,. become !?"; languages = [ "eng" ]; symbolsFile = punctFile; }; }; }; console.useXkbConfig = true; }