Dnes ve 12:00 byla spuštěna první aukce domén .CZ. Zatím největší zájem je o dro.cz, kachnicka.cz, octavie.cz, uvycepu.cz a vnady.cz [𝕏].
JackTrip byl vydán ve verzi 2.3.0. Jedná se o multiplatformní open source software umožňující hudebníkům z různých částí světa společné hraní. JackTrip lze instalovat také z Flathubu.
Patnáctý ročník ne-konference jOpenSpace se koná 4. – 6. října 2024 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áří všichni účastníci, se skládá z desetiminutových
… více »Program pro generování 3D lidských postav MakeHuman (Wikipedie, GitHub) byl vydán ve verzi 1.3.0. Hlavní novinkou je výběr tvaru těla (body shapes).
Intel vydal 41 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20240514 mikrokódů pro své procesory řešící INTEL-SA-01051, INTEL-SA-01052 a INTEL-SA-01036.
Společnost Raspberry Pi patřící nadaci Raspberry Pi chystá IPO a vstup na Londýnskou burzu.
Google na své vývojářské konferenci Google I/O 2024 představil řadu novinek. Keynote byl věnován umělé inteligenci (DeepMind, Gemini, Responsible AI).
V Gitu bylo nalezeno 5 zranitelností. Opraveny jsou ve verzích 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 a 2.39.4. Útočník může připravit repozitář tak, že při jeho klonování (git clone) může dojít ke spuštění libovolného kódu.
Virtualizační softwary VMware Workstation Pro a VMware Fusion Pro jsou nově pro osobní použití zdarma. Softwary VMware Workstation Player a VMware Fusion Player končí.
Linuxová distribuce Endless OS (Wikipedie) byla vydána ve verzi 6.0.0. Přehled novinek i s náhledy v příspěvku na blogu, poznámkách k vydání a také 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.