Byla vydána nová verze 1.16.0 klienta a serveru VNC (Virtual Network Computing) s názvem TigerVNC (Wikipedie). Z novinek lze vypíchnout nový server w0vncserver pro sdílení Wayland desktopu. Zdrojové kódy jsou k dispozici na GitHubu. Binárky na SourceForge. TigerVNC je fork TightVNC.
Byla vydána nová verze 4.6 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.
Rozsáhlá modernizace hardwarové infrastruktury Základních registrů měla zabránit výpadkům digitálních služeb státu. Dnešnímu výpadku nezabránila.
Čínský startup Kimi představil open-source model umělé inteligence Kimi K2.5. Nová verze pracuje s textem i obrázky a poskytuje 'paradigma samosměřovaného roje agentů' pro rychlejší vykonávání úkolů. Kimi zdůrazňuje vylepšenou schopnost modelu vytvářet zdrojové kódy přímo z přirozeného jazyka. Natrénovaný model je dostupný na Hugging Face, trénovací skripty však ne. Model má 1 T (bilion) parametrů, 32 B (miliard) aktivních.
V Raspberry Pi OS lze nově snadno povolit USB Gadget Mode a díky balíčku rpi-usb-gadget (CDC-ECM/RNDIS) mít možnost se k Raspberry Pi připojovat přes USB kabel bez nutnosti konfigurování Wi-Fi nebo Ethernetu. K podporovaným Raspberry Pi připojeným do USB portu podporujícího OTG.
Konference Installfest 2026 proběhne o víkendu 28. a 29. března v budově FELu na Karlově náměstí v Praze. Přihlásit přednášku nebo workshop týkající se Linuxu, otevřených technologií, sítí, bezpečnosti, vývoje, programování a podobně lze do 18. února 0:15.
Fedora Flock 2026, tj. konference pro přispěvatele a příznivce Fedory, bude opět v Praze. Proběhne od 14. do 16. června. Na Flock navazuje DevConf.CZ 2026, který se uskuteční 18. a 19. června v Brně. Organizátoři konferencí hledají přednášející, vyhlásili Call for Proposals (CfP).
Z80-μLM je jazykový model 'konverzační umělé inteligence' optimalizovaný pro běh na 8-bitovém 4Mhz procesoru Z80 s 64kB RAM, technologii z roku 1976. Model používá 2-bitovou kvantizaci a trigramové hashování do 128 položek, což umožňuje zpracování textu i při velmi omezené paměti. Natrénovaný model se vejde do binárního souboru velkého pouhých 40 KB. Tento jazykový model patrně neprojde Turingovým testem 😅.
Digitální a informační agentura (DIA) na přelomu roku dokončila rozsáhlou modernizaci hardwarové infrastruktury základních registrů. Projekt za 236 milionů korun by měl zabránit výpadkům digitálních služeb státu, tak jako při loňských parlamentních volbách. Základní registry, tedy Registr práv a povinností (RPP), Informační systém základních registrů (ISZR) a Registr obyvatel (ROB), jsou jedním z pilířů veřejné správy. Denně
… více »Evropská komise (EK) zahájila nové vyšetřování americké internetové platformy 𝕏 miliardáře Elona Muska, a to podle unijního nařízení o digitálních službách (DSA). Vyšetřování souvisí se skandálem, kdy chatbot s umělou inteligencí (AI) Grok na žádost uživatelů na síti 𝕏 generoval sexualizované fotografie žen a dětí. Komise o tom dnes informovala ve svém sdělení. Americký podnik je podezřelý, že řádně neposoudil a nezmírnil rizika spojená se zavedením své umělé inteligence na on-line platformě.
Odkazy
Od prechodu z KDE na Awesome ma trápi chýbajúce GUI pre pripájanie. Preto som sa rozhodol napísať jednoduchý applet pre pripájanie a odpájanie diskov.
Awesome WM je desktopové prostredie napísané v C. Konfiguruje sa ce lua skript, v ktorm je možné napísať si prakticky vlastný WM.
Najskôr som hľadal v awesome dokumentácii a narazil som na hrozne zdokumentovaný modul dbus. Predpokladal som, že si s nim vystačím. Chyba 
Kompletné zdrojové kódy som zverejnil na githube. V nasledujúcich pár riadkoch popíšem ako som došiel k takej príšernosti (mimochodom to je už po odstránení callback hell).
Najskôr časť, ktorá odchytáva zmeny v UDisks2 podstrome:
local capi = { dbus = dbus }
if capi.dbus then
capi.dbus.add_match("system", "interface='org.freedesktop.DBus.ObjectManager', member='InterfacesAdded'")
capi.dbus.add_match("system", "interface='org.freedesktop.DBus.ObjectManager', member='InterfacesRemoved'")
capi.dbus.connect_signal("org.freedesktop.DBus.ObjectManager",
function (data, text)
if data.path == "/org/freedesktop/UDisks2" then
-- Skenovanie
end
end
);
end
Predpokladám, že dbus API sa dá použiť len na odchytávanie signálov (z dkumentácie sa nevyzná hádam ani divá sviňa). Na volanie metód som použil samostatnú knižnicu.
Pár knižníc pre komunikáciu s DBus-om sa povaľuje na githube, ale väčšina z nich je opustená. Rozhodol som sa namiesto špecializovanej knižnice využiť GLib bindingy lgi.
Informácie o blokových zariadeniach sa dajú získať jediným volaním metódy GetManagedObjects rozhrania org.freedesktop.DBus.ObjectManager na objekte /org/freedesktop/UDisks2 uzla org.freedesktop.UDisks2. Teoreticky to znie pekne no prakticky som neprišiel na spôsob ako v lua iterovať cez vrátený zoznam zariadení.
Kvôli tejto drobnosti najskôr volám metódu Introspect rozhrania org.freedesktop.DBus.Introspectable. Táto metóda vracia hnusné xml (prečo vlastne xml keď DBus dokáže vraciať štuktúrované dáta?). Keďže som nechcel ťahať so sebou ďalšie závislosti kvôli xml (ah zlatý python so štandardnou knižnicou) rozhodol som sa parsovať xml pomocou regulárnych výrazov (zajtra je prvý apríl, hádam som si na to nemohol nájsť lepšiu dobu).
local lgi = require 'lgi'
local Gio = lgi.require 'Gio'
local GLib = lgi.require 'GLib'
local system_bus = Gio.bus_get_sync(Gio.BusType.SYSTEM)
local function rescan_devices()
system_bus:call(
'org.freedesktop.UDisks2',
'/org/freedesktop/UDisks2/block_devices',
'org.freedesktop.DBus.Introspectable',
'Introspect',
nil,
nil,
Gio.DBusConnectionFlags.NONE,
-1,
nil,
function(conn, res)
local ret, err = system_bus:call_finish(res);
local xml = ret.value[1];
if err then
print(err);
return;
end
for device in string.gmatch(xml, 'name="([^"]*)"') do
-- Mame zariadenie
end
end
);
end
Informácie o blokových zariadeniach sa potom v callbacku získajú volaním:
system_bus:call(
'org.freedesktop.UDisks2',
'/org/freedesktop/UDisks2',
'org.freedesktop.DBus.ObjectManager',
'GetManagedObjects',
nil,
nil,
Gio.DBusConnectionFlags.NONE,
-1,
nil,
function(conn, res)
-- Spracovanie
end
)
Nudný kód, ktoý parsuje informácie o zariadeniach vynechám. Pozrime sa ešte na funkcie pripojenia a odpojenia zariadenia:
local function mount_device(device)
if not device.Mounted then
ret, err = system_bus:call_sync(
'org.freedesktop.UDisks2',
'/org/freedesktop/UDisks2/block_devices/' .. device.Device,
'org.freedesktop.UDisks2.Filesystem',
'Mount',
GLib.Variant.new_tuple({
GLib.Variant('a{sv}', {})
}, 1),
nil,
Gio.DBusConnectionFlags.NONE,
-1,
nil
);
if err then
naughty.notify({
preset = naughty.config.presets.critical,
text = tostring(err),
});
else
device.Mounted = tostring(ret.value[1]);
end
end
if module.filemanager == nil then
else
awful.util.spawn_with_shell(module.filemanager .. ' "' .. device.Mounted .. '"');
end
end
local function unmount_device(device)
if device.Mounted then
ret, err = system_bus:call_sync(
'org.freedesktop.UDisks2',
'/org/freedesktop/UDisks2/block_devices/' .. device.Device,
'org.freedesktop.UDisks2.Filesystem',
'Unmount',
GLib.Variant.new_tuple({
GLib.Variant('a{sv}', {})
}, 1),
nil,
Gio.DBusConnectionFlags.NONE,
-1,
nil
);
if err then
naughty.notify({
preset = naughty.config.presets.critical,
text = tostring(err),
});
end
end
end
Metódy Mount aj Unmount vyžadujú jeden argument (type slovník string: variant). Po pripojení spúšťam správcu súborov. Odpojenie nespúšťa žiadnu akciu.
Súbor udisks.lua stačí uložiť do adresára, kde sa nachádza rc.lua. V rc.lua sa importuje modul a prípadne sa nastaví správca súborov:
udisks = require("udisks")
udisks.filemanager = "konqueror"
Widget sa pridá do panelu volaním:
layout:add(udisks.widget)
Do témy sa musia ešte pridať cesty k súborom (pripojené / odpojené zariadenie, prípadne je možné rozlíšiť zariadenia podľa rozhrania cez ktoré sa pripájajú napr USB, fallback je "default"):
theme.removable_default_mounted = themes_dir .. "/icons/removable_default_mounted.png" theme.removable_default_unmounted = themes_dir .. "/icons/removable_default_unmounted.png" theme.removable_usb_mounted = themes_dir .. "/icons/removable_usb_mounted.png" theme.removable_usb_unmounted = themes_dir .. "/icons/removable_usb_unmounted.png"
Ikony mám zverejnené v tomto repozitári.
Jeden obrázok za 1000 slov
Pripájanie ľavým myšítkom, odpájanie pravým.
Tiskni
Sdílej:
print(Gio.GVolumeMonitor) nil
Alebo sa to volá inak?
Momentálne sa skenujú len blokové zariadenia s rozhraním org.freedesktop.UDisks2.Partition a org.freedesktop.UDisks2.Filesystem. MTP a PTP samozrejme tieto rozhrania nemajú. Podmienku, ktorá ktorá vyraďuje zariadenia bez týchto rozhraní nie je problém vyhodiť.
V tom prípade znie otázka: podporuje UDisks2 MTP a PTP? U mňa je konfigurácia udisks2 pravidiel v /lib/udev/rules.d/80-udisks2.rules. Žiadne MTP / PTP tu nevidím. Oficiálna dokumentácia k UDisks2 nehovorí nič o MTP / PTP / možnosti rozšíriť / nakonfigurovať čokoľvek.
Problém je v tomto prípade, že si to každé prostredie rieši posvojom. Pri flashkách je to v pohode, tam sa o montovanie stará udisks.
V GNOME na to majú vlastný gvfs (ten aspoň používa fuse ak sa nemýlim), v KDE kio (takže spolupráca s neKDE-čkovými programami škrípe).
Ideálne by bolo keby MTP / PTP normálne obsluhovalo UDisks2 (zase tak rozdielne oproti bežným diskom nie je, vyhodili by sa rozhrania pre partície, mount / umount by mohol riešiť kľudne gvfs / iný fuse). Možno sa to aj dá nejak ohnúť, ale pri neexistujúcej dokumentácii a prístupe vývojárov "však to funguje samo, o nič sa nemusíte starať" ani neviem čím začať.
Myslím, že väčšie ľudí by stačilo keby to pripojilo virtuálny filesystém a dali by sa odtiaľ stiahnuť fotografie v raw / max kvalite. (i keď možno som len ja divný, ale ja od toho fakt viacej nechcem)
Hmm, ja nie som moc zástancom vyhadzovania starých vecí, ale na tú čítačku by som sa fakt vykašľal. Ja mám šmejd i-tec za 6€ a 16/32GB karty fungujú v pohode (SD, CF, Memory stick, Micro SD a podobné kraviny). Mám aj internú čítačku, ale priznám sa, že som ju ešte ani neskúšal. Fotoaparát sa mi zobrazuje ako normálny ata disk, takže tam to neriešim.
Tu by som z toho stavu neobviňoval Linux. Výrobcovia sú prasce a občas to ani na inom sytéme než windows nevyskúšajú. Pokojne môže byť chyba vo win vďaka ktorej to práve funguje, alebo je rozdiel len v časovaní a latenciách (napr. ak linux bude mať menšiu latenciu a bude posielať požiadavku skôr než stíha hardvér, ktorý to má blbo implementované).
ale pozor - pod windows samozřejmě žádný problém ...Ja jsem mel pro zmenu opacny problem. Pouzivam normalni flashku, jednou jsem ji potreboval pripojit pod Windows a narazil jsem na to, ze nebyly videt jine partitions nez prvni. Rikal jsem si, ze je pitomost, aby je Windows na USB proste ingorovaly, nebot clovek muze pripojit HDD pres USB-to-SATA redukci a partitions tam vidi, nicmene po rade pokusu a googleni jsem zjistil, ze opravdu to tak je. Windows prectou z popisu USB mass storage zarizeni bit 'je to flashka' a na takovem ignoruji dalsi partitions a (AFAIK) nedaji se presvedcit k opaku. Pod Linuxem samozrejme zadny problem ...
Pri CD si pamätám ešte kio slave, ktoré dokázli zobraziť skladby ako súbory a dalo sa to krásne kopírovať (aj s automatickým prekódovaním do mp3 / ogg). Bola to pekná doba no teraz už nemám na notebooku ani DVD mechaniku.
Áno, správne, blokuje to, viem o tom, prepíšem to
Niekde v kóde používam call, ale pri montovaní call_sync, ani neviem prečo som to považoval za dobrý nápad 
Prepísal som volania na asynchrónne, teraz by to už hádam nemalo blokovať wm.
To som skúšal, ale nejak mi tá potvora nechce montovať disky. Unmount funguje ok, ale mount nereaguje.