Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.
Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.
Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.
Databáze DuckDB (Wikipedie) dospěla po 6 letech do verze 1.0.0.
Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.
Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.
Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.
/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.