Soubory plochy: vložení aplikace do hlavní nabídky prostředí

Aplikace v GNOME uživatelé klepnou na ikonu na pracovní ploše nebo zvolí požadovanou aplikaci z hlavní nabídky. Proto je prvním krokem integrace existujícího programu s GNOME jeho registrace v sadě aplikací, které uživatelé mohou spustit.

Na rozdíl od Windows nebo MacOS jsou v GNOME nabídky sestavovány automaticky ze seznamu registrovaných aplikací. Každá takto publikovaná aplikace uvádí sadu kategorií, do kterých patří, a při sestavování nabídky jej systém zatřídí a umístí. Mechanismus pracuje dle standardu freedesktop.org pro položky plochy a nabídky.

Vzhledem ke zvyku ostatních prostředí se nedoporučuje vytvářet pro aplikaci vlastní podnabídku. Namísto toho vytvořte pro každou dodávanou aplikaci jednu položku. Další věci jako nápověda, soubory README nebo odkazy na WWW stránky by měly být dostupné ze samotné aplikace.

V GNOME a jiných prostředích vycházejících ze standardů freedesktop.org jsou aplikace registrovány do hlavní nabídky pomocí položky plochy, což je textový soubor s příponou .desktop. Tento soubor plochy obsahuje potřebnou konfiguraci pro integraci aplikace. Pracovní prostředí přebírá informace z tohoto souboru a používá je k:

  • put the application in the Main Menu. To find a list of valid categories, take a look into FreeDesktop.org's Desktop Menu Specification.
  • uvedení aplikace v seznamu okna Spustit aplikaci...
  • vytvoření příslušných spouštěčů v nabídce a na pracovní ploše
  • asociování jména a popisu aplikace
  • použití příslušné ikony.
  • rozpoznání typů MIME, které aplikace podporuje, při otevírání souborů.

Pokud chcete přidat záznam v nabídce pro svoji aplikaci, vytvořte soubor plochy. Ten by měl mít unikátní název a vzhledem k tomu, že délka názvu není omezena, vyvarujte se zkratek a klidně použijte název celý. V žádném případě však do názvu nevkládejte mezery nebo znaky specifické pro jiný jazyk. Název "foocorp-painter-pro.desktop" je dobrý na rozdíl od "fcpp.desktop" nebo "FooCorp Painter Pro.desktop". Soubor by měl být v kódování UTF-8 a měl by být založen na následujícím vzoru:

	[Desktop Entry]
	Name=FooCorp Painter Pro
	Exec=foocorp-painter-pro
	Icon=foocorp-painter-pro
	Type=Application
	Categories=GTK;GNOME;Utility;
	

Soubory plochy obsahují metadata o aplikaci a hrají hlavní roli v integraci programu v GNOME a obdobných pracovních prostředích, které pracují dle stejného standardu. Zde uvedený vzor je tím úplně základním. Soubor může být lokalizován, takže uživateli se názvy aplikací zobrazují v jeho rodném jazyce.

Tento soubor umístěte do adresáře /usr/share/applications, kde bude dostupný pro každého uživatele, nebo do adresáře ~/.local/share/applications, pokud si přejete, aby aplikace byla dostupná jen konkrétnímu uživateli. Umístění bude použito v závislosti na tom, zda je aplikace nainstalována v systému nebo v domácím adresáři uživatele. GNOME sleduje tato umístění, takže prosté nakopírování souboru plochy do jednoho z nich stačí k registraci v pracovním prostředí. 1

Každý funkční soubor plochy musí používat tento formát. Příklad takového souboru ukazuje Příklad 1-1. Soubor je rozdělen na části, každá začíná popisem sekce v hranatých závorkách. Ve zmiňovaném příkladu je jen jedna část, která je základem integrace aplikace do pracovního prostředí. V každé části je obsah každého řádku před znamínkem rovnosti ('=') klíč a vše za ním pak hodnota klíče. Vysvětlení jednotlivých klíčů popisuje Tabulka 1-1.

Krom prvního řádku, který identifikuje soubor plochy, není pořadí důležité. Řádek Type=Application, který obsahuje Příklad 1-1, může být na druhém, pátém nebo posledním řádku a výsledek bude stejný.

Každopádně názvy klíčů rozlišují malá a velký písmena a proto Type=Application není to samé jako type=Application nebo TYPE=Application.

Příklad 1-1Nějaký soubor plochy
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Sample Application Name
Comment=A sample application
Exec=application
Icon=aplikace.png
Terminal=false
Tabulka 1-1Vysvětlení řádek po řádku
Řádek Popis
[Desktop Entry] První řádek každého souboru plochy a hlavička každé části, sloužící k identifikaci bloku asociovaných klíčů s hodnotami a pracovního prostředí. Nezbytné pro prostředí ke správnému rozpoznání souboru.
Type=Application Říká pracovnímu prostředí, že soubor náleží aplikaci. Další platné hodnoty tohoto klíče jsou Link a Directory.
Encoding=UTF-8 Uvádí kódování znaků v souboru plochy.
Name=Sample Application Name Název vaší aplikace, který bude použit v nabídce a pro spouštěč.
Comment=A sample application Popisuje aplikaci, používá se jako bublinová nápověda.
Exec=application Příkaz, který spustí aplikaci z příkazové řádky. Může obsahovat parametry.
Icon=aplikace.png Název ikony asociovaný s aplikací
Terminal=false Určuje, jestli se aplikace má spustit v terminálu.

1.1.1. Spuštění aplikace

Pokud vaše aplikace podporuje parametry z příkazového řádku, můžete je uvést v tak, jak ukazuje Tabulka 1-2.

Tabulka 1-2Proměnné při spouštění
Přidat... Akceptuje...
%f jeden název souboru
%F více jmen souborů
%u jedna adresa URL
%U více adres URL
%d jeden adresář. Využívá se spolu s %f k určení umístění souboru.
%D více adresářů. Využívá se spolu s %F k určení umístění souborů.
%n jeden název souboru bez cesty
%N více názvů souborů bez cest
%k adresa URI nebo cesta k souboru, kde se nachází soubor plochy.
%v název zařízení.

1.1.2. Cizí jazyky

Pokud chcete lokalizovat názvy a popisy, musíte pro každý překlad uvést další řádek. Například, pokud chcete přidat český překlad popisu, přidáte následující řádek:

Comment[cs]=Ukázková aplikace

Neexistuje limit, kolik lze maximálně uvádět překladů v jednom souboru.

Protože je správa dlouhého seznamu překladů v jednom souboru nešikovný, lepším způsobem je vytvořit tyto překlady pomocí balíku nástrojů intltool. Další informace se dozvíte z manuálových stránek popisujících intltool-extract a intltool-merge.

1.1.3. Reference

Desktop Entry Specification — Specifikace pro vytváření souborů plochy

1

Mějte na paměti, že adresář ~/.local/share/applications je sledován v GNOME od verze 2.10 (v distribuci Fedora od verze 2.8). Dřívější verze GNOME pracovali na dnes již zastaralou technologii vfolder a proto musely být soubory plochy instalovány do ~/.gnome2/vfolders/applications. Toto umístění není podporováno od GNOME 2.10 (v distribuci Fedora od GNOME 2.8) a proto, pro zajištění maximální kompatibility, umístěte soubor do obou adresářů.

Mějte také na paměti, že pracovní prostředí KDE vyžaduje spuštění kbuildsycoca, aby byla nabídka aktualizována.