Linux: Kniha kouzel, vanilková příchuť 2.14 (15. července 2022)
Veškerá moc příkazové řádky/příkazového řádku přehledně, pro začátečníky i pokročilé

8. Nabídka aplikací

Řada 2.x vanilkové příchuti Linuxu: Knihy kouzel je od 15. července 2022 do 1. března 2025 ve stavu dlouhodobé pasivní údržby; nahlášené chyby budou opravovány, ale aktivní vývoj se již věnuje jiným projektům. Máte-li zájem pokračovat v tvorbě Linuxu: Knihy kouzel pro novější verze linuxových operačních systémů, kontaktujte autora nebo rovnou vytvořte odnož.

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.
Líbí se vám tento projekt a chcete, aby byl ještě lepší? Můžete mi s tím pomoci. Zmiňte se o něm technicky zdatným přátelům, opravte překlepy a nahlašte nefunkční zaklínadla, aby mohla být opravena; poskytněte mi zpětnou vazbu nebo se zapojte do vývoje nových kapitol. Další informace na GitHubu v dokumentu Jak se zapojit.
[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.