Od czasu do czasu wpadam na pomysły działań, które chciałbym mieć w menu kontekstowym Nautilus. Jak je tam dodać? Czy istnieje coś takiego jak wtyczka Thunar UCA dla Nautilus?
Poniższa odpowiedź jest nieaktualna: niedawno zaktualizowana odpowiedź jest tą .
Menu kontekstowe Nautilusa można było dostosowywać za pomocą rozszerzeń Nautilus . Ostrzegamy, że ten link prowadzi do zarchiwizowanego dokumentu; Gnome devs usunął tę dokumentację i nie obsługuje już tego rodzaju dostosowań. Może jednak nadal działać.
Możesz także umieścić skrypty zwykłej powłoki w katalogu ~/.local/share/nautilus/scripts( ~/.gnome2/nautilus-scriptswe wczesnych wersjach), a pojawią się one w menu kontekstowym pliku w podmenu Skrypty .
Należy pamiętać, że jak powiedziano w askubuntu.com/questions/281062/... jeśli korzystasz z systemu Ubuntu 13.04, który korzysta z nowszej wersji Nautilus, powinieneś używać ~/.local/share/nautilus/scriptsfolderu do umieszczania skryptów. I nawet wtedy będą wyświetlane tylko skrypty kiedy klikniesz prawym przyciskiem myszy plik lub folder, a nie puste miejsce.
Logan
2
czy to nie jest przestarzałe?
@cipricus to jest. Odpowiedzi udzielono w 2011 r., Czyli 6 lat temu . 12 wydań Ubuntu wcześniej.
ulidtko
pytanie nie jest oznaczone jako specyficzne dla wydania i są bardzo aktualne odpowiedzi
@ deser - Nie widzę sensu w dostosowywaniu pytania do nieaktualnej odpowiedzi tylko dlatego, że w przeszłości ta odpowiedź była oznaczona jako ostateczna. To sprawiłoby, że zaktualizowana (i najczęściej głosowana) odpowiedź wyglądałaby tutaj nie na miejscu, kiedy najlepszym sposobem byłoby oznaczenie tej ostatniej odpowiedzi jako ostatecznej. - Innym sposobem byłoby dodanie krótkiej edycji do ostatecznej, obecnie nieaktualnej odpowiedzi, łączącej ze zaktualizowaną: co właśnie zrobiłem.
30
Aktualizacja dla Ubuntu 18.04
W dniu wydania Ubuntu 18.04 Nautilus-Actions był / nie jest już dostępny. Wydaje się również, że został zastąpiony przez nowy program o nazwie Filemanager-Actions, który inaczej wygląda identycznie.
Aby zainstalować ten program, zobacz to rozwiązanie.
Akcje Nautilus
Możemy zdefiniować własne pozycje menu kontekstowego klikając prawym przyciskiem myszy za pomocą akcji nautilus .
Uruchom narzędzie konfiguracyjne Nautilus-Actions albo z poziomu Dash, albo z terminala za pomocą
nautilus-actions-config-tool
W zakładce Akcja podaj sensowną etykietę swojej akcji, np. „Otwórz w Terminatorze” i wybierz, aby wyświetlać ją w menu wyboru lub menu kontekstowym.
Następnie otwórz kartę Polecenia , aby wprowadzić polecenia do uruchomienia
Podaj pełną ścieżkę do polecenia ( /usr/bin/command_to_run) i opcji programu.
Po wylogowaniu i ponownym uruchomieniu wyświetli się menu kontekstowe z prawym przyciskiem myszy:
Można użyć rozszerzenia python-nautilus jako alternatywy dla nautilus-actions.
Żeby zainstalować:
sudo apt-get install python-nautilus
Prosty przykład:
import osfrom gi.repository importNautilus,GObjectclassColumnExtension(GObject.GObject,Nautilus.MenuProvider):def __init__(self):passdef menu_activate_cb(self, menu, file):
os.system("write here your simple bash command & pid=$!")def get_background_items(self, window, file):
item =Nautilus.MenuItem(name='ExampleMenuProvider::Foo2',
label='Name of your item',
tip='',
icon='')
item.connect('activate', self.menu_activate_cb, file)return item,
Skopiuj ten skrypt Pythona ~/.local/share/nautilus-python/extensionsi zrestartuj nautilus. Po kliknięciu pulpitu prawym przyciskiem myszy i wybraniu elementu, zostanie wykonane proste polecenie bash :)
może być konieczne utworzenie folderów nautilus-pythoni extensionsfolderów, jeśli ich tam nie ma.
souravc
Wypróbowałem większość rozwiązań w tym temacie i okazało się, że najlepsze jest rozwiązanie Python. Chociaż nie jest idealny, głównie z powodu braku dokumentacji, pozwala na bardziej elastyczne skrypty i przenośność.
Ricardo Rodrigues,
3
Jeśli chcesz być w stanie zrobić coś w dowolnym momencie, zrób jak mówi ulidtko i użyj ~/.gnome2/nautilus-scripts.
Jeśli chcesz mieć możliwość dostosowania, gdy go widzisz, zainstaluj pakiet nautilus-Actions, a następnie przejdź do System-> Preferencje-> Konfiguracja działań Nautilus.
Przejdź do katalogu ~/.local/share/nautilus/scripts/
Umieść tam swój skrypt (napisany w języku Bash, Perl lub Python).
Oznacz skrypt jako wykonywalny za pomocą Nautilus lub z terminala za pomocą chmod +x script_name
Nautilus udostępnia skrypty środowiskowe: NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, NAUTILUS_SCRIPT_SELECTED_URIS, NAUTILUS_SCRIPT_CURRENT_URI i NAUTILUS_SCRIPT_WINDOW_GEOMETRY
Istnieją przykładowe skrypty znajdujące się w ( Help Ubuntu - Nautilus Sample Scripts ) do plików e-mail, montowania pliku ISO, ustawiania plików tylko do odczytu, edycji pliku z uprawnieniami gedit ROOT, otwierania terminala w bieżącej lokalizacji itp.
Przejrzyj skrypty i weź jeden jako szablon do szyfrowania plików, przesyłania do chmury, kompresji do kopii zapasowej lub cokolwiek innego, co musisz zrobić.
Powiedzmy, że chcemy stworzyć aplikację, że użytkownik instaluje ze skryptu lub .debpliku, z myślą o tym będę wyjaśniając, dlaczego myślę, python-nautilusjest lepszym rozwiązaniem w porównaniu z nautilus-actions i nautilus skryptów .
Jest to jedyne rozwiązanie, które oferuje interfejs GUI, a zatem ułatwia tworzenie złożonych zachowań, na przykład decydowanie, które pozycje menu mają być wyświetlane, jeśli typem wybranego pliku jest mime text/plain.
Główny problem z tym rozwiązaniem polega na tym, że nie jest łatwo (jeśli to możliwe) zaimportować wpisy na inny komputer bez Narzędzia konfiguracyjnego i importującego je użytkownika, powiedzmy, że nie byłoby możliwe wykonanie skryptu.
Jest to prostsze rozwiązanie, wybierz skrypt, umieść go w folderze i gotowe. To zdecydowanie pozwoliłoby skryptowi instalacyjnemu lub .debplikowi utworzyć nowy wpis w menu kontekstowym. Jakie są problemy? Gdzie zaczynam...
Zawsze pojawia się w podmenu Skrypty.
Nie pokazuje, jeśli nic nie zostało wybrane.
Nie pozwala ci zdecydować, czy powinieneś pokazać wpis, czy nie.
Nie zezwala na Podpowiedzi ani inne tytuły. (może jestem wybredna)
Dobra aplikacja nie używa takich skrótów, ponieważ psuje to wrażenia użytkownika.
Nie jest tak łatwe do stworzenia jak poprzednie rozwiązania, ale oferuje to, co najlepsze z obu światów. Skrypty i dostosowywanie.
To rozwiązanie umożliwia utworzenie skryptu w języku Python, który odbiera pliki wybrane w nautilusie i pozwala zdecydować, czy chcesz wyświetlić wpis, czy nie i co zrobić z tym wpisem. Pozwala także tworzyć podmenu i / lub fajne rzeczy.
Wadą jest duży brak dokumentacji, a programiści, którzy chcą tylko dodać wpis, mogą stracić kilka godzin na stworzenie działającego prototypu (w moich badaniach znalazłem rozwiązanie oparte na C, które było znacznie bardziej skomplikowane niż to).
Zwykle używam Visual Studio Code, podczas gdy w Windows oferuje pozycję menu kontekstowego Open with Visual Studio Code, brakuje mu tej samej funkcjonalności w Linuksie, z rozwiązaniem Python łatwo byłoby rozwiązać problem. Myślę, że aplikacje w Linuksie mogą skorzystać z integracji nautilusa.
Mam nadzieję, że to wyjaśnienie pomogło ci zdecydować, co wybrać.
Odpowiedzi:
Poniższa odpowiedź jest nieaktualna: niedawno zaktualizowana odpowiedź jest tą .
Menu kontekstowe Nautilusa można było dostosowywać za pomocą rozszerzeń Nautilus . Ostrzegamy, że ten link prowadzi do zarchiwizowanego dokumentu; Gnome devs usunął tę dokumentację i nie obsługuje już tego rodzaju dostosowań. Może jednak nadal działać.
Możesz także umieścić skrypty zwykłej powłoki w katalogu
~/.local/share/nautilus/scripts
(~/.gnome2/nautilus-scripts
we wczesnych wersjach), a pojawią się one w menu kontekstowym pliku w podmenu Skrypty .źródło
~/.local/share/nautilus/scripts
folderu do umieszczania skryptów. I nawet wtedy będą wyświetlane tylko skrypty kiedy klikniesz prawym przyciskiem myszy plik lub folder, a nie puste miejsce.Aktualizacja dla Ubuntu 18.04
W dniu wydania Ubuntu 18.04 Nautilus-Actions był / nie jest już dostępny. Wydaje się również, że został zastąpiony przez nowy program o nazwie Filemanager-Actions, który inaczej wygląda identycznie.
Aby zainstalować ten program, zobacz to rozwiązanie.
Akcje Nautilus
Możemy zdefiniować własne pozycje menu kontekstowego klikając prawym przyciskiem myszy za pomocą akcji nautilus .
Uruchom narzędzie konfiguracyjne Nautilus-Actions albo z poziomu Dash, albo z terminala za pomocą
W zakładce Akcja podaj sensowną etykietę swojej akcji, np. „Otwórz w Terminatorze” i wybierz, aby wyświetlać ją w menu wyboru lub menu kontekstowym.
Następnie otwórz kartę Polecenia , aby wprowadzić polecenia do uruchomienia
Podaj pełną ścieżkę do polecenia (
/usr/bin/command_to_run
) i opcji programu.Po wylogowaniu i ponownym uruchomieniu wyświetli się menu kontekstowe z prawym przyciskiem myszy:
źródło
nautilus-actions-config-tool
i Dodaj „Utwórz program uruchamiający” do menu kontekstowego Nautilus (bezgnome-desktop-item-edit
)Można użyć rozszerzenia python-nautilus jako alternatywy dla
nautilus-actions
.Żeby zainstalować:
Prosty przykład:
Skopiuj ten skrypt Pythona
~/.local/share/nautilus-python/extensions
i zrestartuj nautilus. Po kliknięciu pulpitu prawym przyciskiem myszy i wybraniu elementu, zostanie wykonane proste polecenie bash :)źródło
nautilus-python
iextensions
folderów, jeśli ich tam nie ma.Jeśli chcesz być w stanie zrobić coś w dowolnym momencie, zrób jak mówi ulidtko i użyj
~/.gnome2/nautilus-scripts
.Jeśli chcesz mieć możliwość dostosowania, gdy go widzisz, zainstaluj pakiet nautilus-Actions, a następnie przejdź do System-> Preferencje-> Konfiguracja działań Nautilus.
źródło
Era 29 listopada 2016 r. Ubuntu 14.04, 16.04 i 16.10 plus wcześniejsze wersje.
Zobacz instrukcje Nautilusa dotyczące tworzenia własnego skryptu tutaj ( Pomoc Ubuntu - Skrypty Nautilus jak to zrobić ). Zasadniczo ty:
~/.local/share/nautilus/scripts/
chmod +x script_name
Istnieją przykładowe skrypty znajdujące się w ( Help Ubuntu - Nautilus Sample Scripts ) do plików e-mail, montowania pliku ISO, ustawiania plików tylko do odczytu, edycji pliku z uprawnieniami gedit ROOT, otwierania terminala w bieżącej lokalizacji itp.
Przejrzyj skrypty i weź jeden jako szablon do szyfrowania plików, przesyłania do chmury, kompresji do kopii zapasowej lub cokolwiek innego, co musisz zrobić.
źródło
TL; DR
Najlepszym rozwiązaniem dla twórców aplikacji jest użycie python-nautilus .
Utwórz skrypt w języku Python ( poniższe przykłady i złą dokumentację ) i skopiuj go do odpowiedniego folderu:
Szczegółowe wyjaśnienie
Powiedzmy, że chcemy stworzyć aplikację, że użytkownik instaluje ze skryptu lub
.deb
pliku, z myślą o tym będę wyjaśniając, dlaczego myślę,python-nautilus
jest lepszym rozwiązaniem w porównaniu z nautilus-actions i nautilus skryptów .Akcje Nautilus
Jest to jedyne rozwiązanie, które oferuje interfejs GUI, a zatem ułatwia tworzenie złożonych zachowań, na przykład decydowanie, które pozycje menu mają być wyświetlane, jeśli typem wybranego pliku jest mime
text/plain
.Główny problem z tym rozwiązaniem polega na tym, że nie jest łatwo (jeśli to możliwe) zaimportować wpisy na inny komputer bez Narzędzia konfiguracyjnego i importującego je użytkownika, powiedzmy, że nie byłoby możliwe wykonanie skryptu.
Skrypty Nautilus
Jest to prostsze rozwiązanie, wybierz skrypt, umieść go w folderze i gotowe. To zdecydowanie pozwoliłoby skryptowi instalacyjnemu lub
.deb
plikowi utworzyć nowy wpis w menu kontekstowym. Jakie są problemy? Gdzie zaczynam...Dobra aplikacja nie używa takich skrótów, ponieważ psuje to wrażenia użytkownika.
python-nautilus
Nie jest tak łatwe do stworzenia jak poprzednie rozwiązania, ale oferuje to, co najlepsze z obu światów. Skrypty i dostosowywanie.
To rozwiązanie umożliwia utworzenie skryptu w języku Python, który odbiera pliki wybrane w nautilusie i pozwala zdecydować, czy chcesz wyświetlić wpis, czy nie i co zrobić z tym wpisem. Pozwala także tworzyć podmenu i / lub fajne rzeczy.
Wadą jest duży brak dokumentacji, a programiści, którzy chcą tylko dodać wpis, mogą stracić kilka godzin na stworzenie działającego prototypu (w moich badaniach znalazłem rozwiązanie oparte na C, które było znacznie bardziej skomplikowane niż to).
Zwykle używam Visual Studio Code, podczas gdy w Windows oferuje pozycję menu kontekstowego
Open with Visual Studio Code
, brakuje mu tej samej funkcjonalności w Linuksie, z rozwiązaniem Python łatwo byłoby rozwiązać problem. Myślę, że aplikacje w Linuksie mogą skorzystać z integracji nautilusa.Mam nadzieję, że to wyjaśnienie pomogło ci zdecydować, co wybrać.
źródło