Hlavní navigace

Oskriptujte si svůj Nautilus!

6. 4. 2007
Doba čtení: 3 minuty

Sdílet

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".

CS24_early

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

Používáte skripty Nautilu?

Byl pro vás článek přínosný?

Autor článku

Jakub Šťastný byl v letech 2007 až 2008 redaktorem serveru Root.cz. Mezi jeho zájmy patří Linux, programování a typografický systém TeX.