Organizace Open Container Initiative (OCI) (Wikipedie), projekt nadace Linux Foundation, vydala Runtime Specification 1.3 (pdf), tj. novou verzi specifikace kontejnerového běhového prostředí. Hlavní novinkou je podpora FreeBSD.
Nový open source router Turris Omnia NG je v prodeji. Aktuálně na Allegro, Alternetivo, Discomp, i4wifi a WiFiShop.
Na YouTube a nově také na VHSky byly zveřejněny sestříhané videozáznamy přednášek z letošního OpenAltu.
Jednou za rok otevírá společnost SUSE dveře svých kanceláří široké veřejnosti. Letos je pro vás otevře 26. listopadu v 16 hodin v pražském Karlíně. Vítáni jsou všichni, kdo se chtějí dozvědět více o práci vývojářů, prostředí ve kterém pracují a o místní firemní kultuře. Můžete se těšit na krátké prezentace, které vám přiblíží, na čem inženýři v Praze pracují, jak spolupracují se zákazníky, partnery i studenty, proč mají rádi open source a co
… více »Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za říjen (YouTube).
Jeff Quast otestoval současné emulátory terminálu. Zaměřil se na podporu Unicode a výkon. Vítězným emulátorem terminálu je Ghostty.
Amazon bude poskytovat cloudové služby OpenAI. Cloudová divize Amazon Web Services (AWS) uzavřela s OpenAI víceletou smlouvu za 38 miliard USD (803,1 miliardy Kč), která poskytne majiteli chatovacího robota s umělou inteligencí (AI) ChatGPT přístup ke stovkám tisíc grafických procesů Nvidia. Ty bude moci využívat k trénování a provozování svých modelů AI. Firmy to oznámily v dnešní tiskové zprávě. Společnost OpenAI také nedávno
… více »Konference Prague PostgreSQL Developer Day 2026 (P2D2) se koná 27. a 28. ledna 2026. Konference je zaměřena na témata zajímavá pro uživatele a vývojáře. Příjem přednášek a workshopů je otevřen do 14. listopadu. Vítáme témata související s PostgreSQL či s databázemi obecně, a mohou být v češtině či angličtině.
Byl vydán Devuan 6 Excalibur. Přehled novinek v poznámkách k vydání. Kódové jméno Excalibur bylo vybráno podle planetky 9499 Excalibur. Devuan (Wikipedie) je fork Debianu bez systemd. Devuan 6 Excalibur vychází z Debianu 13 Trixie. Devuan 7 ponese kódové jméno Freia.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu poprvé překročil 3 %, aktuálně 3,05 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 27,18 %. Procesor AMD používá 67,10 % hráčů na Linuxu.
/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 apostrophe
Tohle 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.
setxkbmpu 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.