Portál AbcLinuxu, 4. prosince 2025 10:20
Řešení dotazu:
PS1="$(setxkbmap -query | tail -n1 | cut -c13-) \w \$"Ale bude to chodit jen na localhostu.
partial alphanumeric_keys
xkb_symbols "ikarr" {
include "latin"
Name[Group1] = "US/ASCII";
Name[Group2] = "Czech (programmers)";
key TLDE> { [ grave, asciitilde, dead_diaeresis, dead_abovering ], [ dead_diaeresis, dead_abovering, grave, asciitilde ] };
key AE01> { [ 1, exclam, plus, exclam ], [ plus, exclam, 1, exclam ] };
key AE02> { [ 2, at, ecaron, at ], [ ecaron, at, 2, at ] };
key AE03> { [ 3, numbersign, scaron, numbersign ], [ scaron, numbersign, 3, numbersign ] };
key AE04> { [ 4, dollar, ccaron, dollar ], [ ccaron, dollar, 4, dollar ] };
key AE05> { [ 5, percent, rcaron, percent ], [ rcaron, percent, 5, percent ] };
key AE06> { [ 6, asciicircum, zcaron, asciicircum ], [ zcaron, asciicircum, 6, asciicircum ] };
key AE07> { [ 7, ampersand, yacute, ampersand ], [ yacute, ampersand, 7, ampersand, yacute ] };
key AE08> { [ 8, asterisk, aacute, asterisk ], [ aacute, asterisk, 8, asterisk ] };
key AE09> { [ 9, parenleft, iacute, parenleft ], [ iacute, parenleft, 9, parenleft ] };
key AE10> { [ 0, parenright, eacute, parenright ], [ eacute, parenright, 0, parenright ] };
key AE12> { [ equal, plus, dead_acute, dead_caron ], [ dead_acute, dead_caron, equal, plus ] };
key SPCE> { [ space, nobreakspace, space, nobreakspace ], [ space, nobreakspace, space, nobreakspace ] };
};
a češtinu přepínám takto, viz options:
$ setxkbmap -query rules: evdev model: pc layout: cz_ikarr(ikarr) options: grp:shifts_toggle,lv3:rwin_switchTakže setxkbmap nee. Ale pokud by se nějaký trigger dal dát přímo do definice klávesnice, není problém.
\`/usr/bin/xset -q|grep -q \"Group 2: on\" && echo °\`Zobrazí to kroužek v případě, že mám přepnuto do české klávesnice. Nakonec jsem tedy našel utilitu, která dokáže zobrazit aktuální stav zvolené klávesové skupiny. Čekal bych to tedy spíše někde u nějakého xkb... Google nepomohl, všiml jsem si toho náhodou ve výpisu xset -q, když jsem rezignoval a nainstaloval indikaci klávesnice ledkou scrolllocku (grp_led:scroll). (povzdech)Safra, to už tady nejsou žádní linuxáci, kteří si dovedou upravit linux ke své potřebě? To už všichni jenom zkoušejí, která distribuce jim lépe padne do ruky a jestli se jim lépe kliká ve Fedoře nebo v Kubuntu?(konec povzdechu)
Pokud se "leta několikrát denně vztekáš" tak si prostě rozchoď ssh agenta. Nejenom že se nebudeš muset vztekat, ale nebudeš muset heslo vůbec řešit.
Celé tohle řešení s PS1 má ještě jednu docela velkou vadu na kráse: každý prompt musí forknout podproces. Pokud je mašina nemůže forknout nový proces nebo pro něj nemá paměť, tak se od terminálu efektivně odřízneš. Obvykle v situaci kdy zrovna potřebuješ killnout proces který ten bordel způsobil.
IMO skutečně košer řešení by bylo zaháčkovat si mechanismus změny velikosti terminálu. Je to koneckonců taky předávání informací z grafického prostředí do shellu. xterm by při změně rozložení poslal shellu SIGWINCH, shell by si přes ioctl převzal rozložení spolu s $COLUMNS a $ROWS a uložil by to do nějaké další proměnné. Ta by se pak dala i předávat po ssh. Ale to je jen myšlenkový experiment, rozchoď agenta a nebudeš mít důvod se s tím drbat.
Co se týče extra procesu, tak to je nula nula nic - prompt se vykonává opravdu s nicotnou četností oproti jiným procesům."četnost" je relativní, prompt je možná všech 0.00nic% procesů, ale je to 100% procesů které potřebuješ. A už se mi stalo že jsem čuměl na mrtvou mašinu, na obrazovce pid pachatele a není kam napsat kill protože shell čeká v tlačenici na swapu kvůli nějaký grafický kravině. Fakt zážitek k popukání. Od tý doby jsem na PS1 háklivej
Hledal jsem něco takového v /sys, ale nic jsem nenašel.A ani nenajdeš. To je záležitost userpsace a kernel do toho nemá co kecat. Můžeš patchnnout proces přepínače klávesnice tak aby to někam zapisoval, ale to už je jednodušší zavolat si ten xset. Obojí je hnusnej ohák – je to z principu jen grafický efekt, takže by se to mělo řešit v grafice. Třeba si patchnout xterm aby ukazoval rozložení v okně nebo aby si svoje rozložení vynutil.
A to je v dnešním xorg definice klávesnice podstatně jednodušší než byla před léty. Děsím se vajlandu, že nepůjde nastavit vůbc nic. Viz peklo se systemd, kde někdy nefunguje ani ctrl-alt-del.
(povzdech)Safra, to už tady nejsou žádní linuxáci, kteří si dovedou upravit linux ke své potřebě? To už všichni jenom zkoušejí, která distribuce jim lépe padne do ruky a jestli se jim lépe kliká ve Fedoře nebo v Kubuntu?(konec povzdechu)Třeba používají pouze jedno rozložení jako já…
grp_led:scroll), ale na thinkpadech uz neni, tak to resim pomoci programu xkbvleds. S parametrem -watch 4 zobrazuje jenom scroll lock. Ve WM (openbox) jsem nastavil, aby se zobrazoval vpravo skoro dole, bez dekoraci, na vsech plochach a nad ostatnimi okny.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.