Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
/usr/share/X11/xkb
. Nás bude zajímat zejména podadresář symbols
, ve kterém jsou uloženy jednotlivé mapy kláves jako textové soubory. Nejspíše nás bude zajímat soubor cz
nebo us
, který obsahuje českou, resp. americkou mapu kláves.
Je možné zasahovat přímo do těchto souborů. To má několik nevýhod: upravené mapy kláves mohou být přepsány při aktualizaci operačního systému, změny se projeví u všech uživatelů (to někdy může být žádoucí) a je nutné k těmto souborům přistupovat s právy roota.
Je možné také vlastní mapu kláves k těmto přidat. Další možností je vytvořit si mapu kláves mimo tuto adresářovou stukturu a zvolit ji připraveným skriptem (viz níže). Touto možností se tento zápisek zabývá.
~/kbd
. V něm si vytvoříme adresář symbols
, který odpovídá celosystémovému /usr/share/X11/xkb/symbols
.
~/kbd/main.mkb
. Jeho obsah může být následující:
default partial alphanumeric_keys modifier_keys xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+us(cz_sk_de)+inet(evdev)+custom" }; };Na posledním řádku s
include
je uveden seznam map kláves, které se budou nastavovat. Později uvedená přepisuje předchozí. Zde upravuji variantu cz_sk_de
rozvržení us
. Pokud chcete upravovat například českou klávesnici, napište místo us(cz_sk_de)
toto: cz
Poslední uvedenou mapou kláves je custom
, kterou si nyní vytvoříme.
~/kbd/symbols/custom
bude obsahovat úpravy mapy kláves.
Napišme do něj toto:
partial xkb_symbols { // … }Syntaxe je nápadně podobná programovacímu jazyku C. Komentáře zajsou uzavřeny v
/*
a */
nebo, jsou-li na konci řádku, jsou uvozenu //
.
Předtím, než začneme vyjmenovávat klávesy a jejich význam, určíme typ kláves. Ten se vztahuje vždy jen na klávesy uvedené po něm a to až do nastavení jiného typu. Typ se určí pomocí:
key.type = "ONE_LEVEL";
ONE_LEVEL
znamená, že klávesa není ovlivněna modifikátory (Shift, Alt Gr). Další možnou hodnotou je FOUR_LEVEL
(pro klávesy s různými významy podle toho, jestli jsou stisknuty klávesy Shift a Alt Gr). Také nás může zajímat typ FOUR_LEVEL_MIXED_KEYMAP
, který funguhe podobně jako FOUR_LEVEL
, ale pokud je zapnutý Num Lock, obrátí se výžnam klávesy Shift.
Potom, co jsme určili typ kláves, můžeme zapisovat jednotlivé klávesy. Formát je následující (pro klávesu typu FOUR_LEVEL
:
key <AC05> { [ a, b, c, d ] };Tento řádek nám určí to, že klávesa s kódem
AC05
(klávesa „g“) bude psát „a“, se shiftem „b“, s Alt Gr „c“ a se Shiftem a Alt Gr „d“.
Namísto „a“, „b“, „c“ a „d“ můžete psát jiné názvy symbolů. Jejich výčet naleznete v souboru /usr/include/X11/keysymdef.h
na řádcích #define
(v souboru custom
ale bez XK_
). Pro určení znaku Unicode použijte zápis Uxxxx
, kde xxxx je kód znaku šestnáčtkově.
U kláves typu ONE_LEVEL
pište jen jeden symbol:
key <AC05> { [ a ] };Pokud chcete například zaměnit Escape a Caps Lock, napište:
key.type = "ONE_LEVEL"; key <CAPS> { [ Escape ] }; key <ESC> { [ Caps_Lock ] };
~/kbd
a spusťte xkbcomp -I ~/kbd main.kbd "$DISPLAY"
. Dávejte si pozor na to, že si mužete změnou mapy kláves znemožnit další práci s počítačem (do změny mapy nebo ukončení X serveru). Doporučuji Vám připravit si další počítač s SSH spojením nebo v menu pro změnu mapy kláves v desktopovém prostředí.
Změny vrátíte například pomocí setxkbmap
:
setxkbmap czPokud se připojujete po SSH, budete nejspíše muset nastavit proměnnou
DISPLAY
. Např.:
DISPLAY=:0 setxkbmap czPro trvalé nastavení z příkazu vytvořte skript a nastavte jeho spuštení po přihlášení.
us(cz_sk_de)
rozšířená o klávesu compose, trojtečku, české uvozovky na Alt Gr+vg, anglické na Alt Gr+gh a numerickou klávesnicí pro psaní šestnáctkových čísel a zadávání do tabulkového procesoru volené pomocí Alt Gr.
Klávesa Print Screen (krátkým stiskem) přepne numerickou klávesnici do režimu pro kreslení rámečků.
partial xkb_symbols { name[Group1] = "US/CZ keyboard extension"; name[Group2] = "Typography and graphics"; // Swap Escape and Caps Lock key.type = "ONE_LEVEL"; key <CAPS> { [ Escape ] }; key <ESC> { [ Caps_Lock ] }; // Group switching key.type = "FOUR_LEVEL"; key <PRSC> { [ ISO_Next_Group, ISO_Prev_Group ] }; // NBSP key.type = "FOUR_LEVEL"; key <SPCE> { [ space, nobreakspace, nobreakspace, nobreakspace ] }; //// Group 1 //// // Alphabetic key mappings key.type = "FOUR_LEVEL"; key <AC05> { [ g, G, leftdoublequotemark, leftsinglequotemark ] }; key <AC06> { [ h, H, rightdoublequotemark, rightsinglequotemark ] }; key <AB04> { [ v, V, doublelowquotemark, singlelowquotemark ] }; key <AC10> { [ semicolon, colon, uring, Uring ] }; key <AD11> { [ bracketleft, braceleft, uacute, Uacute ] }; key <AC11> { [ apostrophe, quotedbl, U2026, section ] }; // U2026 — Hor. ellipsis key <AC07> { [ j, J, U2193, U21D3 ] }; // U2193 — down arrow; U21D3 — double down arrow key <AC08> { [ k, K, U2191, U21D1 ] }; // U2191 — up arrow; U21D1 — double up arrow // ↓↓↓ Empty level below ↓↓↓ key <AC09> { [ l, L, U22EE ] }; // U22EE — vertical ellipsis // ↓↓↓ Empty level below ↓↓↓ key <AD10> { [ p, P, U03C0 ] }; // U03C0 — greek small pi // Compose key key.type = "ONE_LEVEL"; key <LSGT> { [ Multi_key ] }; // Hex numpad │ // ╭─╯ // ┏━┳┳━━━━━━━┻━━━━━━━━┓ // ┣━┻┻━┯━━━━┯━━━━┯━━━━┫ Modifiers: // ┃ │ │ │ ┃ // ┃ ⇩│÷ /│✕ *│ -┃ ┏━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓ // ┠────┼────┼────┼────┨ ┃ AltGr + Shift │ Shift ┃ // ┃A │B │C │ ┃ ┠───────────────┼───────────────┨ // ┃a 7│b 8│c 9│ ┃ ┃ AltGr │ (none) ┃ // ┠────┼────┼────┤T ┃ ┗━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛ // ┃D │E │F │A ┃ // ┃d 4│e 5│f 6│B +┃ // ┠────┼────┼────┼────┨ // ┃; │ │NB │ ┃ // ┃: 1│x 2│SP 3│ ┃ // ┠────┴────┼────┤ R┃ // ┃ │, │ E┃ // ┃ 0│. .│= T┃ // ┗━━━━━━━━━┷━━━━┷━━━━┛ key.type = "FOUR_LEVEL_MIXED_KEYPAD"; key <KP1> { [ KP_End, KP_1, colon, semicolon ] }; key <KP2> { [ KP_Down, KP_2, x ] }; key <KP3> { [ KP_Next, KP_3, space, nobreakspace ] }; key <KP4> { [ KP_Left, KP_4, d, D ] }; key <KP5> { [ NoSymbol, KP_5, e, E ] }; key <KP6> { [ KP_Right, KP_6, f, F ] }; key <KP7> { [ KP_Home, KP_7, a, A ] }; key <KP8> { [ KP_Up, KP_8, b, B ] }; key <KP9> { [ KP_Prior, KP_9, c, C ] }; key <KPEN> { [ KP_Enter, KP_Enter, KP_Equal ] }; key <KPDL> { [ period, period, comma ] }; key <KPDV> { [ KP_Divide, KP_Divide, U00f7 ] }; key <KPMU> { [ KP_Multiply, KP_Multiply, U2715 ] }; key <KPAD> { [ KP_Add, KP_Add, Tab ] }; //// Group 2 //// // Box drawing keypad // // ⇩ /│ * -- (minus becomes horizontal line) // 7┌ 8┬ 9┐ SP (plus becomes space) // 4├ 5┼ 6┤ // 1└ 2┴ 3┘ // // No modifiers Thin lines ├┼┤ // Shift/NumLockOff Thicker lines ┣╋┫ // AltGr Double lines ╠╬╣ // AltGr+Shift Special lines ╭╮╰╯┠┨┯┷ key <KP1> { type[Group2] = "FOUR_LEVEL_MIXED_KEYPAD", symbols[Group2] = [ U2517, U2514, U255A, U2570 ] }; key <KP2> { type[Group2] = "FOUR_LEVEL_MIXED_KEYPAD", symbols[Group2] = [ U253B, U2534, U2569, U2537 ] }; key <KP3> { type[Group2] = "FOUR_LEVEL_MIXED_KEYPAD", symbols[Group2] = [ U251b, U2518, U255d, U256f ] }; key <KP4> { type[Group2] = "FOUR_LEVEL_MIXED_KEYPAD", symbols[Group2] = [ U2523, U251c, U2560, U2520 ] }; key <KP5> { type[Group2] = "FOUR_LEVEL_MIXED_KEYPAD", symbols[Group2] = [ U254b, U253c, U256c ] }; key <KP6> { type[Group2] = "FOUR_LEVEL_MIXED_KEYPAD", symbols[Group2] = [ U252b, U2524, U2563, U2528 ] }; key <KP7> { type[Group2] = "FOUR_LEVEL_MIXED_KEYPAD", symbols[Group2] = [ U250f, U250c, U2554, U256d ] }; key <KP8> { type[Group2] = "FOUR_LEVEL_MIXED_KEYPAD", symbols[Group2] = [ U2533, U252c, U2566, U252f ] }; key <KP9> { type[Group2] = "FOUR_LEVEL_MIXED_KEYPAD", symbols[Group2] = [ U2513, U2510, U2557, U256e ] }; key <KPDV> { type[Group2] = "FOUR_LEVEL_MIXED_KEYPAD", symbols[Group2] = [ U2503, U2502, U2551 ] }; key <KPSU> { type[Group2] = "FOUR_LEVEL_MIXED_KEYPAD", symbols[Group2] = [ U2501, U2500, U2550 ] }; key <KPAD> { type[Group2] = "ONE_LEVEL", symbols[Group2] = [ space ] }; include "level3(ralt_switch)" };
Tiskni
Sdílej:
vubec nevim co to jakoby je tamten režim kreslení rámečků :O :O
supr blogísek jinak :D ;D
nj ale nevim k čemu to je jakože dobrý :D
╭────┬─────────╮ │ č. │ slovo │ ├────┼─────────┤ │ 01 │ Pro │ │ 02 │ tabulky │ │ 03 │ v │ │ 04 │ prostém │ │ 05 │ textu │ └────┴─────────┘
to mě nenapadlo :D :D
A kdybys to nechtěla vyťukávat na klávesnici, tak můžeš jedním příkazem:
relpipe-in-cli --relation 'textová_tabulka' --attribute 'č.' string --attribute 'slovo' string --records 01 Pro 02 tabulky 03 v 04 prostém 05 textu | relpipe-out-tabular --write-types false --write-record-count false --write-relation-name false
získat přesně stejný výstup.
! -*- coding: utf-8 -*- ! print semicolon instead of section {;, §} ! keycode 48 = section exclam section exclam apostrophe ssharp apostrophe keycode 48 = semicolon exclam semicolon exclam apostrophe ssharp apostropheTohle píše středník místo paragrafu.
ACTION=="add",KERNEL=="kb*",RUN=="/bin/true"
/usr/share/X11/xkb/rules/
. Nemám vyzkoušeno, jestli si jde přidat vlastní do domovského adresáře.
setxkbmp
u postačí jen mapa v …/symbols/
, volítka v desktopových prostředí hledají informace jinde.
Jak je na tom Wayland? Je možné na něm upravit klávesovou mapu?
/usr/share/X11/xkb/
, layout se jmenuje custom
):
V rules/base
, ř. 46:
! $threelevellayouts = al az custom be br bt ca ch cs cz de // atd. // ---snip--- ř. 213 ! model layout variant = symbols * custom basic = pc+custom // atd.V
rules/xorg
něco podobného.
V rules/xorg.lst
, kolem ř. 195:
! layout custom Custom us English (US) atd.V
rules/xorg.xml
:
<xkbConfigRegistry version="1.1"> <!-- … --> <layoutList> <layout> <configItem> <name>custom</name> <shortDescription>custom</shortDescription> <description>Custom</description> <languageList> <iso639Id>cst</iso639Id> </languageList> </configItem> <configItem> <name>us</name> <shortDescription>en</shortDescription> <description>English (US)</description> <languageList> <iso639Id>eng</iso639Id> </languageList> </configItem> <!-- … --> </layout> <!-- … --> </layoutList> <!-- … --> </xkbConfigRegistry>V
rules/base.xml
obdobně.
Nevím, jestli je to správně, ale v KDE to funguje.
Super. Díky.