Vojtěch Polášek představil Vojtux, tj. linuxovou distribuci pro zrakově postižené uživatele. Vychází ze spinu Fedory 43 s desktopovým prostředím MATE. Konečným cílem je, aby žádný Vojtux nebyl potřeba a požadovaná vylepšení se dostala do upstreamu.
Byla vydána (Mastodon, 𝕏) druhá RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 160 (pdf).
Izrael od února zakáže dětem používat v prostorách základních škol mobilní telefony. Podle agentury AFP to uvedlo izraelské ministerstvo školství, které zdůraznilo negativní dopady, které na žactvo používání telefonů má. Izrael se tímto krokem přidává k rostoucímu počtu zemí, které dětem ve vzdělávacích zařízeních přístup k telefonům omezují.
Internetová společnost Google ze skupiny Alphabet pravděpodobně dostane příští rok pokutu od Evropské komise za nedostatečné dodržování pravidel proti upřednostňování vlastních služeb a produktů ve výsledcích vyhledávání. V březnu EK obvinila Google, že ve výsledcích vyhledávání upřednostňuje na úkor konkurence vlastní služby, například Google Shopping, Google Hotels a Google Flights. Případ staví Google proti specializovaným
… více »Byl oznámen program a spuštěna registrace na konferenci Prague PostgreSQL Developer Day 2026. Konference se koná 27. a 28. ledna a bude mít tři tracky s 18 přednáškami a jeden den workshopů.
Na webu československého síťařského setkání CSNOG 2026 je vyvěšený program, registrace a další informace k akci. CSNOG 2026 se uskuteční 21. a 22. ledna příštího roku a bude se i tentokrát konat ve Zlíně. Přednášky, kterých bude více než 30, budou opět rozdělené do tří bloků - správa sítí, legislativa a regulace a akademické projekty. Počet míst je omezený, proto kdo má zájem, měl by se registrovat co nejdříve.
Máirín Duffy a Brian Smith v článku pro Fedora Magazine ukazují použití LLM pro diagnostiku systému (Fedora Linuxu) přes Model Context Protocol od firmy Anthropic. I ukázkové výstupy v samotném článku obsahují AI vygenerované nesmysly, např. doporučení přeinstalovat balíček pomocí správce balíčků APT z Debianu místo DNF nativního na Fedoře.
Projekt D7VK dospěl do verze 1.0. Jedná se o fork DXVK implementující překlad volání Direct3D 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Byla vydána nová verze 2025.4 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení na blogu.
Správce oken OpenBox má jednu moc fajn fičůrku, jmenuje se pipe-menu, zprvu jsem jí nevěnoval pozornost, později se nad ní rozplýval blahem Botanicus na ubuntu@chat.linjab.net , tak jsem začal zjišťovat co že to umí, a ono to umí 
Je to vlastně úplně jednoduché, je to dynamicky generované menu, tedy položka menu je generovaná jako výstup z nějakého skriptu, je jedno jestli Python, Ruby nebo cokoli ... důležitý je správně naformátovaný výstup, potom se dá vykouzlit teba 5 nejvíce RAM-žeroucích procesů s možností killu po kliknutí, nebo měnič pozadí který zobrazuje výpis souborů z určené složky, nebo udělátko které vypíše .iso soubory ze složky, a po kliknutí jej připojí, právě toto jsem řešil já.
Skript jsem psal v Pythonu, konečně jsem se rozhoupal a začal něco tvořit, pořád jenom čučím na cizí skripty, nebo louskám PyGTK tutoriál, ale k psaní jsem se nějak neměl. Skriptík je to pravda jedoduchý, ale i přesto jsem s ní měl problémy, naštěstí hodní lidé na fóru pomohli, stejně tak na Ubuntu konfeře se mi pomoci dostalo.
Takže, obecně platí, do menu.xml se musí fláknout toto:
<menu id="ID" label="TITLE" execute="COMMAND" />Přičemž COMMAND je právě onen příkaz, který spustí náš skript a zajistí výstup do menu. label je popisek menu.
<openbox_pipe_menu>
<item label="LABEL">
ACTIONS
</item>
</openbox_pipe_menu>
LABEL je popisek položky, ACTIONS je akce, která se provede po kliku na položku, je to kapitolka sama pro sebe.
<action name="NAME">PARAMETERS</action>A prakticky, například když chceme po kliku spustit příkaz :
<action name="Execute"><execute>xterm</execute></action>O dalších ACTIONS se dočtete tady
#!/usr/bin/python
## STIBIHO MOUNTOVATKO PRO OPENBOX - PIPE MENU
## VERZE 1.0
import os,re
class Mountovatko:
def __init__(self):
def vypis():
regexp = re.compile("([a-zA-Z0-9_]+).(iso)")
pole_out = []
for prvek in os.listdir("/home/stibi/ISOimage/"):
if regexp.search(prvek) is not None:
pole_out.append(prvek)
return pole_out
polozka = vypis()
def menu():
print "<openbox_pipe_menu>"
for x in range(len(polozka)):
print '<item label='+'"'+polozka[x]+'"'+'>'
print '<action name='+'"'+'Execute'+'"'+'>'
print '<execute>'
print 'gksu'+' "'+'mount -t iso9660 -o loop /home/stibi/ISOimage/'+ polozka[x]+' /mnt/dvd/'+'"'
print '</execute>'
print '</action>'
print '</item>'
print "</openbox_pipe_menu>"
menu()
if __name__ == "__main__":
mount = Mountovatko()
Projede zadaný adresář a do menu vyplivne jenom .iso soubory. Nejlepší by bylo, kdyby se testoval typ souboru, to už mám v ToDo do další verze.
Tiskni
Sdílej:
for x in range(len(polozka)):polozka-->polozky, tak se to da napsat prehledneji:for polozka in polozky:
...
vim ~/.emacsMyslel jsem si, že když připojím .iso soubor, tak před připojením jiného musím ten připojený odpojit, ale ne, odpojí se sám, to jsem se docela divil, žádný program na automatické připojování mechanik či souborů u mě nebeží, takže určitě záleží na nastavení....Nemountuješ spíše ty isa přes sebe?
if mount | grep " on $adresar " then umount "$adresar" && mount "$novej_soubor" else mount "$novej_soubor" fia máš to :)
def vypis():
regexp = re.compile("\.iso$") # na konci retezce je posloupnost znaku .iso
return filter(regexp.search, os.listdir("/home/stibi/ISOimage/"))
nebo uplne bez regexpu:
def vypis(): path="/home/stibi/ISOimage/" return filter(lambda f:os.path.splitext(f)[1].lower()=='.iso', os.listdir(path))pripadne pokud bys jeste chtel kontrolovat jestli zakerny uzivatel nevytvoril adresar ktery se jmenuje "cokoli.iso" tak:
def vypis(): path="/home/stibi/ISOimage/" return filter(lambda f: os.path.isfile(path+f) && os.path.splitext(f)[1].lower()=='.iso', os.listdir(path))
....
def main(self):
def vypis():
def menu():
...
je zverstvo :) (bez urazky).
class Mountovatko:
def __init__(self):
path="/home/stibi/ISOimage/"
polozky=filter(lambda f: os.path.isfile(path+f) && os.path.splitext(f)[1].lower()=='.iso', os.listdir(path))
print "<openbox_pipe_menu>"
for polozka in polozky:
print '<item label='+'"'+polozka+'"'+'>'
print '<action name='+'"'+'Execute'+'"'+'>'
print '<execute>'
print 'gksu'+' "'+'mount -t iso9660 -o loop /home/stibi/ISOimage/'+ polozka +' /mnt/dvd/'+'"'
print '</execute>'
print '</action>'
print '</item>'
print "</openbox_pipe_menu>" #tenhle radek mas v originale ve for cyklu - asi chyba odsazeni, nebo sem to nepochopil :)
....
def main(self):
def vypis():
def menu():
...
ma byt samozrejme
....
def __init__(self):
def vypis():
def menu():
...
jej :)
No, tak to se mám ještě co učit :) JInak díky, mám v tom jasno trošičku víc :) S regulárními výrazy se člověk nenudí... hmm, že bych si to dal do patičky ... :) To je hláška jak z laTrine (kdo zná ... )
).