SuperTux (Wikipedie), tj. klasická 2D plošinovka inspirovaná sérií Super Mario, byl vydán v nové verzi 0.7.0. Videoukázka na YouTube. Hrát lze i ve webovém prohlížeči.
Ageless Linux je linuxová distribuce vytvořená jako politický protest proti kalifornskému zákonu o věkovém ověřování uživatelů na úrovni OS (AB 1043). Kromě běžného instalačního obrazu je k dispozici i konverzní skript, který kompatibilní systém označí za Ageless Linux a levné jednodeskové počítače v ceně 12$ s předinstalovaným Ageless Linuxem, které se chystají autoři projektu dávat dětem. Ageless Linux je registrován jako operační
… více »PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují
… více »GIMP 3.2 byl oficiálně vydán (Mastodon, 𝕏). Přehled novinek v poznámkách k vydání.
FRANK OS je open-source operační systém pro mikrokontrolér RP2350 (s FRANK M2 board) postavený na FreeRTOS, který přetváří tento levný čip na plně funkční počítač s desktopovým uživatelským rozhraním ve stylu Windows 95 se správcem oken, terminálem, prohlížečem souborů a knihovnou aplikací, ovládaný PS/2 myší a klávesnicí, s DVI video výstupem. Otázkou zůstává, zda by 520 KB SRAM stačilo každému 😅.
Administrativa amerického prezidenta Donalda Trumpa by měla dostat zhruba deset miliard dolarů (asi 214 miliard Kč) za zprostředkování dohody o převzetí kontroly nad aktivitami sociální sítě TikTok ve Spojených státech.
Projekt Debian aktualizoval obrazy stabilní větve „Trixie“ (13.4). Shrnuje opravy za poslední dva měsíce, 111 aktualizovaných balíčků a 67 bezpečnostních hlášení. Opravy se týkají mj. chyb v glibc nebo webovém serveru Apache.
Agent umělé inteligence Claude Opus ignoroval uživatelovu odpověď 'ne' na dotaz, zda má implementovat změny kódu, a přesto se pokusil změny provést. Agent si odpověď 'ne' vysvětlil následovně: Uživatel na mou otázku 'Mám to implementovat?' odpověděl 'ne' - ale když se podívám na kontext, myslím, že tím 'ne' odpovídá na to, abych žádal o svolení, tedy myslí 'prostě to udělej, přestaň se ptát'.
Po 8. květnu 2026 už na Instagramu nebudou podporované zprávy opatřené koncovým šifrováním. V chatech, kterých se bude změna týkat, se objeví pokyny o tom, jak si média nebo zprávy z nich stáhnout, pokud si je chcete ponechat.
V lednu byla ve veřejné betě obnovena sociální síť Digg (Wikipedie). Dnes bylo oznámeno její ukončení (Hard Reset). Společnost Digg propouští velkou část týmu a přiznává, že se nepodařilo najít správné místo na trhu. Důvody jsou masivní problém s boty a silná konkurence. Společnost Digg nekončí, malý tým pokračuje v práci na zcela novém přístupu. Cílem je vybudovat platformu, kde lze důvěřovat obsahu i lidem za ním. Od dubna se do Diggu na plný úvazek vrací Kevin Rose, zakladatel Diggu z roku 2004.
Je to už téměř rok, co jsem slíbil napsat další díl o okenním manažeru Fvwm - nyní nastal nejvyšší čas navázat na starý seriál a pokračovat povídáním o modulu FvwmButtons. Odkazy na předchozí díly seriálu určitě najdete na konci článku. Pokud by se vám nechtělo studovat starší články, pak pouze připomenu, že Fvwm je vysoce konfigurovatelný okenní manažer pro prostředí X11. Fvwm se konfiguruje v textovém souboru a nastavit lze prakticky cokoliv - vzhled oken, klávesové zkratky, reakce na myš, virtuální pracovní plochy a podobně. Dnes si ukážeme, jak vyrobit ve Fvwm vlastní lištu s tlačítky.
Ve třetím díle (Fvwm - III) seriálu jsem uvedl jednoduchý příklad se dvěma tlačítky. Dneska se k příkladu vrátím:
AddToFunc StartFunction I Modules FvwmButtons *FvwmButtons: Geometry -9-50 *FvwmButtons: Back darkblue *FvwmButtons: Fore Yellow *FvwmButtons: Rows 3 *FvwmButtons: BoxSize smart *FvwmButtons: Padding 2 2 *FvwmButtons: (Title "xmms", Icon xmms.xpm , Action Exec xmms) *FvwmButtons: (Title "freeciv", Icon freeciv.xpm, Action Exec civ)
Prvním řádkem přidáme startování modulu FvwmButtons do funkce
StartFunction. Tato funkce se vyvolá vždy při startu nebo
restartu fvwm. V našem jednoduchém příkladu je nastartovaný vždy jen jeden
exemplář modulu FvwmButtons, ale není problém nastartovat několik různých
panelů s tlačítky. Aby bylo možné rozlišit konfiguraci jednotlivých
modulů, je třeba dalším parametrem každou instanci modulu pojmenovat
zvlášť. Parametry pro danou instanci jsou uvozené hvězdičkou a jménem
(praktické použití si ukážeme později):
AddToFunc StartFunction I Modules FvwmButtons Knofliky1 AddToFunc StartFunction I Modules FvwmButtons Knofliky2 *Knofliky1: parametry... *Knofliky2: parametry...
Parametry bez závorek platí pro celý modul. Pro lištu s tlačítky tak můžeme nastavit třeba společnou barvu pozadí (Back) či popředí (Fore), písmo (Font), rozměry a umístění na obrazovce (Geometry), šířku rámečku (Frame) a mnoho dalších vlastností.
Parametry pro jednotlivá tlačítka jsou uzavřené do závorek. V naprosté
většině tlačítek se objeví parametry Title, Icon
a nějaký akční parametr. Tím může být velké množství příkazů Fvwm. Po
stisku příslušného tlačítka tak můžeme nejčastěji nastartovat nějaký
program (Exec), nebo třeba se přepnout na jinou stránku virtuální
obrazovky (GotoPage) či ukončit práci s počítačem a odhlásit se (Quit).
Příklad je uvedený i s drobnou chybou - zmíněný počet řádků s tlačítky je tři, přičemž tlačítka jsou pouze dvě. Parametr BoxSize:Smart dokáže modul FvwmButtons přesvědčit, že počty tlačítek nemá brát zas až tak příliš vážně a že případné chyby má tolerovat a panel s tlačítky přizpůsobit.
Často chceme, aby byla součástí tlačítka běžící aplikace - typicky hodiny nebo graf se zátěží systému. K tomu mohou dopomoci spolknuté aplikace (jinde se jim říká "dokované" aplikace). Místo ikony se v tlačítku zobrazuje grafický výstup programu, přičemž tlačítko může i nadále plnit svou regulérní funkci tlačítka. Tlačítkem s obrázkem běžících hodin tak můžeme nastartovat hodiny přes celou obrazovku:
*FvwmButtons: (Title "Hodiny", \
Swallow "XClock" "Exec xclock -norender \
-padding 1 \
-bg darkblue \
-fg yellow \
-hd yellow \
-hl yellow" \
Action Exec xclock -norender \
-bg darkblue \
-fg yellow \
-hd blue \
-hl yellow )
Příkaz Swallow je zde uveden ve své nejjednodušší podobě,
se dvěma parametry. Prvním je označení okna - tlačítko se snaží spolknout
aplikační okno s uvedeným řetězcem v jméně (Name), třídě (Class) či
Resource (mám poprvé potřebu nějak překládat názvosloví X11 a nedaří
se). Všechny parametry lze zjistit pomocí modulu FvwmIdent. V řetězci
se může vyskytnout znak * se svou obvyklou nahrazovací funkcí.
Normálně se chová příkaz Swallow tak, že při restartu fvwm
se ukončí všechny spolknuté aplikace a nastartují se znovu. Takové chovaní
může být někdy na závadu. Toto chování lze změnit několika příznaky,
flagy:
*FvwmButtons: (Title "Load", \ Swallow(UseOld,NoKill,NoClose) "swxload" \ "Exec xload -title swxload ....
Při ukončení modul FvwmButtons spolknutou aplikaci vyplivne a při
opětovném startu ji opět spolkne. Příznak UseOld zajistí, že
před tím, než modul FvwmButtons nastartuje novou instanci spolknuté
aplikace, se poohlédne, jestli už někde aplikace vhodná ke spolknutí
neběží. Až když modul žádnou běžící aplikaci nenajde, zkusí nastartovat
novou instanci. Příznakem NoKill a NoClose
zajistíme, že při ukončení modulu FvwmButtons nebude aplikace násilím
ukončena a místo toho ji modul vyplivne. (Nemohu si pomoci - když si
přeložím slovo "vyplivne" zpět do angličtiny, dostávám se k termínu "Spit
or Swallow", používanému v úplně jiných oblastech (nejen) internetových
zákoutí. Ach, ty nežádoucí asociace!).
Tlačítka nemusejí mít jednoduchou podobu "tři tlačítka jdou, hezky za
sebou". Tlačítka mohou být rozdělená na další podtlačítka, v terminologii
FvwmButtons se takovému tlačítku říká Container:
.... *FvwmButtons: (2x1, Container(Rows 2, Columns 2) *FvwmButtons: (Title "1", Action GotoPage 0 0) *FvwmButtons: (Title "2", Action GotoPage 1 0) *FvwmButtons: (Title "3", Action GotoPage 0 1) *FvwmButtons: (Title "4", Action GotoPage 1 1) *FvwmButtons: (End) ....
Příkazem 2x1 sdělujeme, kolik prostoru se má pro kontejner použít. V
našem příkladu se pro kontejner zabere oblast dvou tlačítek na šířku a
jednoho tlačítka na délku. Parametry příkazu Container,
Rows 2 a Colums 2, definují počet
tlačítek v kontejneru. Parametry, které se uvedou v příkazu
Container, jsou společné pro celý kontejner s tlačítky - zde
můžeme definovat například společné barvy (či jiné vlastnosti) odlišné od
nadřazeného souboru tlačítek.
Po příkazu Container následují příkazy pro vytvoření
tlačítek v kontejneru. V našem případě se vytvoří tlačítka s nápisy "1",
"2", "3", "4" - akční příkaz GotoPage pak zajistí, že se lze
tlačítky přepínat mezi jednotlivými stránky virtuální obrazovky.
Nakonec je potřeba ukončit kontejner příkazem End.
Jako akční příkaz tlačítka lze použít velkou část příkazů fvwm.
Nejobvyklejší bude asi příkaz Exec pro spuštění externího
programu, ale není problém stisknutím tlačítka například přepnout na jinou
stránku virtuální obrazovky (to už jsme si ukázali), vyvolat menu nebo
vyvolat například další lištu s tlačítky. V terminologii modulu
FvwmButtons se takové další liště říká Panel. Ve skutečnosti lze
použít jako panel jakoukoli aplikaci, nejen další instanci modulu
FvwmButtons. Při startu modulu je nastartován i každý nadefinovaný
panel, ale před zraky uživatele je skrytý a zobrazí se až při stisknutí
příslušného tlačítka.
Použijeme-li jako panel další lištu s tlačítky, je nutné takovou lištu pojmenovat jinak, abychom mohli v konfiguračním souboru rozlišit konfiguraci jednotlivých instancí modulu FvwmButtons. Většinou také chceme, aby se lišta po provedení akce před zraky uživatele schovala:
*FvwmButtons: (Title "Terminal", Icon gnome-terminal.png, \
Panel(down, delay 40, smooth, steps 8) \
Terminaly "Module FvwmButtons -transientpanel Terminaly ")
*Terminaly: Back darkblue
*Terminaly: Fore Yellow
*Terminaly: Rows 4
*Terminaly: BoxSize smart
*Terminaly: (Title "Lokalni", Icon gnome-terminal.png, \
Action Xterm-local)
*Terminaly: (Title "Server", Icon gnome-terminal.png, \
Action Xterm-server)
*Terminaly: (Title "Server 3", Icon gnome-terminal.png, \
Action Xterm-server3-r)
Příkaz Panel má podobné parametry jako příkaz
Swallow: prvním parametrem je řetězec označující okno, které
se má použít jako panel, dalším parametrem je akční příkaz, kterým se
nastartuje příslušná aplikace. V závorce jsou příznaky, flagy, kterými se
řídí chování a vzhled panelu. V našem příkladu příznaky zajistí, že další
lišta s tlačítky se vysune na obrazovku postupně - animovaně v osmi
krocích.
Součástí příkazu Panel je i akční příkaz pro nastartování
příslušné aplikace - v našem případě další instance modulu FvwmButtons.
Modul je startovaný se dvěma parametry: -transientpanel
zajistí, že lišta s tlačítky bude na obrazovce pouze přechodně do stisknutí
některého tlačítka, parametr Terminaly pojmenuje příslušnou
instanci modulu FvwmButtons. Podle toho jména modul hledá v konfiguračním
souboru parametry platné právě pro něj.
V článku jsem chtěl pouze ukázat podstatné vlastnosti modulu FvwmButtons, bez snahy suplovat manuálovou stránku. V té je modul popsaný velmi důkladně a při vytváření konfigurace FvwmButtons se bez jejího prostudování neobejdete. Na závěr uvádím příklad části konfiguračního souboru, ve které je ukázaná většina popsaných možností.
Příklad konfigurace FvwmButtons (kódování iso-8859-2).
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
*FvwmButtons: (Title "ICQ", Center, \
Swallow(UseOld,NoKill,NoClose) \
"LicqWharf" "Exec exec licq" )
Jediné, co mě trochu na licq vadí je, že ikona má rozměr 48x40 pixelů a obrázek v ikoně má rozměr takových 38x38 a je zarovnaný v ikoně doleva