/cus_klaveska

US Qwerty klávesnice s českými znaky bez potřeby přepínání layoutů.

ČUS kláveska

Pokud programujete, spravujete servery nebo prostě děláte cokoliv techničtějšího na počítači a zároveň potřebujete psát česky, rozhodně si klávesku alespoň vyzkoušejte.

Přepínání mezi českým a anglickým rozložením je jedna z nejhorších věcí, která může potkat programátorovu produktivitu.

Výhodou ČUS klávesky je to, že s minimální obětí - snadné psaní čísel a přehozené písmenko ů - přináší všechny potřebné znaky na jednom rozložení. Díky tomu dokážete v pohodě psát české texty i programovat.

./preview/cus_klaveska_group1.png

Rozdíly oproti US či CZ klávesnici

  • na vrchní řadě nepíšeme čísla, ale klasické české ěščř…
  • čísla píšeme s pravým Alt
  • znak ů je vlevo vedle ě a + ještě o jeden vedle, lépe mrknout na obrázek.
  • místo Caps Lock máme Ctrl
  • Pokud navíc Caps Lock pouze zmáčkneme a nedržíme, chová se jako Esc (je třeba xcape nebo podporu přímo na klávesnici)

Celý layout lze prohlédnout v PDF s layoutem.

Rychlé rozjetí

Pod svým uživatelem:

git clone https://github.com/kepi/cus_klaveska.git
cd cus_klaveska
sudo cp cus_klaveska /usr/share/X11/xkb/symbols/cus_klaveska

Nastavení jako výchozí klávesnice

Debian

sudo cp keyboard /etc/default/keyboard

Arch Linux

sudo localectl set-keymap cus_klaveska ralt_switch,terminate:ctrl_alt_bksp,grp_led:scroll,ctrl:nocaps
sudo localectl set-x11-keymap cus_klaveska ralt_switch,terminate:ctrl_alt_bksp,grp_led:scroll,ctrl:nocaps

Ruční přepnutí

setxkbmap cus_klaveska -option ralt_switch,terminate:ctrl_alt_bksp,grp_led:scroll,ctrl:nocaps

Trošku podrobněji

Přidání keyboard layoutu

Nastavení keyboard layoutu je třeba umístit do souboru /usr/share/X11/xkb/symbols/cus_klaveska

default
xkb_symbols "basic" {
    include "us(basic)"

    name[Group1]="Czech (CUS klaveska)";

    key <TLDE>  { [     equal,           plus,  asciitilde,                grave] };
    key <AE01>  { [     uring,         exclam,           1,           dead_tilde],
                  [         1,         exclam,           1,           dead_tilde] };
    key <AE02>  { [    ecaron,             at,           2,           dead_caron],
                  [         2,             at,           2,           dead_caron] };
    key <AE03>  { [    scaron,     numbersign,           3,      dead_circumflex],
                  [         3,     numbersign,           3,      dead_circumflex] };
    key <AE04>  { [    ccaron,         dollar,           4,           dead_breve],
                  [         4,         dollar,           4,           dead_breve] };
    key <AE05>  { [    rcaron,        percent,           5,       dead_abovering],
                  [         5,        percent,           5,       dead_abovering] };
    key <AE06>  { [    zcaron,    asciicircum,           6,          dead_ogonek],
                  [         6,    asciicircum,           6,          dead_ogonek] };
    key <AE07>  { [    yacute,      ampersand,           7,           dead_grave],
                  [         7,      ampersand,           7,           dead_grave] };
    key <AE08>  { [    aacute,       asterisk,           8,        dead_abovedot],
                  [         8,       asterisk,           8,        dead_abovedot] };
    key <AE09>  { [    iacute,      parenleft,           9,           dead_acute],
                  [         9,      parenleft,           9,           dead_acute] };
    key <AE10>  { [    eacute,     parenright,           0,     dead_doubleacute],
                  [         0,     parenright,           0,     dead_doubleacute] };
    key <AE12>  { [dead_acute,     dead_caron, dead_macron,         dead_cedilla] };

    key <AC10>  { [ semicolon,          colon,       uring,             NoSymbol] };
    key <AC11>  { [apostrophe,       quotedbl,     section,               ssharp] };

//  Odkomentovat pokud potrebujete zpet vas Caps-lock
//  key <CAPS>  { [ ISO_Level5_Shift, BackSpace, Caps_Lock, Caps_Lock, NoSymbol ] };
//  modifier_map Mod3   { ISO_Level5_Shift };
//  include "capslock(grouplock)"

    replace key <CAPS> {  [  ISO_Next_Group, Caps_Lock    ]  };
    modifier_map Lock { Caps_Lock };

    include "level3(ralt_switch)"

//  Odkomentovat pokud potrebujete zpet vas Caps-lock
//  include "level5(caps_switch)"
};

Nastavení keyboard layoutu

Dále je třeba nastavit, aby se tato konfigurace použila. XKB Options použijeme k nastavení Ctrl namísto Caps Lock

Nastavení klávesnice v debianu standardně v /etc/default/keyboard

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="cus_klaveska"
XKBVARIANT=""
XKBOPTIONS="ralt_switch,terminate:ctrl_alt_bksp,grp_led:scroll,ctrl:nocaps"
BACKSPACE="guess"

Duální Ctrl/Escape klávesa místo CapsLock

Pokud je vám to málo, můžete přes xcape nastavit ještě to, aby se Caps Lock při zmáčknutí choval jako Esc a při podržení jako Ctrl.

xcape -e 'Control_L=Escape'

To se může hodit na běžných klávesnicích, které toto neumí ve svém firmware.

Tento xcape si pak samozřejmě musíte přihodit někam do autostart souborů.

Vygenerování aktuálního layoutu do PDF

Tohle není třeba nijak řešit, ale pokud uděláme změny v layoutu, můžeme si chtít refreshnout obrázky.

Aby to šlo pěkně i českými znaky, je třeba pořídit patchnutý program ogonkify.

  1. nainstalujte a2ps (např. apt install a2ps na Debianu nebo pacman -S a2ps na Archu)
  2. spusťte v terminálu [[ -f tools/ogonkify ]] || (cd tools && cp /usr/bin/ogonkify ./ && patch -p0 < ogonkify.patch)

Následně už můžeme spustit vygenerování PDF:

setxkbmap -layout cus_klaveska -print | \
  xkbcomp -xkm - - | \
  xkbprint -color -lc cs_CZ -npk 1 -label symbols -level2 - - | \
  ./tools/ogonkify -XP | \
  ps2pdf - | \
  pdftk - cat 1-endwest output preview/cus_klaveska.pdf

Windows

Obdobně mám rozjeté i na Windows, musím doplnit.