Làm cách nào để tùy chỉnh menu ngữ cảnh trong Nautilus?


29

Thỉnh thoảng tôi nảy ra ý tưởng về các hành động tôi muốn có sẵn trong menu ngữ cảnh của Nautilus. Làm thế nào để tôi thêm chúng ở đó? Có cái gì đó giống như plugin Thunar UCA cho Nautilus không?


đối với (Tạo tài liệu mới) khi nhấp chuột phải, hãy tham khảo Askubfox.com/questions/777711/NH
HMagdy

Câu trả lời:


25

Câu trả lời dưới đây đã lỗi thời: một câu trả lời được cập nhật gần đây là câu trả lời này .


Các menu ngữ cảnh của Nautilus từng được tùy chỉnh bởi các phần mở rộng Nautilus . Được cảnh báo rằng liên kết này dẫn đến tài liệu lưu trữ; Các nhà phát triển Gnome đã xóa tài liệu đó và không còn hỗ trợ loại tùy chỉnh đó nữa. Nó vẫn có thể làm việc mặc dù.

Bạn cũng có thể đặt kịch bản shell đơn giản dưới ~/.local/share/nautilus/scripts( ~/.gnome2/nautilus-scriptsthư mục trong phiên bản đầu), và họ sẽ xuất hiện trong menu ngữ cảnh tập tin dưới Scripts menu con.


3
Xin lưu ý rằng như đã nói trong Askubfox.com/questions/281062/, nếu bạn đang sử dụng Ubuntu 13.04 sử dụng phiên bản mới hơn của Nautilus, bạn phải sử dụng ~/.local/share/nautilus/scriptsthư mục để đặt tập lệnh của mình vào. Và thậm chí sau đó nó sẽ chỉ hiển thị tập lệnh khi bạn nhấp chuột phải vào một tập tin hoặc thư mục và không có không gian trống.
Logan

2
Điều này không phải là lỗi thời?

@cipricus đó là. Đã trả lời vào năm 2011, đó là 6 năm trước . 12 Ubuntu phát hành trước đó.
ulidtko

câu hỏi không được đánh dấu là phiên bản cụ thể và có những câu trả lời rất gần đây

@datcher - Tôi thấy không có điểm nào trong việc điều chỉnh câu hỏi thành câu trả lời lỗi thời chỉ vì câu trả lời đó được đánh dấu là dứt khoát trong quá khứ. Điều đó sẽ làm cho câu trả lời được cập nhật (& được bình chọn nhiều nhất) không phù hợp ở đây, khi cách đi sẽ chỉ đơn giản là đánh dấu câu trả lời sau là dứt khoát. - Một cách khác để đi là thêm một chỉnh sửa ngắn vào câu trả lời dứt khoát hiện đã lỗi thời liên kết đến bản cập nhật: điều tôi vừa làm.

30

Cập nhật cho Ubuntu 18.04

Vào ngày Ubuntu 18.04 được phát hành, Nautilus-Action đã / không còn khả dụng. Nó dường như cũng đã được thay thế bởi một chương trình mới, được gọi là Filemanager-Action, nếu không thì trông giống hệt nhau.


Để cài đặt chương trình này, xem giải pháp này .


Hành động Nautilus

Chúng tôi có thể xác định các mục menu ngữ cảnh nhấp chuột phải của riêng mình bằng các hành động nautilus Cài đặt nautilus-hành động .

  • Chạy Công cụ cấu hình hành động Nautilus từ Dash hoặc từ thiết bị đầu cuối với

    nautilus-actions-config-tool
    

nhập mô tả hình ảnh ở đây

  • Trong tab Hành động, cung cấp cho hành động của bạn một nhãn hợp lý, ví dụ: "Mở trong Terminator" và chọn hiển thị mục này trong phần chọn hoặc menu ngữ cảnh.

  • Tiếp theo mở tab Lệnh để nhập các lệnh để chạy

nhập mô tả hình ảnh ở đây

  • Đưa ra đường dẫn đầy đủ đến các /usr/bin/command_to_runtùy chọn lệnh ( ) và chương trình của bạn.

  • Sau khi đăng xuất và nhập lại, menu ngữ cảnh nhấp chuột phải bên dưới sẽ được hiển thị:

nhập mô tả hình ảnh ở đây



1
Điều này vẫn còn cập nhật?
RolandiXor

2
Các hành động của Nautilus thực hiện như mong đợi trong 12.04
Takkat


11

Người ta có thể sử dụng phần mở rộng python-nautilus để thay thế nautilus-actions.

Để cài đặt:

sudo apt-get install python-nautilus

Một ví dụ đơn giản:

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,

Sao chép tập lệnh python này bên dưới ~/.local/share/nautilus-python/extensionsvà khởi động lại nautilus. Khi bạn nhấp chuột phải vào màn hình nền và chọn mục của bạn, lệnh bash đơn giản của bạn sẽ được thực thi :)


bạn có thể cần tạo nautilus-pythonextensionsthư mục nếu chúng không có ở đó.
souravc

Tôi đã thử hầu hết các giải pháp trong chủ đề này và thấy rằng giải pháp python là giải pháp tốt nhất. Mặc dù không hoàn hảo, chủ yếu là do thiếu tài liệu, nó cho phép kịch bản và tính di động linh hoạt hơn.
Ricardo

3

Nếu bạn muốn có thể làm một cái gì đó bất cứ lúc nào, hãy làm như ulidtko nói và sử dụng ~/.gnome2/nautilus-scripts.

Nếu bạn muốn có thể tùy chỉnh khi bạn nhìn thấy nó, hãy cài đặt gói hành động nautilus, sau đó đi đến Hệ thống-> Tùy chọn-> Cấu hình hành động Nautilus.


3

Ngày 29 tháng 11 năm 2016 kỷ nguyên Ubuntu 14.04, 16.04 và 16.10 cộng với các phiên bản trước đó.

Xem hướng dẫn của Nautilus để tạo tập lệnh của riêng bạn tại đây ( Trợ giúp Ubuntu - Tập lệnh Nautilus Cách thực hiện ). Về cơ bản bạn:

  • Điều hướng đến thư mục ~/.local/share/nautilus/scripts/
  • Đặt tập lệnh của bạn (được viết bằng Bash, Perl hoặc Python) ở đó.
  • Đánh dấu tập lệnh là có thể thực thi được bằng Nautilus hoặc từ thiết bị đầu cuối bằng chmod +x script_name
  • Nautilus cung cấp các biến môi trường có sẵn cho tập lệnh của bạn: NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, NAUTILUS_SCRIPT_SELECTED_URIS, NAUTILUS_SCRIPT_CURRENT_URI và NAUTILUS_SCRIP_

Có các tập lệnh mẫu được đặt tại ( Trợ giúp Ubuntu - Tập lệnh mẫu Nautilus ) cho các tệp email, gắn tệp ISO, cài đặt tệp để chỉ đọc, chỉnh sửa tệp với các đặc quyền ROOT gedit, mở thiết bị đầu cuối tại vị trí hiện tại, v.v.

Xem qua các tập lệnh và lấy một tập tin làm mẫu để mã hóa các tập tin, tải lên đám mây, nén để sao lưu hoặc bất cứ điều gì bạn cần làm.


2

TL; DR

Giải pháp tốt nhất cho các nhà phát triển ứng dụng là sử dụng python-nautilus .

Tạo tập lệnh python của bạn ( ví dụ sautài liệu xấu ) và sao chép nó vào thư mục chính xác:

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

Giải thích chi tiết

Hãy nói rằng bạn muốn tạo một ứng dụng mà người dùng cài đặt với một kịch bản hay một .debtập tin, với ý nghĩ đó tôi sẽ giải thích lý do tại sao tôi nghĩ rằng python-nautiluslà một giải pháp tốt hơn so với nautilus-hành độngkịch bản nautilus .

Hành động Nautilus

Đây là giải pháp duy nhất để cung cấp GUI và do đó giúp dễ dàng tạo hành vi phức tạp, ví dụ như quyết định mục nào sẽ hiển thị nếu loại mime của tệp được chọn là text/plain.

Vấn đề chính với giải pháp này là không dễ dàng (thậm chí có thể) nhập các mục vào máy tính khác mà không có Công cụ cấu hình và người dùng nhập nó, hãy nói rằng sẽ không thể thực hiện được với tập lệnh.

Tập lệnh Nautilus

Đây là giải pháp đơn giản hơn, chọn một tập lệnh, đặt nó vào một thư mục và thực hiện. Điều này chắc chắn sẽ cho phép một tập lệnh cài đặt hoặc một .debtập tin để tạo một mục mới trong menu ngữ cảnh. Vấn đề là gì? Tôi bắt đầu từ đâu...

  • Nó luôn xuất hiện dưới menu phụ ScScript.
  • Nó không hiển thị nếu bạn không có gì được chọn.
  • Nó không cho phép bạn quyết định xem bạn có nên hiển thị mục nhập hay không.
  • Không cho phép Tooltips hoặc các tiêu đề khác nhau. (có lẽ tôi đang kén chọn)

Một ứng dụng tốt không sử dụng các phím tắt như thế này, vì nó làm hỏng trải nghiệm người dùng.

trăn-nautilus

Không dễ dàng để tạo ra như các giải pháp trước đây, nhưng cung cấp tốt nhất của cả hai thế giới. Viết kịch bản và tùy biến.

Giải pháp này cho phép bạn tạo tập lệnh python nhận các tệp được chọn trong nautilus và để bạn quyết định xem bạn có muốn hiển thị mục nhập hay không và phải làm gì với mục đó. Nó cũng cho phép bạn tạo các menu phụ và hoặc những thứ hay ho.

Hạn chế là thiếu tài liệu và nhà phát triển chỉ muốn thêm một mục có thể thấy mất vài giờ để tạo một nguyên mẫu hoạt động (Trong nghiên cứu của tôi, tôi đã tìm thấy một giải pháp dựa trên C phức tạp hơn thế này).

Tôi thường sử dụng Visual Studio Code, trong khi trên Windows, nó cung cấp một mục trình đơn ngữ cảnh Open with Visual Studio Code, nó thiếu chức năng tương tự trên Linux, với giải pháp Python sẽ dễ dàng giải quyết vấn đề. Tôi nghĩ các ứng dụng trong Linux có thể được hưởng lợi từ việc tích hợp nautilus.

Hy vọng lời giải thích này đã giúp bạn quyết định chọn gì.


Đây chính xác là lý do tôi muốn thêm một menu ngữ cảnh. Có lẽ bạn có thể đăng giải pháp python-nautilus "Mở bằng mã VS" của bạn? Cảm ơn.
Sharpiro

Cra0zy đã cải tiến phiên bản của tôi thành một giải pháp phù hợp: gist.github.com/cra0zy/f8ec780e16201f81ccd5234856546414
Ricardo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.