A Nemo fájlkezelő menüinek kiegészítése „Actions” segítségével

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi és Paypal!

Bevezetés

A Cinnamon asztali környezet alapértelmezett fájlkezelője a Nemo, amely számos testreszabási lehetőséget kínál a felhasználók számára1. Ezek közül az egyik leghatékonyabb a kontextus menü kiegészítése egyéni műveletekkel, amelyeket "actions"-nek nevezünk. Ezek a műveletek lehetővé teszik, hogy saját parancsokat, szkripteket futtass közvetlenül a fájlkezelőből, jelentősen felgyorsítva a mindennapi munkádat.

Ebben a leírásban lépésről lépésre megismerkedhetsz a Nemo actions működésével, létrehozásával, és egy konkrét példán keresztül megtanulhatod, hogyan készíts egy olyan műveletet, amely a kijelölt rendszerszintű konfigurációs állományt emelt joggal nyitja meg a megadott szerkesztőben. Rendszerbeállításoknál nem utolsó szempont a gyorsaság...

Mi az a Nemo Action?

A Nemo action egy olyan egyéni művelet, amely megjelenik a fájlkezelő jobb kattintásos menüjében, és lehetővé teszi, hogy különböző parancsokat, szkripteket futtass a kijelölt fájlokon vagy mappákon. Ezek a műveletek .nemo_action kiterjesztésű fájlokban vannak definiálva, amelyek egyszerű szöveges konfigurációs fájlok.

Hol tárolódnak a Nemo Actions fájlok?

A Nemo actions fájlokat két helyen tárolhatod:

  1. Felhasználói szinten: ~/.local/share/nemo/actions/ - Csak a te felhasználói fiókodban lesznek elérhetők a műveletek.

  2. Rendszerszinten: /usr/share/nemo/actions/ - Minden felhasználó számára elérhetők lesznek a műveletek.

Logikus, hogy mi a saját mappás, azaz a felhasználói szintet erősítjük.

A Nemo Action fájl szerkezete

Minden .nemo_action fájl egy meghatározott szerkezettel rendelkezik. Íme a legfontosabb elemek:

[Nemo Action]
Active=true
Name=Művelet neve
Comment=Művelet leírása
Exec=futtatandó parancs
Icon-Name=ikon neve
Selection=kijelölés típusa
Extensions=kiterjesztések listája

Nézzük részletesebben ezeket a paramétereket:

Kötelező paraméterek

  • Name: A művelet neve, amely megjelenik a menüben. Egyedi és értelmes legyen!

  • Exec: A futtatandó parancs vagy szkript. Egy lehet egy nagyon egyszerű parancs is, de hivatkozhatsz egy szkriptre is. Ha szkriptre hivatkozol, akkor az legyen benne a PATH-ban (erről itt)olvashatsz)

  • Selection: Meghatározza, hogy milyen típusú kijelölésre jelenjen meg a művelet (pl. egy fájl, több fájl, stb.).

  • Extensions vagy Mimetypes: Meghatározza, hogy milyen fájltípusokra jelenjen meg a művelet. Ha egy adott csoportba tartozó állományokat (pld. szövegfájlokat) akarsz kezelni, akkor érdemes a mimetypes-eket megadni. Ezek azért fontosak, mert a jobb klikkes menüben csak akkor jelenik meg a menüpont, ha érvényes fájltípus jelölünk ki.

Opcionális paraméterek

  • Active: Ha false, a művelet nem jelenik meg (hibakereséshez hasznos).

  • Comment: A művelet leírása, amely az állapotsorban jelenik meg. Add meg ha másnak is odaadod. Így mindig tudja mire is jó az eszköz.

  • Icon-Name: A művelet mellett megjelenő ikon neve.

  • Terminal: Ha true, a parancs terminálban fut. Ezt hibakeresésnél is használhatod, mert így látni lehet, hogy mi történik a szkript futtatásakor.

  • Quote: Hogyan idézze a fájlneveket (pld. double dupla idézőjelekkel).

  • Dependencies: A művelethez szükséges programok listája. Itt csak a felsorolás történik meg, nem fogja tudni a függőségeket telepíteni.

Helyettesítő jelek (tokenek) használata

A Nemo actions fájlokban különböző helyettesítő jeleket használhatsz, amelyek futásidőben a kijelölt fájlokra vagy mappákra vonatkozó információkkal helyettesítődik:

  • %F: A kijelölt fájlok teljes elérési útja.

  • %f vagy %N: Az első kijelölt fájl neve.

  • %P: A szülő (aktuális) mappa elérési útja.

  • %e: Az első kijelölt fájl neve kiterjesztés nélkül.

  • %U: A kijelölt elemek URI listája.

Lépésről lépésre: Emelt jogú szövegszerkesztés

Most készítsünk egy olyan műveletet, ami emelt joggal nyítja meg a konfigurációs állományt és azt szerkeszthetjük.

1. lépés: Ellenőrizd, hogy telepítve van-e az

Nyiss egy terminált, és írd be:

sudoedit -h

nano -h

Ha hiányzik valamelyik, akkor telepítsd.

2. lépés: Hozd létre a .nemo_action fájlt

Nyiss egy szövegszerkesztőt:

`nano ~/.local/share/nemo/actions/nano_sudoedit.nemo_action

Másold be a következő tartalmat:

[Nemo Action]

Name=_Nano (Sudoedit)
Comment=Megnyítás nanoval emelt joggal %F.
Exec=
Icon-Name=text-editor-symbolic
Selection=any
Mimetypes=text/plain;text/css;text/english;text/html;text/x-apt-sources-list;text/x-c;text/x-c++;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-diff;text/x-dsrc;text/x-java;text/x-makefile;text/x-moc;text/x-pascal;text/x-perl;text/x-python;text/x-sql;text/x-tcl;text/x-tex;
Dependencies=sudoedit;nano;
EscapeSpaces=true
Terminal=true

Mentsd el a fájlt (Ctrl+O, majd Enter, végül Ctrl+X).

3. lépés: Hozd létre a szerkesztőt megnyitó szkriptet

Nyiss egy szövegszerkesztőt:

nano ~/.local/share/nemo/actions/action_scripts/nano_sudoedit_check.sh

Másold be a következő tartalmat:

#!/bin/bash
FILEOWNER=$(stat -c %U "$1")
if [ "$FILEOWNER" = "$USER" ]; then
  nano "$1"
else
  export SUDO_EDITOR="nano"
  sudoedit -u "$FILEOWNER" "$1"
fi

Mentsd el a fájlt (Ctrl+O, majd Enter, végül Ctrl+X).

Két tipp:
Bár a ~/.local/share/nemo/actions/ mappába is lehet rakni, de én egy almappát használok, hogy rendezettebb legyen a könyvtáram.
Ahol lehet, használjuk a Mimetypes megadását és ne a kiterjesztéseket sorold fel.

4. lépés: Tedd végrehajthatóvá a szkriptet

`chmod +x ~/.local/share/nemo/actions/action_scripts/nano_sudoedit_check.sh

A .nemo_action fájlra nem kell végrehajtási jog!

5. lépés: Indítsd újra a Nemo fájlkezelőt

nemo -q

Majd indítsd el újra a Nemo-t a menüből vagy parancssorból. Elvileg a Nemo leállítása és újraindítása vagy a -q kapcsoló használata önmagában is elegendő, de párszor belefutottam, hogy nem. Így mindegyiket elvégzem.

A művelet használata

Most már használhatod az új műveletet:

  1. Nyisd meg a Nemo fájlkezelőt.
  2. Navigálj a konfigokat tartalmazó mappába.
  3. Jelöld ki a szerkeszteni kívánt fájlt.
  4. Kattints jobb gombbal a kijelölt fájlokra.
  5. Válaszd a "Nano (Sudoedit)" opciót a megjelenő menüből.
  6. Add meg a jelszót.

Hibaelhárítás

Ha a művelet nem jelenik meg a menüben, ellenőrizd a következőket:

  1. Fájlkiterjesztések: Ellenőrizd, hogy a kijelölt fájl kiterjesztése szerepel-e az Extensions paraméterben.

  2. Függőségek: Ellenőrizd, hogy az összes függőség telepítve van-e.

  3. Jogosultságok: Ellenőrizd, hogy a szkript végrehajtható-e.

Csak ennyi? Igen.

Összefoglalva:

A legtöbbször kell két állomány Az egyik a Nemo sablonfájl, amiben pár adatot kell kitölteni. A másik pedig a végrehajtandó feladatot leíró szkript. A kettőnek érdemes közel egyazon nevet adni, és a megfelelő mappába berakni.

Nem sokkal összetettebb, mintha simán egy szkriptet készítenénk...

A feladat kezdő szintű, inkább a pontosságra kell figyelni.

Az interneten nagyon sok előre elkészített ilyen megoldás van, érdemes keresgélni, mert sokat lehet tanulni ezekből.

Tipp: az actions-ok mappáját tartsd tisztán, ne legyen benne semmi felesleges, nem használ, félkész és nem is működő megoldás. Ha már kész vagy az összessel, akkor mentsd le,mert simán visszamásolva egy újratelepítés után minden pontosan úgy működik, ahogy eredetileg.

Szószedet

  • Action: Művelet, amely a Nemo fájlkezelő kontextus menüjéhez adható hozzá.

  • Cinnamon: Linux Mint alapértelmezett asztali környezete.

  • Exec: A végrehajtandó parancs vagy szkript a Nemo action fájlban.

  • Extensions: Fájlkiterjesztések listája, amelyekre a művelet alkalmazható.

  • Kontextus menü: A jobb egérgombbal való kattintásra megjelenő menü.

  • Nemo: A Cinnamon asztali környezet alapértelmezett fájlkezelője.

  • Selection: Meghatározza, hogy milyen típusú kijelölésre jelenjen meg a művelet (pl. egy fájl, több fájl).

  • Token: Helyettesítő jel, amely futásidőben a kijelölt fájlokra vagy mappákra vonatkozó információkkal helyettesítődik.

Hozzászólások