Bagaimana cara menyesuaikan menu konteks di Nautilus?

29

Dari waktu ke waktu saya datang dengan ide tindakan yang ingin saya miliki di menu konteks Nautilus. Bagaimana cara menambahkannya di sana? Apakah ada sesuatu seperti plugin Thunar UCA untuk Nautilus?

Ivan
sumber
untuk "Buat dokumen baru" pada klik kanan, lihat askubuntu.com/questions/777711/…
HMagdy

Jawaban:

25

Jawaban di bawah ini sudah usang: jawaban yang baru-baru ini diperbarui adalah yang ini .


Menu konteks Nautilus digunakan untuk disesuaikan oleh ekstensi Nautilus . Berhati-hatilah bahwa tautan ini mengarah ke dokumen yang diarsipkan; Gnome devs menghapus dokumentasi itu dan tidak lagi mendukung penyesuaian seperti itu. Mungkin masih berfungsi.

Anda juga dapat menempatkan skrip shell biasa di bawah direktori ~/.local/share/nautilus/scripts( ~/.gnome2/nautilus-scriptsdalam rilis awal), dan skrip tersebut akan muncul di menu konteks file di bawah submenu Skrip .

ulidtko
sumber
3
Harap dicatat bahwa seperti yang dikatakan di askubuntu.com/questions/281062/... jika Anda berada di ubuntu 13.04 yang menggunakan versi Nautilus yang lebih baru, Anda seharusnya menggunakan ~/.local/share/nautilus/scriptsfolder untuk memasukkan skrip Anda. Bahkan itupun hanya akan muncul skrip ketika Anda mengklik kanan pada file atau folder dan bukan ruang kosong.
Logan
2
bukankah ini sudah usang?
@ sipricus itu. Dijawab pada 2011, yaitu 6 tahun yang lalu . 12 rilis Ubuntu sebelumnya.
ulidtko
pertanyaan tidak ditandai sebagai edisi khusus dan ada jawaban yang sangat baru
essertessert - Saya tidak melihat ada gunanya menyesuaikan pertanyaan dengan jawaban yang ketinggalan zaman hanya karena jawaban itu ditandai sebagai definitif di masa lalu. Itu akan membuat jawaban yang diperbarui (& paling banyak dipilih) terlihat tidak pada tempatnya di sini, ketika cara untuk pergi adalah dengan hanya menandai jawaban yang terakhir sebagai definitif. - Cara lain untuk pergi adalah dengan menambahkan edit singkat ke jawaban definitif yang sekarang usang menghubungkan ke yang diperbarui: yang baru saja saya lakukan.
30

Pembaruan untuk Ubuntu 18.04

Pada tanggal Ubuntu 18.04 dirilis Nautilus-Actions sudah / tidak lagi tersedia. Tampaknya juga telah digantikan oleh program baru, yang disebut Filemanager-Actions, yang sebaliknya terlihat identik.


Untuk menginstal program ini, lihat solusi ini .


Tindakan Nautilus

Kami dapat menentukan item menu konteks klik kanan kami sendiri dengan tindakan nautilus Instal tindakan nautilus .

  • Jalankan Alat Konfigurasi Nautilus-Actions baik dari Dash, atau dari terminal dengan

    nautilus-actions-config-tool
    

masukkan deskripsi gambar di sini

  • Pada tab Tindakan beri label aksi Anda label yang masuk akal, misalnya "Buka di Terminator" dan pilih untuk menampilkan ini dalam pilihan atau menu konteks.

  • Selanjutnya buka tab Command untuk memasukkan perintah yang akan dijalankan

masukkan deskripsi gambar di sini

  • Berikan path lengkap ke perintah Anda ( /usr/bin/command_to_run) dan opsi program.

  • Setelah keluar dan masuk lagi menu konteks klik kanan di bawah ini akan ditampilkan:

masukkan deskripsi gambar di sini


Takkat
sumber
1
Apakah ini masih terkini?
RolandiXor
2
Tindakan Nautilus tampil seperti yang diharapkan pada 12,04
Takkat
11

Satu dapat Menggunakan ekstensi python-nautilus sebagai alternatif nautilus-actions.

Untuk memasang:

sudo apt-get install python-nautilus

Contoh sederhana:

import os

from gi.repository import Nautilus, GObject

class ColumnExtension(GObject.GObject, Nautilus.MenuProvider):
    def __init__(self):
        pass
    def 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,

Salin skrip python ini di bawah ~/.local/share/nautilus-python/extensionsdan restart nautilus. Ketika Anda mengklik kanan pada desktop dan memilih item Anda, perintah bash sederhana Anda akan dieksekusi :)

mnrl
sumber
Anda mungkin perlu membuat nautilus-pythondan extensionsfolder jika tidak ada.
souravc
Saya mencoba sebagian besar solusi dalam topik ini dan menemukan bahwa solusi python adalah yang terbaik. Meskipun tidak sempurna, terutama karena kurangnya dokumentasi, ini memungkinkan untuk scripting dan portabilitas yang lebih fleksibel.
Ricardo Rodrigues
3

Jika Anda ingin dapat melakukan sesuatu kapan saja, lakukan seperti kata ulidtko dan gunakan ~/.gnome2/nautilus-scripts.

Jika Anda ingin dapat menyesuaikan ketika melihatnya, instal paket tindakan nautilus, kemudian pergi ke System-> Preferences-> Konfigurasi Tindakan Nautilus.

zpletan
sumber
3

29 November 2016 era Ubuntu 14.04, 16.04 dan 16.10 plus versi sebelumnya.

Lihat instruksi Nautilus untuk membuat skrip Anda sendiri di sini ( Bantuan Ubuntu - Nautilus Scripts How to ). Pada dasarnya Anda:

  • Arahkan ke direktori ~/.local/share/nautilus/scripts/
  • Tempatkan skrip Anda (ditulis dalam Bash, Perl atau Python) di sana.
  • Tandai skrip sebagai executable menggunakan Nautilus atau dari terminal dengan chmod +x script_name
  • Nautilus membuat variabel lingkungan tersedia untuk skrip Anda: NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, NAUTILUS_SCRIPT_SELECTED_URIS, NAUTILUS_SCRIPT_CURRENT_URI, dan NAUTILUS_SCRIPT_WINDOW_GEOMETRY

Ada skrip sampel yang terletak di ( Bantuan Ubuntu - Skrip Sampel Nautilus ) untuk mengirim email file, memasang file ISO, mengatur file untuk dibaca saja, mengedit file dengan hak istimewa ROOT gedit, membuka terminal di lokasi saat ini, dll.

Lihatlah skrip dan ambil satu sebagai templat untuk mengenkripsi file, mengunggah ke cloud, mengompres ke cadangan atau apa pun yang perlu Anda lakukan.

WinEunuuchs2Unix
sumber
2

TL; DR

Solusi terbaik untuk pengembang aplikasi adalah dengan menggunakan python-nautilus .

Buat skrip python Anda ( contoh berikut dan dokumentasi buruk ) dan salin ke folder yang benar:

mkdir -p ~/.local/share/nautilus-python/extensions && cp script.py ~/.local/share/nautilus-python/extensions

Penjelasan detail

Katakanlah Anda ingin membuat sebuah aplikasi yang pengguna menginstal dengan script atau .debberkas, dengan itu dalam pikiran saya akan menjelaskan mengapa saya pikir python-nautilusadalah solusi yang lebih baik dibandingkan dengan nautilus-tindakan dan script nautilus .

Tindakan Nautilus

Ini adalah satu-satunya solusi untuk menawarkan GUI dan karenanya membuatnya mudah untuk membuat perilaku kompleks, misalnya memutuskan entri menu apa yang akan ditampilkan jika tipe mime file yang dipilih adalah text/plain.

Masalah utama dengan solusi ini adalah tidak mudah (bahkan jika mungkin) untuk mengimpor entri ke komputer lain tanpa Alat Konfigurasi dan pengguna yang mengimpornya, anggap saja tidak mungkin dilakukan dengan skrip.

Script Nautilus

Ini adalah solusi yang lebih lurus ke depan, mengambil skrip, letakkan di folder dan selesai. Ini pasti akan memungkinkan skrip instalasi atau .debfile untuk membuat entri baru di menu konteks. Apa masalahnya? Di mana saya memulai...

  • Itu selalu muncul di bawah sub-menu Scripts.
  • Tidak muncul jika Anda tidak memilih apa pun.
  • Itu tidak memungkinkan Anda untuk memutuskan apakah Anda harus menunjukkan entri atau tidak.
  • Tidak mengizinkan Tooltips atau Judul yang berbeda. (mungkin saya pilih-pilih)

Aplikasi yang bagus tidak menggunakan pintasan seperti ini, karena itu merusak pengalaman pengguna.

python-nautilus

Tidak semudah membuat seperti solusi sebelumnya, tetapi menawarkan yang terbaik dari kedua dunia. Scripting dan kustomisasi.

Solusi ini memungkinkan Anda untuk membuat skrip python yang menerima file yang dipilih di nautilus dan mari Anda memutuskan apakah Anda ingin menampilkan entri atau tidak dan apa yang harus dilakukan dengan entri itu. Ini juga memungkinkan Anda membuat sub-menu dan atau hal-hal keren.

Kekurangannya adalah kurangnya dokumentasi dan pengembang yang hanya ingin menambahkan entri mungkin menemukan diri mereka kehilangan beberapa jam untuk membuat prototipe yang berfungsi (Dalam penelitian saya, saya menemukan solusi berdasarkan C yang jauh lebih rumit dari ini).

Saya biasanya menggunakan Visual Studio Code, sementara pada Windows ia menawarkan entri menu konteks Open with Visual Studio Code, itu tidak memiliki fungsi yang sama di Linux, dengan solusi Python akan mudah untuk menyelesaikan masalah. Saya pikir semoga aplikasi di Linux dapat mengambil manfaat dari integrasi nautilus.

Semoga penjelasan ini membantu Anda memutuskan apa yang harus dipilih.

Ricardo Rodrigues
sumber
Inilah tepatnya alasan saya ingin menambahkan menu konteks juga. Bisakah Anda memposting solusi python-nautilus "Buka dengan VS Kode" Anda? Terima kasih.
Sharpiro
Cra0zy meningkatkan versi saya menjadi solusi yang pas: gist.github.com/cra0zy/f8ec780e16201f81ccd5234856546414
Ricardo Rodrigues