Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
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 »motto: Článek o tom, kterak přetlačítkovanou klávesnici pod tučňákem rozchoditi.
Pokud si chcete zpříjemnit život u počítače, jedna z dobrých investic je klávesnice, která má několik těch tlačítek navíc. Dnes už prakticky neseženete klávesnici, která nemá tlačítka POWER, SLEEP a WAKE. Vyplatí se ale koupit něco lepšího. Já jsem si udělal radost tou na obrázku. Pokud si chcete takovou klávesnici koupit, můžete i na blind. Objevil jsem pouze jeden případ (IBM Rapid Access keyboard), který nefungungoval jak by měl. I když to lze oklikou taky. Ideální je si klávesnici při nákupu vyzkoušet. K tomu poslouží program showkey. O něm ale až v následující části.
Nejprve malý slovníček pojmů které budeme potřebovat:
F13
, h
nebo třeba Tab
A programy, které budeme potřebovat:
Nastavení speciálních kláves se zcela liší v konzoli a v X, takže nejprve:
Zde je situace poměrně jednoduchá. Nejprve spusťtě program showkey, bude nám ukazovat keycody. Všimněte si ve výpisu "keycode 28 release
". Keycode 28 přísluší enteru, znamená to, že program zaregistroval, že byla uvolněna klávesa enter, což je samozřejmě v pořádku. Počkáte-li 10 sekund, showkey se sám ukončí.
root@zdenek:~# showkey
|
Zkoušejte nyní mačkat ony vytoužené tlačítka. S největší pravděpodobností se nic dít nebude. Nevadí, dalo se to čekat. Spusťme tedy showkey znovu, tentokrát s parametrem -s
, který zajistí, že showkey nebude ukazovat keycody ale scancody.
root@zdenek:~# showkey -s
|
Výpis je podobný, jen tam chybí "keycode 28 release
". Namísto toho tam je "0x9c
", což je scancode puštění enteru. Keycode je při zmáčknutí i puštění stejný (lze to ale rozeznat jiným způsobem), kdežto scancode je jiný. Zkuste nyní mačkat vytoužená tlačítka, výpis by měl pokračovat např. takto:
0xe0 0x68
|
Zde musím upozornit, že pokud ani teď nedostanete žádné výpisy, zprovoznění vaší klávesnice pod Linuxem je pravděpodobně nemožné nebo přinejmenším velmi složité. Tímto způsobem lze klávesnici otestovat při nákupu. Pokud nefunguje, doporučuji radši klávesnici prodat nějakému uživateli Windows a koupit si opravdovou klávesnici.
Všimněte si, že při stisku klávesy se napíše "0xe0 0x6a
" a při puštění "0xe0 0xea
". První scancode patří k události KeyPress (zmáčknutí tlačítka) a druhý scancode patří k události KeyRelease (puštění tlačítka). Ono tajemné "0xe0
" znamená, že se jedná o escapované scancody (escaped scancodes). Je možné, že ho tam mít nebudete. Více v man setkeycodes
.
Nyní přiřadíme ke scancodům keycody. V konzoli jich máme k dispozici pouze 127, což může být problém. Teď musíte vědět/zjistit, kterou mapu klávesnice používáte. Na Slackwaru to je v souboru /etc/rc.d/rc.keymap
. U mě je to /usr/share/kbd/keymaps/i386/qwerty/cz-lat2.map.gz
. Otevřte tento soubor v nějakém editoru (pozor, soubor je zagzipovaný, takže editor v MC je jistota) a uvidíte mnoho řádků začínajících keycode. Nyní je cílem najít tolik volných řádků (keycodů), kolik je speciálních tlačítek na vaší klávesnici. Některé keycody jsou volné už od pohledu, jiné jen nejsou použité, to už je trochu risk. Použijte keycody, u kterých je napsáno např. Macro, Help nebo Do. Pokud tyto klávesy na své klávesnici nemáte (nebo je nepoužíváte), můžete tyto keycody použít.
Nyní přijde ke slovu program setkeycodes, kterým volné keycody přiřadíte ke scancodům. Setkeycodes používá lehce odlišný zápis scancodů:
showkey scancode | setkeycodes scancode |
---|---|
0x68 | 68 |
0xe0 0x68 | e068 |
Mně fungovalo setkeycodes pouze pro scancody při zmáčknutí (KeyPress), při pokusu přiřadit keycode na událost KeyRelease mi bylo vynadáno:
root@zdenek:/# setkeycodes e0ea 127
|
Použijeme tedy pouze scancody z událostí KeyPress, ono to vůbec nevadí a asi to tak i má být.
Příklad skriptu, dejte ho např. do rc.local
:
#!/bin/sh
|
Teď znova spusťtě showkey, měl by nyní už ukazovat keycody přiřazené speciálním tlačítkum.
root@zdenek:/# showkey
|
Takže to funguje. Keycode je přiřazen a všimněte si, že funguje i rozlišení KeyPress a KeyRelease. Nyní se vrátíme do mapy klávesnice. Řádky s vybranými keycody dopište následujícím způsobem. Je možné použít i jiné popisky než F101 a výše, např. popisky, které jsou u oněch tlačítek napsané, ale není to v podstatě důležité, a tak to uděláme tak, jak to funguje všem.
keycode 85 = F101
|
Nyní máme speciální tlačítka namapované na klávesách F101 až F1xx. Zbývá jim přiřadit nějakou akci (program). V témže souboru zcela jednoduše takto:
string F101 = "mc\n"
|
Další řádky si udělejte podle svého přání. Dodám ještě, že principiálně to funguje jako zápis na STDIN. Takže v uvedeném případě se na konzoli napíše "mc" a hned za ním "\n" což je vlastně enter, čímž se Midnight Commander spusti. Pokud tam napíšete "string F101 = "Dobré ráno."
", napíše se na konzoli Dobré ráno.
a nic víc. To je užitečné když často píšete nějaký dlouhý příkaz, ale měníte v něm nějaké parametry.
Zde je situace podobná, ale přesto jiná. Celé to popíšu už trochu jednodušeji, princip je už teď jasný.
Začneme programem xev. Spustíme ho v konzoli (myšleno např. v xtermu, teď už jsme v Xech), on vypíše velké množství čehosi a zobrazí malé okno. Vyberte myší toto okno tak, aby byla konzole stále vidět a s myší nehýbejte, aby ve výpisu nepřibývaly nové hlášky. Nyní zmáčkněte speciální tlačítko na klávesnici. Měl by se objevit tento výpis:
KeyPress event, serial 27, synthetic NO, window 0x2200001,
|
První část (KeyPress) při stisknutí a druhá část (KeyRelease) při puštění. Důležitá je hodnota keycode
(všimněte si, že je větší než 127, v X je k dispozici 255 keycodů) a text "NoSymbol
". Pokud chcete těmto tlačítkám přiřadit pouze spouštění programů, je možné následující část přeskočit, nicméně to nedoporučuji kvůli názornosti. Pomačkejte všechny speciální tlačítka a poznamenejte si jejich keycody. Pokud u některého z nich nebude "NoSymbol
", poznamenejte si, že tlačítko už má klávesu přiřazenou a poznamenejte si, co je místo "NoSymbol
".
Keycody nyní přířadíme pomocí programu xmodmap ke klávesám (v Xech označováno taky jako keysymy - přiřadíme keycody ke keysymům). Jejich seznam lze najít v /usr/X11R6/include/X11/keysymdef.h
, jen si odmyslete to XK_
na začátku. Po prohlédnutí souboru je vidět, že nelze použít F101 a výše jak jsme to udělali v konzoli. Zde máme k dispozici F1..F35, dále pak nějaké L.. a R... Nevadí, použijeme F13 až (v mém případě, 21 tlačítek) F33.
Existuje soubor /etc/X11/xinit/.Xmodmap
a pak pro každého uživatele ~/.Xmodmap
. Který použijete, je na vás. Syntaxe je jednoduchá:
keycode 234=F13
|
Keycody jste zjistili z výpisu programu xev. Spusťtě nyní program xmodmap:
# xmodmap /etc/X11/xinit/.Xmodmap
|
Neměl by se objevit žádný výpis. Jen ještě dodám, že není nutné používat soubor .Xmodmap
, parametry lze xmodmapu předat i přes příkazovou řádku. To je vhodné zejména při zkoušení a testování.
# xmodmap -e 'keycode 234=F101'
|
V tuto chvíli by už tlačítkům měly být přiřazeny klávesy F13..Fxx. Přesvědčte se o tom pomocí programu xev. Nikde by se už nemělo objevovat NoSymbol
, ale místo toho Fxx
.
V tuto chvíli už je možné tyto klávesy plně používat v rámci okenního manažeru. Pokud máte KDE (jak je to jinde, nevím) otevřte ovládací panel klávesových zkratek a zkuste nastavit nějakou klávesovou zkratku s použitím klávesy F13. Musí to jít. Pokud chcete některé klávesy používat jako zkratky pro okenní manažer, je právě nyní vhodná doba si je nastavit.
My ostatní si povíme, jak ke speciální klávese přiřadit třeba spouštění kalkulačky. K tomu použijeme program xbindkeys. Na tuto činnost by měly jít použít i programy lineak nebo hotkeys, prý mají i nějaké GUI. No fuj, zůstaneme radši u malého konzolového daemonka s textovým konfigurákem.
Začneme instalací xbindkeys:
no dobře...
./configure
make
make install
xbindkeys --defaults > /home/uzivatel/.xbindkeysrc
|
Poslední řádek nám vytvoří výchozí konfigurční soubor ve zvolené cestě. Standardně (při spuštění bez parametru) bere xbindkeys nastavení ze souboru ~/.xbindkeysrc
.
Lze mu ale vnutit pomocí parametru -f
i jiný konfigurační soubor. Osobně si myslím, že je lepší to nastavit pro celý systém najednou (pro všechny uživatele). Budete-li to tak chtít provést, udělejte toto:
xbindkeys --defaults > /etc/xbindkeysrc
|
a xbindkeys spouštějte takto:
xbindkeys -f /etc/xbindkeysrc
|
Poznámka: S výše uvedeným jsem měl problémy v KDE. Nejprve to fungovalo, potom ale přestala fungovat klávesnice (nešlo psát písmena). Nevidím důvod, proč by to nemělo fungovat, ale prostě to nešlo. Takže to můžete zkusit, pokud máte zájem, ale pozor na to. Vy ostatní používejte ~/.xbindkeysrc
a spoušťejte pouze xbindkeys
.
Konfigurační soubor je jednoduchý. To, co tam už je, zakomentujte a přidejte následující konfiguraci. Pozor ale na klávesy, které jste už nastavili jako klávesové zkratky okenního manažeru. Tyto klávesy doporučuji vůbec do konfiguračního souboru nepsat, protože se to nejspíš pohádá (testovánou pouze s KDE). Při testování a zkoušení pozor: nedávejte komentáře doprostřed jedné definice, xbindkeys to odmítne. Standardně se spouští jako démon na pozadí, ale parametrem -v
ho spustíte přímo na konzoli a navíc bude upovídanější. Více viz man xbindkeys
. Nyní už slíbený konfigurační soubor:
"/usr/bin/keyboard/f13.sh"
|
A tak dále podle toho, kolik máte tlačítek. Uvedený konfigurák spustí definované skripty při události KeyPress. Uvedené skripty vytvořte ručně, můžete je umístit v podstatě kam chcete. Pokud chcete skripty spouštět při události KeyRelease, použijte toto:
"/usr/bin/keyboard/f13.sh"
release+F13
Je možné klávesu F13 kombinovat s Altem a mít tak dva skripty, jeden na F13, druhý na Alt+F13:
"/usr/bin/keyboard/f13.sh"
|
Určitě vás nyní napadlo, proč tak složitě, když to jde jednoduše:
"xterm"
|
Toto samozřejmě funguje, ale výše uvedený způsob se skripty je pružnější a umožňuje kouzlit. Např. ve skriptu můžete zjistit jméno uživatele, jeho domovský adresář atd. Navíc je to vlastně jediná možnost jak ovládat spuštěné programy jako např. Mozillu (tlačítka pro ovládání browseru má snad každá klávesnice, která má více než 3 tlačítka navíc).
Další příklad použití, spíš vhodné pro testování:
"artsmessage stisknuta klavesa F13"
|
Nemáte li arts (artsmessage), použijte program xmessage. Vypadá ale jako předpotopní.
Více viz man xbindkeys
nebo výchozí konfigurační soubor.
Obsah skriptů může být například:
#!/bin/sh
|
Zbytek už je na vás. Poradím jen, že Mozillu lze ovládat pomocí přepínače -remote
. Snad by to šlo i nějak použít pro tlačítka Back/Home/Forward. Nebo třeba xmms -u
, xmms -s
, více viz xmms --help
.
Otázkou stále zůstává, jak uvedené programy spustit při startu počítače automaticky. V konzoli je to jednoduché. Už na začátku jsem napsal, že skript se setkeycodes můžete dát do rc.local
a mapa klávesnice se načítá tak jako tak. V X je to složitější. Nejprve je nutné spustit program xmodmap a poté xbindkeys.
K tomu je potřeba pochopit princip přihlašování v grafice. Ať už používáte KDM, GDM nebo XDM, podívejte se do souboru /etc/X11/xdm/Xsession
. KDM používá tento soubor pomocí symlinku /opt/kde/share/config/kdm/Xsession
(ve Slackware) a GDM myslim taky (teď už ho tu nemám nainstalovaný). Na začátku souboru najdete toto:
usermodmap=$HOME/.Xmodmap
|
Poznámka: /usr/X11R6/lib/X11/xinit/.Xmodmap
je symlink na výše zmíněný /etc/X11/xinit/.Xmodmap
Tyto dva kousky kódu zajistí nahrání souboru .Xmodmap
pro celý systém i pro každého uživatele zvlášť. Můžete tak část kláves nastavit napevno pro všechny a část nechat na libovůli uživatelů. Toto funguje dobře, ale jen do okamžiku startu KDE . Funguje to v čistém xtermu (moje fail-safe varianta pro X), funguje to v twm, funguje to v XFce. GNOME nemám, tak jsme to nemohl vyzkoušet. V KDE je na vině přepínač klávesnic. Pokud ho nepoužíváte a při jeho vypnutí vám bude fungovat česká klávesnice (mně nejprve nefungovala, tak jsem to zapnul a potom šla; teď jsme to vypnul a jde pořád) máte vyhráno, stačí to vypnout (Ovládací centrum -> Místní zvyklosti a zpřístupnění -> Rozvržení klávesnice). Pokud se tohoto nechcete vzdát, nezbývá než použít
~/.kde/Autostart
. Do tohoto adresáře vytvořte skript:
#!/bin/sh
|
Druhým problémem je, kde spouštět xbindkeys. Samozřejmě ho také můžete dát do Autostartu, ale aby to fungovalo pro všechny uživatele, kteří třeba používajý jiný okenní manažer/desktopové prostředí než KDE, doporučuji to dát do souboru /etc/X11/xdm/Xsession
. A to až za spouštění xmodmap, nejlépe přímo před spouštění jednotlivých okenních manažerů. V souboru /etc/X11/xinit/Xsession
najděte část kódu podobnou té následující (nikdo nemá stejné nastavení) a nad ní přidejte "xbindkeys
" případne "xbindkeys -f /etc/xbindkeysrc
".
Ačkoliv jsem výše napsal, že nejprve
je potřeba spustit xmodmap a poté xbindkeys, bude to fungovat i s
xmodmapem v ~/.kde/Autostart
- a to proto, že se nejpre spustí xmodmap, pak xbindkeys, pak KDE zničí nastavení xmodmapu a to se poté opět
nastaví z Autostartu.
.
.
.
#spusteni xbindkeys s konfigurakem ~/.xbindkeysrc
xbindkeys
# If a particular session type was requested in $1, start that session:
case "$1" in
xterm)
exec xterm -geometry 160x60-0-0
;;
firebird)
exec /MozillaFirebird/MozillaFirebird
;;
kde)
exec startkde
;;
twm)
exec /etc/X11/xinit/xinitrc.twm
;;
icewm)
exec icewm
;;
xfce)
exec /etc/X11/xinit/xinitrc.xfce
;;
esac
.
.
.
Doufám, že se vám vše podařilo jako mně a že klávesy fungují v plném počtu . Veškeré informace jsem čerpal z hardwarových záznamů a diskuzí na ABCLinuxu.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Option "XkbModel" "rapidaccess"
A nebylo by lepší pro spouštění xmodmap použít xinitrc?
string F101 = "mc\n"Proste neviem kde mam vlozit tento prikaz? Pretoze ak ho vlozim do klavesovej mapy napriklad
string F127 = "mc\n"tak nefunguje a vsetky nove klavesy mam v tvare napr.
keycode 127 =Klavesovu mapu mam spravne lebo ak tam vlozim napisany text tak pri starte systemu mi vypise keymap syntax error Prosim dajte vediet kde a ako mam vlozit ten prikaz ? Ondrej
Odpovím si sám: Je to špatná otázka. Ono totiž záleží, jestli člověk používá (chce používat) jenom jednoho window managera, anebo více.