Portál AbcLinuxu, 2. května 2025 23:41
Pokud také pracujete i pod operačními systémy z rodiny MS Windows, pak vám možná také chybí „linuxové“ rozložení české (QWERTZ) klávesnice. V tomto zápisku se dozvíte, co se s tím dá dělat.
Za největší nedostatek standardního českého QWERTZ rozložení kláves ve Windows považuji absenci znaků '
a `
, které mi velmi chybí při ovládání Vimu. Nepotěší ale ani jiné umístění ~
nebo „speciální“ znaků v horní části alfanumerické klávesnice.
Naštěstí i na MS Windows je možné vytvořit si vlastní rozložení kláves. Z webu Microsoftu je možné stáhnout program Microsoft Keyboard Layout Creator, který to umožní. Editovat se pochopitelně nemusí ze „zelené louky“, ale stačí upravit již existující rozložení kláves, které je přítomné v systému.
Já jsem tedy za základ vzal standardní českou QWERTZ klávesnici z MS Windows XP Professional a upravil jsem výše uvedené nedostatky + jsem přidal ještě několik drobných úprav, když už jsem v tom byl. Do rozložení jsem se přitom snažil zasahovat minimálně, takže uživatel, který nepoužívá psaní speciálních znaků přes RALT
přímo z české klávesnice, si vůbec nevšimne, že bylo rozložení změněno. Zdrojový text výsledného rozložení pro Keyboard Layout Creator naleznete na konci zápisku.
Jaké jsou tedy provedené změny? Mapování kláves jsem upravil následovně:
RALT + A
→ ~
RALT + §
→ '
RALT + ;
→ `
RALT + Shift + ;
→ ~
RALT + +
→ !
RALT + ě
→ @
RALT + š
→ #
RALT + č
→ $
RALT + ř
→ %
RALT + Shift + ř
→ ‰
RALT + ž
→ ^
RALT + ý
→ &
RALT + á
→ *
RALT + í
→ (
RALT + é
→ )
RALT + =
→ –
<půlčtverčíková pomlčka>RALT + Shift + =
→ –
<čtverčíková pomlčka>RALT + ´
→ <mezera o velikosti jedné šestiny čtverčíku>RALT + Shift + ´
→ …
RALT + Space
→ <nezlomitelná mezera>RALT + Shift + Space
→ <čtvrtčverčíková mezera>RALT + Shift + -
→ −
<znaménko mínus>RALT + H
→ „
RALT + J
→ “
RALT + Shift + H
→ ‚
RALT + Shift + J
→ ‘
RALT + U
→ “
RALT + I
→ ”
RALT + Shift + U
→ ‘
RALT + Shift + I
→ ’
Konkrétně si rozložení můžete prohlédnout na obrázcích:
Z níže uvedeného zdrojového textu Keyboard Layout Creator dokáže vygenerovat instalační balíček s daným rozložením pro MS Windows. Nevýhodou je, že k instalaci jsou potřeba administrátorská práva. Nosit tedy balíček na flash disku a instalovat jej na potkání na každý počítač s MS Windows, kde musíte pracovat, tedy asi nebude možné. :-/
Keyboard Layout Creator sice není tak mocný, jako můj oblíbený SCIM pod unixovými systémy (neumožňuje např. namapovat na klávesu delší sekvence znaků), ale pořád je to lepší než nic, že?
Zkompilovanou klávesovou mapu si můžete hned stáhnout, zdrojový text souboru cs-typo.klc
s rozložením české linuxové QWERTZ klávesnice pro Keyboard Layout Creator je zde:
------ 8< ------------------------ CUT HERE ------------------------------------ KBD cs-typo "České (typografické)" COPYRIGHT "(c) 2007 Michal Růžička <ruzicka (dot) mich (at) tiscali (dot) cz>" COMPANY "Michal Růžička <ruzicka (dot) mich (at) tiscali (dot) cz>" LOCALENAME "cs-CZ" LOCALEID "00000405" VERSION 1.0 SHIFTSTATE 0 //Column 4 1 //Column 5 : Shft 2 //Column 6 : Ctrl 6 //Column 7 : Ctrl Alt 7 //Column 8 : Shft Ctrl Alt LAYOUT ;an extra '@' at the end is a dead key //SC VK_ Cap 0 1 2 6 7 //-- ---- ---- ---- ---- ---- ---- ---- 02 1 0 002b 1 -1 0021 -1 // PLUS SIGN, DIGIT ONE, <none>, EXCLAMATION MARK, <none> 03 2 SGCap 011b 2 -1 0040 -1 // LATIN SMALL LETTER E WITH CARON, DIGIT TWO, <none>, COMMERCIAL AT, <none> -1 -1 0 011a // LATIN CAPITAL LETTER E WITH CARON 04 3 SGCap 0161 3 -1 0023 -1 // LATIN SMALL LETTER S WITH CARON, DIGIT THREE, <none>, NUMBER SIGN, <none> -1 -1 0 0160 // LATIN CAPITAL LETTER S WITH CARON 05 4 SGCap 010d 4 -1 0024 -1 // LATIN SMALL LETTER C WITH CARON, DIGIT FOUR, <none>, DOLLAR SIGN, <none> -1 -1 0 010c // LATIN CAPITAL LETTER C WITH CARON 06 5 SGCap 0159 5 -1 0025 2030 // LATIN SMALL LETTER R WITH CARON, DIGIT FIVE, <none>, PERCENT SIGN, PER MILLE SIGN -1 -1 0 0158 // LATIN CAPITAL LETTER R WITH CARON 07 6 SGCap 017e 6 -1 005e -1 // LATIN SMALL LETTER Z WITH CARON, DIGIT SIX, <none>, CIRCUMFLEX ACCENT, <none> -1 -1 0 017d // LATIN CAPITAL LETTER Z WITH CARON 08 7 SGCap 00fd 7 -1 0026 -1 // LATIN SMALL LETTER Y WITH ACUTE, DIGIT SEVEN, <none>, AMPERSAND, <none> -1 -1 0 00dd // LATIN CAPITAL LETTER Y WITH ACUTE 09 8 SGCap 00e1 8 -1 002a -1 // LATIN SMALL LETTER A WITH ACUTE, DIGIT EIGHT, <none>, ASTERISK, <none> -1 -1 0 00c1 // LATIN CAPITAL LETTER A WITH ACUTE 0a 9 SGCap 00ed 9 -1 0028 -1 // LATIN SMALL LETTER I WITH ACUTE, DIGIT NINE, <none>, LEFT PARENTHESIS, <none> -1 -1 0 00cd // LATIN CAPITAL LETTER I WITH ACUTE 0b 0 SGCap 00e9 0 -1 0029 -1 // LATIN SMALL LETTER E WITH ACUTE, DIGIT ZERO, <none>, RIGHT PARENTHESIS, <none> -1 -1 0 00c9 // LATIN CAPITAL LETTER E WITH ACUTE 0c OEM_PLUS 0 003d 0025 -1 2013 2014 // EQUALS SIGN, PERCENT SIGN, <none>, EN DASH, EM DASH 0d OEM_2 0 00b4@ 02c7@ -1 2006 2026 // ACUTE ACCENT, CARON (Mandarin Chinese third tone), <none>, SIX-PER-EM SPACE, HORIZONTAL ELLIPSIS 10 Q 1 q Q -1 005c -1 // LATIN SMALL LETTER Q, LATIN CAPITAL LETTER Q, <none>, REVERSE SOLIDUS, <none> 11 W 1 w W -1 007c -1 // LATIN SMALL LETTER W, LATIN CAPITAL LETTER W, <none>, VERTICAL LINE, <none> 12 E 1 e E -1 20ac -1 // LATIN SMALL LETTER E, LATIN CAPITAL LETTER E, <none>, EURO SIGN, <none> 13 R 1 r R -1 -1 -1 // LATIN SMALL LETTER R, LATIN CAPITAL LETTER R, <none>, <none>, <none> 14 T 1 t T -1 -1 -1 // LATIN SMALL LETTER T, LATIN CAPITAL LETTER T, <none>, <none>, <none> 15 Z 1 z Z -1 -1 -1 // LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z, <none>, <none>, <none> 16 U 1 u U -1 201c 2018 // LATIN SMALL LETTER U, LATIN CAPITAL LETTER U, <none>, LEFT DOUBLE QUOTATION MARK, LEFT SINGLE QUOTATION MARK 17 I 1 i I -1 201d 2019 // LATIN SMALL LETTER I, LATIN CAPITAL LETTER I, <none>, RIGHT DOUBLE QUOTATION MARK, RIGHT SINGLE QUOTATION MARK 18 O 1 o O -1 -1 -1 // LATIN SMALL LETTER O, LATIN CAPITAL LETTER O, <none>, <none>, <none> 19 P 1 p P -1 -1 -1 // LATIN SMALL LETTER P, LATIN CAPITAL LETTER P, <none>, <none>, <none> 1a OEM_4 SGCap 00fa 002f 001b 00f7 -1 // LATIN SMALL LETTER U WITH ACUTE, SOLIDUS, ESCAPE, DIVISION SIGN, <none> -1 -1 0 00da // LATIN CAPITAL LETTER U WITH ACUTE 1b OEM_6 0 0029 0028 001d 00d7 -1 // RIGHT PARENTHESIS, LEFT PARENTHESIS, INFORMATION SEPARATOR THREE, MULTIPLICATION SIGN, <none> 1e A 1 a A -1 007e -1 // LATIN SMALL LETTER A, LATIN CAPITAL LETTER A, <none>, TILDE, <none> 1f S 1 s S -1 0111 -1 // LATIN SMALL LETTER S, LATIN CAPITAL LETTER S, <none>, LATIN SMALL LETTER D WITH STROKE, <none> 20 D 1 d D -1 0110 -1 // LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, <none>, LATIN CAPITAL LETTER D WITH STROKE, <none> 21 F 1 f F -1 005b -1 // LATIN SMALL LETTER F, LATIN CAPITAL LETTER F, <none>, LEFT SQUARE BRACKET, <none> 22 G 1 g G -1 005d -1 // LATIN SMALL LETTER G, LATIN CAPITAL LETTER G, <none>, RIGHT SQUARE BRACKET, <none> 23 H 1 h H -1 201e 201a // LATIN SMALL LETTER H, LATIN CAPITAL LETTER H, <none>, DOUBLE LOW-9 QUOTATION MARK, SINGLE LOW-9 QUOTATION MARK 24 J 1 j J -1 201c 2018 // LATIN SMALL LETTER J, LATIN CAPITAL LETTER J, <none>, LEFT DOUBLE QUOTATION MARK, LEFT SINGLE QUOTATION MARK 25 K 1 k K -1 0142 -1 // LATIN SMALL LETTER K, LATIN CAPITAL LETTER K, <none>, LATIN SMALL LETTER L WITH STROKE, <none> 26 L 1 l L -1 0141 -1 // LATIN SMALL LETTER L, LATIN CAPITAL LETTER L, <none>, LATIN CAPITAL LETTER L WITH STROKE, <none> 27 OEM_1 SGCap 016f 0022 -1 0024 -1 // LATIN SMALL LETTER U WITH RING ABOVE, QUOTATION MARK, <none>, DOLLAR SIGN, <none> -1 -1 0 016e // LATIN CAPITAL LETTER U WITH RING ABOVE 28 OEM_7 0 00a7 0021 -1 0027 -1 // SECTION SIGN, EXCLAMATION MARK, <none>, APOSTROPHE, <none> 29 OEM_3 0 003b 00b0@ -1 0060 007e // SEMICOLON, DEGREE SIGN, <none>, GRAVE ACCENT, TILDE 2b OEM_5 0 00a8@ 0027 001c 00a4 -1 // DIAERESIS, APOSTROPHE, INFORMATION SEPARATOR FOUR, CURRENCY SIGN, <none> 2c Y 1 y Y -1 -1 -1 // LATIN SMALL LETTER Y, LATIN CAPITAL LETTER Y, <none>, <none>, <none> 2d X 1 x X -1 0023 -1 // LATIN SMALL LETTER X, LATIN CAPITAL LETTER X, <none>, NUMBER SIGN, <none> 2e C 1 c C -1 0026 -1 // LATIN SMALL LETTER C, LATIN CAPITAL LETTER C, <none>, AMPERSAND, <none> 2f V 1 v V -1 0040 -1 // LATIN SMALL LETTER V, LATIN CAPITAL LETTER V, <none>, COMMERCIAL AT, <none> 30 B 1 b B -1 007b -1 // LATIN SMALL LETTER B, LATIN CAPITAL LETTER B, <none>, LEFT CURLY BRACKET, <none> 31 N 1 n N -1 007d -1 // LATIN SMALL LETTER N, LATIN CAPITAL LETTER N, <none>, RIGHT CURLY BRACKET, <none> 32 M 1 m M -1 -1 -1 // LATIN SMALL LETTER M, LATIN CAPITAL LETTER M, <none>, <none>, <none> 33 OEM_COMMA 0 002c 003f -1 003c -1 // COMMA, QUESTION MARK, <none>, LESS-THAN SIGN, <none> 34 OEM_PERIOD 0 002e 003a -1 003e -1 // FULL STOP, COLON, <none>, GREATER-THAN SIGN, <none> 35 OEM_MINUS 0 002d 005f -1 002a 2212 // HYPHEN-MINUS, LOW LINE, <none>, ASTERISK, MINUS SIGN 39 SPACE 0 0020 0020 0020 00a0 2005 // SPACE, SPACE, SPACE, NO-BREAK SPACE, FOUR-PER-EM SPACE 56 OEM_102 0 005c 007c -1 -1 -1 // REVERSE SOLIDUS, VERTICAL LINE, <none>, <none>, <none> 53 DECIMAL 0 002c 002c -1 -1 -1 // COMMA, COMMA, , , DEADKEY 00b4 006e 0144 // n -> ń 0063 0107 // c -> ć 0079 00fd // y -> ý 0061 00e1 // a -> á 0073 015b // s -> ś 006c 013a // l -> ĺ 0065 00e9 // e -> é 0072 0155 // r -> ŕ 0075 00fa // u -> ú 0069 00ed // i -> í 007a 017a // z -> ź 006f 00f3 // o -> ó 004e 0143 // N -> Ń 0043 0106 // C -> Ć 0059 00dd // Y -> Ý 0041 00c1 // A -> Á 0053 015a // S -> Ś 004c 0139 // L -> Ĺ 0045 00c9 // E -> É 0052 0154 // R -> Ŕ 0055 00da // U -> Ú 0049 00cd // I -> Í 005a 0179 // Z -> Ź 004f 00d3 // O -> Ó 0020 00b4 // -> ´ DEADKEY 02c7 006e 0148 // n -> ň 0063 010d // c -> č 0064 010f // d -> ď 0073 0161 // s -> š 006c 013e // l -> ľ 0065 011b // e -> ě 0072 0159 // r -> ř 0074 0165 // t -> ť 007a 017e // z -> ž 004e 0147 // N -> Ň 0043 010c // C -> Č 0044 010e // D -> Ď 0053 0160 // S -> Š 004c 013d // L -> Ľ 0045 011a // E -> Ě 0052 0158 // R -> Ř 0054 0164 // T -> Ť 005a 017d // Z -> Ž 0020 02c7 // -> ˇ DEADKEY 00b0 0061 00e5 // a -> å 0075 016f // u -> ů 0041 00c5 // A -> Å 0055 016e // U -> Ů 0020 00b0 // -> ° DEADKEY 00a8 KEYNAME 01 Esc 0e Backspace 0f Tab 1c Enter 1d Ctrl 2a Shift 36 "Right Shift" 37 "Num *" 38 Alt 39 Space 3a "Caps Lock" 3b F1 3c F2 3d F3 3e F4 3f F5 40 F6 41 F7 42 F8 43 F9 44 F10 45 Pause 46 "Scroll Lock" 47 "Num 7" 48 "Num 8" 49 "Num 9" 4a "Num -" 4b "Num 4" 4c "Num 5" 4d "Num 6" 4e "Num +" 4f "Num 1" 50 "Num 2" 51 "Num 3" 52 "Num 0" 53 "Num Del" 54 "Sys Req" 57 F11 58 F12 7c F13 7d F14 7e F15 7f F16 80 F17 81 F18 82 F19 83 F20 84 F21 85 F22 86 F23 87 F24 KEYNAME_EXT 1c "Num Enter" 1d "Right Ctrl" 35 "Num /" 37 "Prnt Scrn" 38 "Right Alt" 45 "Num Lock" 46 Break 47 Home 48 Up 49 "Page Up" 4b Left 4d Right 4f End 50 Down 51 "Page Down" 52 Insert 53 Delete 54 <00> 56 Help 5b "Left Windows" 5c "Right Windows" 5d Application KEYNAME_DEAD 00b4 "ACUTE ACCENT" 02c7 "CARON (Mandarin Chinese third tone)" 00b0 "DEGREE SIGN" 00a8 "DIAERESIS" DESCRIPTIONS 0409 České (typografické) LANGUAGENAMES 0409 Czech (Czech Republic) ENDKBD ------ 8< ------------------------ CUT HERE ------------------------------------
Tiskni
Sdílej:
Řekl bych, že bez admina opravdu není šance.
Mimochodem, teď mi vrtá hlavou – je možné pod Linuxem definovat mapy pro xkb bez rootovských práv? Tedy ne že bych to potřeboval, používám SCIM, ale jen mě to tak napadlo.
setxkbmap(1)
Manuálovou stránku jsem samozřejmě četl. Podle té se mi ale právě zdá, že ne. (Nemůžu mu podstrčit vlastní mapu, která není v systémovém adresáři.) Proto se ptám.
-config
a -rules
.
Aha, ano, vypadá to, že přes xmodmap
by to mělo jít bez roota.
Uf, už jsem se bál, že Linux v tomto ohledu není lepší než Wokna. :-P
No, tak by mělo jít použít i setxkbmap
. Stačí použít přepínač -I~/my/config/
pro určení adresáře s konfiguračními soubory. Škoda, že to není napsáno přímo v manuálové stránce.
To snad ani neni zac.Díky, super! konečně můžu dělat "
".
Najdu někde v systemu mapu klávesnice?Co myslis tou mapou
Tak tedy nevím, ale pokud jsi potřeboval dva měsíce na to, aby jsi na české klávesnici objevil rovnítko, tak ona možná chyba bude někde trošku jinde než v rozložení. Mám pocit, že i kdybys klávesnici viděl prvně v životě, tak bys na něj musel narazit nejpozději do pěti minut. I kdybys měl zkusit zamáčknout každou klávesu dvakrát.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.