From 0ca62ca9986d2cd4b80841ee74db19e55a30f34d Mon Sep 17 00:00:00 2001 From: Knyffen Date: Sat, 24 Aug 2024 14:48:31 +0200 Subject: [PATCH] Add EurKey keyboard layout --- shared/assets/eurkey-1.2 | 58 ++++++++++++++++++++++++++++++++++++++++ shared/keyboard.nix | 13 ++++++++- 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 shared/assets/eurkey-1.2 diff --git a/shared/assets/eurkey-1.2 b/shared/assets/eurkey-1.2 new file mode 100644 index 0000000..175a295 --- /dev/null +++ b/shared/assets/eurkey-1.2 @@ -0,0 +1,58 @@ +default +partial alphanumeric_keys modifier_keys +xkb_symbols "eurkey" +{ + + name[Group1] = "Eurkey"; + + key { [ z, Z, agrave, Agrave ] }; + key { [ x, X, aacute, Aacute ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, igrave, Igrave ] }; + key { [ b, B, iacute, Iacute ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, dead_greek, Multi_key ] }; + key { [ comma, less, ograve, Ograve ] }; + key { [ period, greater, oacute, Oacute ] }; + key { [ slash, question, questiondown, 0x1002026 ] }; + key { [ a, A, adiaeresis, Adiaeresis ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, dstroke, Dstroke ] }; + key { [ f, F, egrave, Egrave ] }; + key { [ g, G, eacute, Eacute ] }; + key { [ h, H, ugrave, Ugrave ] }; + key { [ j, J, uacute, Uacute ] }; + key { [ k, K, U0133, U0132 ] }; + key { [ l, L, oslash, Oslash ] }; + key { [ semicolon, colon, degree, periodcentered ] }; + key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis] }; + key { [ q, Q, ae, AE ] }; + key { [ w, W, aring, Aring ] }; + key { [ e, E, ediaeresis, Ediaeresis ] }; + key { [ r, R, yacute, Yacute ] }; + key { [ t, T, thorn, Thorn ] }; + key { [ y, Y, ydiaeresis, Ydiaeresis ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ i, I, idiaeresis, Idiaeresis ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + key { [ p, P, oe, OE ] }; + key { [ bracketleft, braceleft, guillemotleft, U2039 ] }; + key { [ bracketright, braceright, guillemotright, U203A ] }; + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, at, ordfeminine, twosuperior ] }; + key { [ 3, numbersign, masculine, threesuperior ] }; + key { [ 4, dollar, EuroSign, yen ] }; + key { [ 5, percent, sterling, cent ] }; + key { [ 6, asciicircum, dead_circumflex, dead_caron ] }; + key { [ 7, ampersand, dead_abovering, dead_macron ] }; + key { [ 8, asterisk, doublelowquotemark, singlelowquotemark ] }; + key { [ 9, parenleft, leftdoublequotemark, leftsinglequotemark ] }; + key { [ 0, parenright, rightdoublequotemark, rightsinglequotemark ] }; + key { [ minus, underscore, copyright, numerosign ] }; + key { [ equal, plus, multiply, division ] }; + key { [ backslash, bar, notsign, brokenbar ] }; + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [ KP_Delete, KP_Decimal, comma, comma ] }; + + include "level3(ralt_switch)" +}; diff --git a/shared/keyboard.nix b/shared/keyboard.nix index 5279839..3782034 100644 --- a/shared/keyboard.nix +++ b/shared/keyboard.nix @@ -2,7 +2,18 @@ { console.keyMap = "us"; - services.xserver.xkb.layout = "us"; + services.xserver.xkb = { + layout = "eurkey"; + options = "caps:menu"; + extraLayouts = { + eurkey = { + symbolsFile = ./assets/eurkey-1.2; + languages = ["cat" "dan" "eng" "est" "fao" "fin" "ger" "gre" "gsw" "ita" "lav" "lit" "nld" "nor" "por" "spa" "swe"]; + description = "EurKEY layout from https://eurkey.steffen.bruentjen.eu"; + }; + }; + }; + # i18n.inputMethod.enabled = "fcitx5"; } # vim: tabstop=2 softtabstop=2