Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.
Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.
Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.
Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.
Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.
Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).
OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.
Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.
R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.
Type
, Name
a Exec
, jsem si přečetl
specifikaci (a poznámky
zveřejním zde, když už jsem si ten blog založil).
V textu budu průběžně odkazovat na specifikaci verze 1.5 (jednostránkovou verzi), aby bylo snažší dohledat podrobnosti. Z této specifikace vycházím, ale tento můj text je značně zkrácený a zjednodušený.
Soubory popisující adresář se jmenují .desktop
, ostatní končí na .desktop
. Systém by
měl být schopen fallbacku na magickou detekci.
Pro aplikace by mělo platit to, že text před .desktop
je D-Bus well-known name, tedy
něco ve stylu Javovských jmenných prostorů – posloupnost částí (min. jedna) oddělených tečkou, kde každá část
nezačíná číslicí a je ze znaků [A-Za-z0-9-_]
.
Vezmu cestu relativně k adresáři v $XDG_DATA_DIRS
, odeberu prefix applications/
a nahradím
lomítka tečkami. Dostanu ID desktop souboru. Pokud je více souborů se stejným ID, má přednost ten ze dříve uvedeného
adresáře.
Soubor je podobný tzv. INI souborům. Je v UTF-8, řádky končí LF. Formát je case-sensitive.
Komentáře
uvozujeme #
,
skupiny
řádkem s názvem v hranaté závorce.
Soubor začíná magickým stringem [Desktop Entry]
, který zároveň uvozuje první skupinu.
Údaje jsou typu klíč-hodnota, kde klíč je tvořen malými, velkými, číslicemi a spojovníkem (0x2d).
Typy jsou string (jen tisknutelné ASCII), localestring (UTF-8 string pro uživatele), iconstring
(cesty a názvy ikon, UTF-8), boolean (true
, false
) numeric (float dle
scanf
s %f
v C
locale).
Stringové typy rozumí escape sekvencím \s
(pro 0x20), \n
, \t
, \r
,
a \\
.
Seznamy se v hodnotě oddělují středníkem, můžeme ho pak escapovat \;
.
Loklizované údaje značíme hranatou závorkou s locale hned za názvem klíče. Text závorky je ve formátu
lang_COUNTRY.ENCODING@MODIFIER
. Čím více toho uvedeme, tím vyšší má přednost.
Type
, který nabývá hodnot Application
, Link
, nebo Directory
.
Version
, tedy hodnota 1.5
(k době psaní textu).
Pokud je Type
rovno Link
, pak ještě URL
.
Name
(např. „KWrite“) a GenericName
(např. „Textový editor“) — název aplikace
Comment
— Poznámka pro uživatele
NoDisplay
(boolean) — Skrýt v UI
Hidden
(boolean) — Používá se pro smazání, pokud nemá uživatel přístup k systémovým Desktop souborům
OnlyShowIn
a NotShowIn
(alespoň jeden string) — Omezujeme na daná desktopová prostředí, dle
$XDG_CURRENT_DESKTOP
.
DBusActivatable
(boolean) — Aplikace se bude
aktivovat po
D-Busu místo spuštění
TryExec
— Položka se má ignorovat pokud soubor na této cestě není spustitelný
Exec
— Spustitelný soubor (tato položka má svá specifika – viz níže)
Path
— pracovní adresář
Terminal
(boolean) — označuje terminálovou aplikaci
Actions
— alternativní akce pro aplikaci, nebudu se rozepisovat, více v specifikaci
MimeType
(alespoň jeden string) — MIME typy otvírané aplikací
Categories
, Keywords
(alespoň jeden string) — více viz
specifikaci desktop menu
Implements
— Pro D-Bus, více viz specifikaci
StartupNotify
, StartupWMClass
— Kolem ukazování průběhu spouštění, má svůj
protokol
Exec
a jeho specifika
Exec
je buď absolutní cesta, nebo název programu (hledá se v $PATH
). Nultý argument by neměl
obsahovat rovnítko. Pokud použijeme uvozovky, tak dvojité a escapujeme backtick, dolar
a zpětné lomítko zpětným lomítkem.
Rezervované znaky: 0x20, 0x9, 0xd a "'\><~|&;$*?#()`
Exec
%f
— právě jeden lokální soubor k otevření
%F
— více lokálních souborů k otevření
%u
— právě jedno URL či lokální cesta k otevření
%U
— více URL či cest k otevření
%i
— ikona jako --icon cestaKIkoně
(pokud není ikona, tak nic)
%c
— název tak, jak se ukázal (tj. lokalizovaný/přeložený)
%k
— cesta či URI desktop souboru
%%
— %
doslovně
S %f
a %u
by měl být spuštěn program pro každý soubor zvlášť.
S %f
a %F
se soubor překopíruje na lokální úložiště, je-li to nutné.
Nejde uvést více než jednu proměnnou ze sady %f
, %F
, %u
, %U
.
Použití proměnné v uvozovkách způsobí nedefinované chování.
Tiskni Sdílej:
supr článeček akorátže nemam naploše vůůbec žádný ikonky takže se nemužu kouknout jestli to jakoby fakt všecko sedí :D
jj máte voba pravdu tam jich je moc :O :D
Pěkný zápisek. Tyhle specifikace jsem před nedávnem taky studoval, když jsem psal parser INI souborů. Ty .desktop
soubory jsou jeden z dialektů. Ještě to není úplně odladěné a vydané, ale celkem už mi to funguje :-)
$ cat /usr/share/applications/org.kde.konsole.desktop \ | relpipe-in-ini --enable-sub-keys true \ | relpipe-tr-awk \ --relation "ini" - --where 'sub_key == "cs" || key !~ "Name|Comment|GenericName"' \ | relpipe-out-tabular ini: ╭──────────────────────────┬───────────────────────┬──────────────────┬─────────────────────────────────╮ │ section (string) │ key (string) │ sub_key (string) │ value (string) │ ├──────────────────────────┼───────────────────────┼──────────────────┼─────────────────────────────────┤ │ Desktop Entry │ Type │ │ Application │ │ Desktop Entry │ TryExec │ │ konsole │ │ Desktop Entry │ Exec │ │ konsole │ │ Desktop Entry │ Icon │ │ utilities-terminal │ │ Desktop Entry │ Terminal │ │ false │ │ Desktop Entry │ Categories │ │ Qt;KDE;System;TerminalEmulator; │ │ Desktop Entry │ Actions │ │ NewWindow;NewTab; │ │ Desktop Entry │ X-DocPath │ │ konsole/index.html │ │ Desktop Entry │ X-DBUS-StartupType │ │ Unique │ │ Desktop Entry │ StartupNotify │ │ true │ │ Desktop Entry │ X-KDE-AuthorizeAction │ │ shell_access │ │ Desktop Entry │ Name │ cs │ Konsole │ │ Desktop Entry │ GenericName │ cs │ Terminál │ │ Desktop Entry │ Comment │ cs │ Přístup k příkazové řádce │ │ Desktop Action NewWindow │ Name │ cs │ Otevřít nové okno │ │ Desktop Action NewWindow │ Exec │ │ konsole │ │ Desktop Action NewTab │ Name │ cs │ Otevřít novou kartu │ │ Desktop Action NewTab │ Exec │ │ konsole --new-tab │ ╰──────────────────────────┴───────────────────────┴──────────────────┴─────────────────────────────────╯ Record count: 18
Mimochodem, hodně podobné jsou konfiguráky systemd, akorát tam mají jednu záludnost/odlišnost kolem zalamování řádků… to ještě nemám implementované.