Linux: Kniha kouzel, 2.15 (1. března 2025)
Veškerá moc příkazové řádky/příkazového řádku přehledně, pro začátečníky i pokročilé

13. Nabídka aplikací

Vývoj vanilkové příchuti Linuxu: Knihy kouzel byl 1. března 2025 ukončen. Tento text je zachován jako historický, ale chyby již nejsou opravovány. Odnože projektu pod kompatibilní licencí jsou vítány.

1. Úvod

Tato kapitola pokrývá tvorbu spouštěčů aplikací (*.desktop) a jejich použití v nabídce aplikací a automatické spouštění aplikací po přihlášení do grafického sezení (pro automatické spouštění před přihlášením je třeba použít démon „cron“ nebo jiné řešení).

Spouštěč je textový soubor s příponou „.desktop“. Konkrétní možnosti a chování spouštěčů zavisí na použitém okenním prostředí; obecně však platí následující:

Spouštěč umístěný v těchto adresářích se objeví v nabídce aplikací a je možno ho nastavit, aby se spouštěl při dvojkliku na typy souborů, které uvádí v klíči „MimeType“:

  • /usr/share/applications
  • /usr/local/share/applications
  • ~/.local/share/applications

Spouštěč umístěný v těcho adresářích se automaticky spustí po přihlášení uživatele, pokud ho uživatel nepotlačí v nastavení systému:

  • /etc/xdg/autostart
  • ~/.config/autostart

Spouštěč, k němuž má uživatel právo „x“, se zobrazí ve správcích souborů a (případně) na pracovní ploše se svou ikonou a svým názvem místo názvu souboru. Výchozí příkaz takového spouštěče můžete aktivovat dvojklikem nebo přetažením adresářových položek na něj.

2. Definice

  • Název (name) je u spouštěče hlavní text, který se v nabídkách zobrazí u ikony spouštěče. Měl by být krátký a téměř nikdy neodpovídá názvu souboru.
  • Popisek (comment) je vedlejší text, který prostředí může zobrazit spolu s názvem. Může být i delší, ale není povinný.
  • Kategorie (category) jsou pojmenované skupiny sloužící především k roztřídění spouštěčů do podnabídek. Spouštěč může patřit i do více podnabídek současně.
  • Výchozí příkaz je příkaz, který se spustí dvojkliknutím (popř. kliknutím) na spouštěč nebo když na něj uživatele přetáhne nějaké adresářové položky.
  • Akce je dodatečný pojmenovaný příkaz příslušný ke spouštěči, který lze v některých prostředích spustit výběrem z kontextové nabídky.

3. Zaklínadla

3/1 Spouštěč (syntaxe)

@obvyklý tvar spouštěče *.desktop#1 (1)
[Desktop Entry]
[Version=1.0]
Type=Application
Name=Název spouštěče
[Name[cs]=Název jen pro české prostředí]
Exec=výchozí příkaz
[Icon=ikona]
[Actions=IdAkce;[IdDalsiAkce;]]
[další=volby]
[definice akcí]
@nastavit aktuální adresář pro vých. příkaz#2
Path=/absolutní/cesta
@spustit příkaz v emulátoru terminálu#3
Terminal=true
@řádek s komentářem (kdekoliv v souboru)#4
#[libovolný text]
@nastavit popisek#5
Comment=Popisek
[Comment[cs]=Popisek jen pro české prostředí]
@potlačit zobrazení v menu#6
NoDisplay=true
@zařadit do kategorií#7
Categories=Kategorie;[DalšíKategorie;]
@nastavit obsluhované MIME typy#8
MimeType=mime/typ;[další/mime/typ;]

3/2 Definice akce (syntaxe)

@obecný tvar akce#1 (2)
[Desktop Action IdAkce]
Name=Titulek
[Name[cs]=Titulek česky]
Exec=příkaz akce
[Icon=ikona]

3/3 GUI

@otevřít spouštěč v GUI editoru#1
exo-desktop-item-edit cesta/ke/spouštěči.desktop
@vytvořit nový spouštěč (GUI)#2 (3)
exo-desktop-item-edit --create-new --type Application [--name "Název"] [--command "Příkaz"] [--icon ikona] cesta/ke/spouštěči.desktop

3/4 Užitečné příkazy

@aktualizovat keš obsluh typů souborů po změně systémových spouštěčů#1
sudo update-desktop-database

4. Parametry příkazů

4/1 Příkazová řádka v klíči Exec

Příkazová řádka v klíčích Exec se zadává podobně jako v Bashi, ale s několika dvěma zásadními odchylkami:

  • Znaky !, $, &, ;, <, =, >, ?, [, ], ^, `, {, |, }, ~ a další jsou obyčejné; nemůžete je použít způsobem, na jaký jste zvyklý/á z Bashe, a není třeba je odzvláštňovat.
  • Příkaz musí začínat názvem spustitelného souboru (bez cesty či s cestou); přiřazení do proměnných, funkce a vestavěné příkazy Bashe (včetně jakýchkoliv zvláštních konstrukcí) jsou vyloučeny.
  • Znak „\“ má zvláštní význam všude kromě vnitřku apostrofů; znak „%“ i tam. Oba tyto znaky se zde odzvláštňují zdvojením.
  • Mimo vnitřek apostrofů lze vložit (nezvláštní) konec řádku sekvencí „\n“.

Pokud nějakou konstrukci z Bashe potřebujete, musíte zavolat Bash a příkaz mu předat parametrem „-c“; přitom si dejte pozor na nutnost odzvláštnění znaku „%“ a znaku „\“ mimo apostrofy (GUI editor vám s tímto bohužel nepomůže).

Ve výchozím příkazu (ne v příkazu akce) můžete na místě jednoho parametru (obvykle posledního) uvést jednu z následujících značek, která se uplatní v případě, že uživatel na spouštěč přetáhne jeden nebo více souborů či adresářů (jinak se daný parametr tiše vypustí):

  • %f se rozvine na absolutní cestu jednoho souboru/adresáře (v případě přetažení více položek se spustí pro každou položku samostatný příkaz)
  • %F se rozvine na seznam souborů/adresářů (každý v samostatném parametru)
  • %u%U jsou jako %f a %F, ale místo cesty se předá URI (může být i vzdálené)

4/2 Ikona v klíči Icon

Ikona je obvykle zadána názvem (v takovém případě bude vyhledávána ve standardních adresářích). Může však být zadána také jako absolutní cesta k souboru s ikonou (ve formátu PNG nebo SVG), v takovém případě se použije vždy daný soubor (nezkoušel/a jsem). Pokud přesný název ikony neznáte, použijte k jejímu nastavení GUI editor.

4/3 Kategorie odpovídající podnabídkám hlavního menu

(Podnabídka → Category)

  • Grafika“ → Graphics
  • Hry“ → Game
  • Internet“ → Network
  • Kancelář“ → Office
  • Multimédia“ → AudioVideo
  • Nastavení“ → Settings — Aplikace v této kategorii se v Xfce objevují také v okně „Nastavení systému“.
  • Příslušenství“ → Utility
  • Systém“ → System
  • Vývoj“ → Development
  • Vzdělávání“ → Education

Příklad (umístit spouštěč do podnabídek „Multimédia“ a „Vzdělávání“):

Category=AudioVideo;Education;

5. Instalace na Ubuntu

Většina použitých nástrojů je přítomna i v minimální instalaci Ubuntu. Pouze GUI editor exo-desktop-item-edit může být nutno doinstalovat:

sudo apt-get install exo-utils

6. Ukázka

@~/.local/share/applications/vycet.xterm.desktop#1
[Desktop Entry]
Version=1.0
Type=Application
Name=List of paths in xterm
Name[cs]=Výčet cest v xtermu
Exec=xterm -e bash -c 'printf %%s\\\\n "$@" && read' -- %F
# řekněme, že lepší ikonu jste nenašel/a...
Icon=ibus
Categories=Utility;System;
Comment=Přetáhněte sem soubory a adresáře, xterm vám vypíše jejich cesty!

7. Tipy a zkušenosti

  • Častá začátečnická chyba je očekávání, že znaky „~“ a „$“ v klíči Exec že budou fungovat stejně jako v Bashi.
  • Název spouštěče může obsahovat prakticky jakékoliv tisknutelné znaky; zpětné lomítko však musí být odzvláštněno zdvojením a doporučuji název začínat písmenem, číslicí nebo ne-ASCII znakem.
  • Umístíte-li do „~/.local/share/applications“ spouštěč se stejným názvem souboru, jaký existuje na systémové úrovni, váš spouštěč ten systémový „překryje“. Toho můžete využít k přízpusobení si spouštěčů v rámci svého uživatelského účtu; můžete změnit název, ikonu, příkaz apod.

8. Další zdroje informací

9. Zákulisí kapitoly

V této verzi kapitoly chybí:

  • nic

Tato kapitola záměrně nepokrývá:

  • nic
1 Pozor — před psaním klíče „Exec“ nastudujte příslušnou podsekci v sekci „Parametry příkazů“! Pokud neznáte přesný identifikátor požadované ikony, doporučuji pro nastavení klíče „Icon“ použít GUI editor.
2 Pozor — před psaním klíče „Exec“ nastudujte příslušnou podsekci v sekci „Parametry příkazů“!
3 Volitelné parametry jsem nezkoušel/a.
[BY-SA]

Veškerý obsah této stránky (text, obrázky, zdrojový kód) je možno upravovat a šířit pod podmínkami licence Creative Commons Attribution-ShareAlike 4.0 International. Upozorňuji, že uvedená licence vyžaduje uvedení seznamu autorů, licence a zdroje a poskytnutí stejné či kompatibilní licence k provedeným změnám, jsou-li nějaké. Příslušné údaje jsou dostupné na stránce „Přehled autorů“. Šíření obsahu bez těchto údajů nebo šíření upravené verze bez poskytnutí adekvátní licence k provedeným úpravám je pravděpodobně porušení licenčních podmínek a může být postihováno. Poskytování zdrojového kódu při šíření není touto licencí vyžadováno.

Pro nové verze, další informace, aktuální zdrojový kód a možnost se zapojit do projektu „Linux: Kniha kouzel“ navštivte jeho repozitář na GitHubu.