Programovací jazyk Racket (Wikipedie), tj. jazyk z rodiny jazyků Lisp a potomek jazyka Scheme, byl vydán v nové major verzi 9.0. Hlavní novinku jsou paralelní vlákna (Parallel Threads).
Před šesti týdny bylo oznámeno, že Qualcomm kupuje Arduino. Minulý týden byly na stránkách Arduina aktualizovány podmínky používání a zásady ochrany osobních údajů. Objevily se obavy, že by otevřená povaha Arduina mohla být ohrožena. Arduino ubezpečuje, že se nic nemění a například omezení reverzního inženýrství v podmínkách používání se týká pouze SaaS cloudové aplikace.
Knihovna libpng, tj. oficiální referenční knihovna grafického formátu PNG (Portable Network Graphics), byla vydána ve verzi 1.6.51. Opraveny jsou 4 bezpečnostní chyby obsaženy ve verzích 1.6.0 (vydána 14. února 2013) až 1.6.50. Nejvážnější z chyb CVE-2025-65018 může vést ke spuštění libovolného kódu.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 159 (pdf).
Hru Warhammer: Vermintide 2 (ProtonDB) lze na Steamu získat zdarma napořád, když aktivaci provedete do pondělí 24. listopadu.
Virtualizační software Xen (Wikipedie) byl vydán v nové verzi 4.21. Podrobnosti v poznámkách k vydání a přehledu nových vlastností.
Evropská komise schválila český plán na poskytnutí státní pomoci v objemu 450 milionů eur (téměř 11 miliard Kč) na rozšíření výroby amerického producenta polovodičů onsemi v Rožnově pod Radhoštěm. Komise o tom informovala v dnešní tiskové zprávě. Společnost onsemi by podle ní do nového závodu v Rožnově pod Radhoštěm měla investovat 1,64 miliardy eur (téměř 40 miliard Kč).
Microsoft v příspěvku na svém blogu věnovaném open source oznámil, že textové adventury Zork I, Zork II a Zork III (Wikipedie) jsou oficiálně open source pod licencí MIT.
První prosincový týden proběhne SUSE Hack Week 25. Zaměstnanci SUSE mohou věnovat svůj pracovní čas libovolným open source projektům, například přidání AI agenta do Bugzilly, implementaci SSH v programovacím jazyce Zig nebo portaci klasických her na Linux. Připojit se může kdokoli.
Google oznámil, že Quick Share na Androidu funguje s AirDropem na iOS. Zatím na telefonech Pixel 10. Uživatelé tak mohou snadno přenášet soubory z telefonů s Androidem na iPhony a obráceně.
Jak jsem slíbil (http://www.abclinuxu.cz/forum/show/168981), tak činím. Zkusil jsem popsat možnosti menu v IceWM.
Po letech mnoha letech používání počítače jsem získal některé návyky. Jedním z nich je používání kvalitního menu ve window manageru. Nejprve jsem používal zejména WindowMaker, tam je velmi dobré menu, ale já jsem jej tak nějak pomíjel a používal převážně dock. Pak přišlo období s IceWM, kdy jsem měl k dispozici ikony na liště a pak také ikony na ploše zajištěné aplikací Rox. Jenže plocha je sice dobrá úvodní spuštění hlavní aplikace, ale pak je neustále zakryta nějakými okny a tudíž je víceméně nepřístupná a na liště je omezené místo. Vím o tom, že jsou klávesové zkratky které ji dokáží vytáhnout do popředí, ale to mi připadalo nepohodlné, když jsem si chtěl jen spustit další okno s dalšími potřebnými daty a ono najednou všechno zmizelo. Nevím zda jsem začal používat počítač intenzivněji nebo prostě jen jiným způsobem, takže jsem objevil kouzlo menu.
Postupně jsem začínal více a více používat menu až nakonec jsem odboural ostatní způsoby spouštění aplikací a používám už téměř výhradně menu. (A samozřejmě klávesové zkratky.)
Nedávno jsem narazil na text ukazující, že někteří lidé považují IceWM za window manager druhé kategorie, který se nedá pořádně nastavit a nemá pořádné menu. Myslím že to není pravda, IceWM podle mého názoru má možnosti menu velmi dobré a pokusím se je popsat.
Základní statická forma menu vypadá takto:
prog "Terminál rxvt" "xterm" rxvt
prog "Gvim" "vim" gvim
menu "test" "folder" {
prog "OpenOffice" "ooo_gulls" openoffice
prog "Lyx" "emacs" lyx
}
prog "ROOT terminál" "control-center" rxvt -bg darkred -e su -
Na prvním místě je klíčové slovo prog nebo menu které říká, že se jedná
o spuštění programu, nebo submenu, které uvozuje vnořené submenu. Pak následuje
nadpis položky, pokud obsahuje mezeru nebo jiné "speciální" znaky, musí být v
uvozovkách, jinak uvozovky nejsou povinné. Následuje ikona.
Ikona může být název ikony dle konvence IceWM (viz.
manuál) nebo to může být i obecně jakýkoliv
grafický soubor ve formátu xpm s plnou cestou nebo bez cesty pokud se nachází v IconPath. Pokud je
IceWM kompilováno s podporou Imlib jsou podporovány další grafické formáty -
bmp, jpeg, ppm, tiff, gif, png, ps, xpm. Pokud se uživatel nechce ikonou
zabývat, napíše jako název ukony pomlčku a žádná ikona není zobrazena. Zajímavou
sbírku ikon lze najít na http://bbs.cvut.cz/~covex/icewm/iceicons/.
Pak následují složené závorky v případě submenu nebo příkaz pro provedení.
Součástí menu mohou být některé speciální položky.
separator slouží k vytvoření oddělovací čáry v menu.
runonce slouží ke zvláštnímu způsobu spouštění položek. Ono once
napovídá, že se IceWM podívá, zda již neexistuje okno zadané třídy a pokud ano,
nespouští další program, ale jen okno vytáhne do popředí.
runonce "title" icon_name "res_name.res_class" program_executable options runonce "title" icon_name "res_name" program_executable options runonce "title" icon_name ".res_class" program_executable options
restart slouží k přechodu do jiného wm. IceWM se ukončí a je nahrazen
zadaným wm.
restart "title" icon_name program_executable options
A nyní se dostáváme k zajímavějším možnostem menu. Bohužel dále uvedené možnosti mají jedno nepříjemné omezení - nejdou použít jako seznam položek v exitující větvi (sub)menu, ale jen jako samostatná submenu. Takže nelze napsat část větve staticky, pak zařadit např. dynamické položky a pokračovat zase statickými položkami na stejné úrovni.
Vložení dalšího souboru snad není třeba nijak upřesňovat funkce je zřejmá.
menufile Programs folder programs
Bude vytvořeno subnemu "Programs" s ikonou "folder" a jako položky se natáhne
obsah souboru programs. Pozor na jednu vlastnost - obsah souboru programs se natáhne
jen při vytváření menu - typicky při prvním zobrazení, další změny změny v
souboru programs se pak již nepromítnou do dalšího znovuvytvoření menu. Kdy
to bude závisí na nastavení IceWM - u mne při každé změně hlavního souboru.
Restart IceWM, samozřejmě, nové natažení menu vynutí kdykoliv.
Takto je třeba možno vkládat do menu součásti společné více uživatelům.
Menu lze i generovat programem. Položky se čtou ze standardního výstupu.
menuprog Gnome folder icewm-menu-gnome1 --list
Místo programu icewm-menu-gnome1 --list, lze dosadit jakýkoliv vlastní
generátor menu. menuprog se spouští též jen jednou při vytváření menu
stejně jako v předchozím případě při vkládání souboru. Takže tato varianta není
tak úplně dynamická.
A nyní se konečně dostáváme ke skutečně dynamicky generovanému menu.
Syntaxe je následující:
menuprogreload title icon timeout command
Timeout je zadáván v sekundách a určuje dobu platnosti položek získaných z výstupu příkazu. Pokud je timeout 0, pak se příkaz spouští při každém zobrazení podmenu.
Něco málo mnou používaných příkazů jako ilustrační příklad (exec v druhém
řádku není příkaz, ale název ikony - obrázku ozubeného kola
):
menuprogreload "Procházet..." folder 0 dirBrowserMenu.sh /home/martin roxopen.sh menuprogreload "Procesy" exec 0 process.sh
První položka umožňuje rekurzívní procházení adresářů, druhá je jednoduchý správce procesů.
Pokud někoho zajímá jak takový script vypadá, tady je dirBrowserMenu.sh:
#!/bin/bash
# Popis:
# $1 - adresář k prozkoumání
# $2 - příkzaz pro otevírání souborů
echo prog \"Otevřít...\" "folder" $2 $1
echo separator
find $1 -maxdepth 1 -mindepth 1 -type d -not -name '.*' \
-printf "menuprogreload \"%f\" folder 0 $0 \"%p\" $2\n"
echo separator
find $1 -maxdepth 1 -mindepth 1 -not -type d -not -name '.*' -not -name '*.clean' \
-printf "prog \"%f\" file $2 \"%p\"\n"
a tady je process.sh:
#!/bin/bash
top -U`whoami` -b -n1 | tail +8 | sed '/^[^[:space:]]*$/d' | \
awk '{print $1 " \"" $12 " (" $9 "; " $8 "; " $6 "; " $4 ")\"" }' | \
while read PID CAPTION; do
echo menu $CAPTION \"-\" {
echo prog '"renice +5" "-" renice +5' $PID
echo prog '"kill" "-" kill' $PID
echo prog '"kill -9" "-" kill -9' $PID
echo }
done
Nedělám si žádné nároky na úplnost a neprůstřelnost, ale u mne to funguje v dostatečné míře.
Jak vidno je menu v IceWM je jednoduché a přitom má dostatečné možnosti. Takže si každý snadno může menu vyrobit podle svých potřeb.
Tiskni
Sdílej: