Hlavní navigace

Oskriptujte si svůj Nautilus!

Jakub Šťastný 6. 4. 2007

Nautilus vypadá na první pohled jako obyčejný správce souborů, ale nenechte se mýlit. Pod jeho povrchem se totiž skrývají možnosti přímo královské. Jednou z nich jsou právě nautilí skripty, které vám umožní opravdu efektivní práci s tímto pohledným souborovým managerem.

Nautilus a skripty?

Ano. Jsou to obyčejné skripty v libovolném jazyce, které lze aplikovat na aktuální složku či pouze na vybrané položky. Jsou přístupné z kontextové nabídky Nautilu.

nautilus

K čemu jsou dobré?

Možností upotřebení je celá řada – jen namátkou zmiňuji kompresi, zálohování, přidání mp3 souborů do playlistu, zobrazení podrobných informací o souboru, editaci souboru se superuživatelskými oprávněními, instalace balíčků, spuštění kompilace, konverze souborů JPG na PNG nebo třeba vytvoření náhledů ze všech, či pouze označených obrázků ve složce.

Proměnné nautilích skriptů

Je samozřejmé, že skript sám o sobě nepozná, jaké soubory jsou označeny a jaké nikoliv. Proto nám Nautilus poskytuje tyto informace v několika proměnných, které jsou ze skriptu dostupné:

  • $NAUTILUS_SCRIP­T_SELECTED_FI­LE_PATHS je proměnná obsahující cesty k vybraným souborům oddělené znakem nového řádku.
  • $NAUTILUS_SCRIPT_SELECTED_URIS je proměnná velmi podobná výše uvedené, ale narozdíl od ní nevrací cesty k souborům, ale jejich URL.
  • $NAUTILUS_SCRIPT_CURRENT_URI poskytuje URL aktuální složky.
  • $NAUTILUS_SCRIPT_WINDOW_GEOMETRY uchovává informace o velikosti a umístění okna.

Přirozenější a příjemnější cestou než používání $NAUTILUS_SCRIP­T_SELECTED_FI­LE_PATHS je použití proměnných $1, $2 atd. či $* v bashi či jejich ekvivalentů v jiných programovacích jazycích (tedy ARGV v Ruby, @ARGV v Perlu či sys.argv v Pythonu).

Samozřejmě pokud budeme chtít nějakou z výše uvedených proměnných použít v některém ze skriptovacích jazyků přímo, bude třeba s ní pracovat jako s proměnnou prostředí, tedy například v Ruby to bude  ENV['NAUTILUS_SCRIPT_WINDOW_GEOMETRY'].

Nicméně pokud si nejste přesně jisti, co přesně která proměnná znamená, zkuste použít tento drobný skriptík (nautilus_vari­ables (HTML 760 bytů)). Pomocí něj můžete snadno vypsat zmíněné proměnné do souboru ~/nautilus-scripts-log. Zkuste si, co vrátí, když vyvoláte kontextovou nabídku na libovolném místě v adresáři a co vrátí když označíte libovolné soubory.

Kam s nimi?

Veškeré skripty ukládejte do složky ~/.gnome2/nautilus-scripts, kde je Nautilus sám najde a vy již více řešit nemusíte. Je dobré vědět, že ve zmíněné složce můžete libovolně vytvářet podsložky, které budou expandovány na jednotlivá submenu, jak je patrno z obrázku výše.

Tipy

Grafika

Patrně je vám jasné, že GTK v bashi přímo používat nemůžete. V Pythonu, Ruby či Perlu sice ano, ale upřímně řečeno, kdo by se s tím chtěl psát kvůli nějakému skriptíku? Naštěstí je tu elegantní řešení. Jmenuje se zenity.

Základem okýnek v nautilích skriptech je zobrazování informací. To se dělá pomocí zenity --info --title="titulek okna" --text="zobrazený text". Chcete-li informovat o chybě, použijte raději  zenity --error --title="titulek okna" --text="zobrazený text".

Neméně důležité je vkládání informací uživatelem. Od toho slouží zenity --entry --title="titulek okna" --text="zobrazovaný text". Zenity pochopitelně nabízí i specializovanější formy tohoto vkládacího dialogu, například dialog pro výběr data se volá zenity --calendar a dialog pro výběr souborů zase  zenity --file-selection.

Jak na heslo roota?

Ne, opravdu vám nemíním vyzradit heslo do redakčního systému vašeho oblíbeného serveru, míním tím uživatele root na vašem počítači. K tomuto účelu slouží gksu a gksudo. Rozdíl mezi nimi je více než patrný – prvá aplikace volá příkaz su, kdežto druhá příkaz sudo. Takže například když chcete pustit Firestarter s právy roota přes sudo, použijte  gksudo firestarter.

Odkazy

Anketa

Používáte skripty Nautilu?

Našli jste v článku chybu?

8. 4. 2007 23:31

Tak ja som sa s tym vcera pohral a mam funkcny skriptik. Je to sice jednoduche, ale da sa pouzit:
.gnome2/nautilus-scripts/Rename
#!/bin/bash
old=`zenity --title="Dotaz" --entry --text="String to replace"`
new=`zenity --title="Dotaz" --entry --text="String to replace by"`
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do mv "$file" `echo "$file" | sed -e "s/$old/$new/g"`; done
Stary retazec v nazve vybranych suborov sa nahradi novym. Ide len o nahradenie textu, staci vsak trochu…

8. 4. 2007 22:44

cow award (neregistrovaný)
Hm, myslel jsem něco, co mí Thunar. Nevím, jestli se cítím na to, něco napsat sám, ale třeba se k tomu dokopu. Dík za info:)
Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Slevové šílenství je tu. Kde nakoupit na Black Friday?

Slevové šílenství je tu. Kde nakoupit na Black Friday?

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky