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.

Place this file in the /usr/share/applications directory so that it is accessible by everyone, or in ~/.local/share/applications if you only wish to make it accessible to a single user. Which is used should depend on whether your application is installed systemwide or into a user's home directory. GNOME monitors these directories for changes, so simply copying the file to the right location is enough to register it with the desktop. 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 Tells the desktop that this desktop file pertains to an application. Other valid values for this key are Link and 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=application.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 a single directory. Used in conjunction with %f to locate a file.
%D multiple directories. Used in conjunction with %F to locate files.
%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[sv]=Exempelprogramnamn

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

Note that the ~/.local/share/applications location is not monitored by versions of GNOME prior to version 2.10 or on Fedora Core Linux, prior to version 2.8. These versions of GNOME follow the now-deprecated vfolder standard, and so desktop files must be installed to ~/.gnome2/vfolders/applications. This location is not supported by GNOME 2.8 on Fedora Core nor on upstream GNOME 2.10 so for maximum compatibility with deployed desktops, put the file in both locations.

Note that the KDE Desktop requires one to run kbuildsycoca to force a refresh of the menus.