A mix of the typical US and Slovak keyboard layout that I prefer
Find a file
2026-09-04 20:19:57 +02:00
rules Claude rewrite + upgrades 2026-09-04 20:19:57 +02:00
symbols Claude rewrite + upgrades 2026-09-04 20:19:57 +02:00
install.sh Claude rewrite + upgrades 2026-09-04 20:19:57 +02:00
README.md Claude rewrite + upgrades 2026-09-04 20:19:57 +02:00

skmod — Slovak (QWERTY) / US hybrid keyboard layout

A mix of the Slovak QWERTY layout and the US layout: US punctuation and number row, Slovak diacritics on AltGr.

It installs as its own layout called skmod, in its own file. The stock sk layout is left alone, so both show up in your keyboard settings and you can switch between them.

Tested on Kubuntu, Debian 13 and Arch (Plasma/Wayland, Plasma/X11, GNOME).

Install

For the current user only, no root needed:

./install.sh

This drops the layout into ~/.config/xkb/, which is read by everything that uses libxkbcommon — i.e. every Wayland session (Plasma 6, GNOME) on Kubuntu, Debian 13 and Arch.

X11 sessions do not read ~/.config/xkb. If you are on X11 (check with echo $XDG_SESSION_TYPE), install system-wide instead:

sudo ./install.sh --system

That copies the layout to /usr/share/X11/xkb/symbols/skmod and adds an entry to /usr/share/X11/xkb/rules/evdev.xml (a backup is written next to it as evdev.xml.before-skmod). It never touches the sk file.

Then log out and back in, and add Slovak (QWERTY, modified) in your keyboard settings:

  • Plasma: System Settings → Keyboard → Layouts → Add
  • GNOME: Settings → Keyboard → Input Sources → + → Slovak. If GNOME's list hides it, set it directly:
    gsettings set org.gnome.desktop.input-sources sources "[('xkb','skmod')]"
    
  • Anywhere: setxkbmap skmod

Uninstall

./install.sh --uninstall            # user install
sudo ./install.sh --system --uninstall

Restoring the stock Slovak layout

If you previously pasted this layout over /usr/share/X11/xkb/symbols/sk, put the original file back before installing:

sudo apt install --reinstall xkeyboard-config   # Debian / Kubuntu
sudo pacman -S xkeyboard-config                 # Arch

Levels

Level Modifier
1 plain
2 Shift
3 AltGr
4 AltGr + Shift

Diacritics (AltGr)

á ä on A, é € on E, í → on I, ó ô on O, ú ↕ on U, ý on Y, ŕ on R, ť on T, š on S, ď on D, ľ ĺ on L, ž ° on Z, č on C, ň on N, @ on V, | on W.

Superscripts on AltGr + number row, subscripts on AltGr+Shift + number row. Dead keys live on the bracket, semicolon, quote, backslash and slash keys.

Arrows and degree

Added in this version, all on AltGr+Shift:

Keys Character
AltGr+Shift+K ↑ U+2191
AltGr+Shift+J ↓ U+2193
AltGr+Shift+H ← U+2190
AltGr+Shift+I → U+2192 (unchanged, was already there)
AltGr+Shift+U ↕ U+2195
AltGr+Shift+M ↔ U+2194
AltGr+Shift+Z ° degree

h j k follow Vim's left/down/up, and → stays on I where it already was. Everything sits on level 4 so the whole arrow family shares one modifier combination; the level 3 (plain AltGr) slots on those keys are still Slovak letters or the latin defaults.

° is one Shift away from where the stock Slovak QWERTY layout puts it (AltGr+Z), which here is taken by ž.

To move any of these, edit symbols/skmod and re-run the installer. The four columns of each key line are levels 1–4.

Notes

  • A xkeyboard-config package upgrade can rewrite evdev.xml and drop the registry entry on a --system install. The symbols file survives; just re-run the installer if the layout disappears from the settings list.
  • Login screens (SDDM/GDM) use their own keyboard configuration and are not affected by a user install.
  • To load the layout into a running X11 session without installing system-wide:
    setxkbmap -I"$HOME/.config/xkb" -layout skmod -print | xkbcomp -I"$HOME/.config/xkb" - "$DISPLAY"
    
  • To check the layout compiles after editing:
    xkbcli compile-keymap --layout skmod > /dev/null
    

Based on the Slovak layout by Kamil Toman, 2001. Modified 2025 by vratk0529.