Làm cách nào để đặt cài đặt mở xdg mới?


Câu trả lời:


17

xdg-open về cơ bản chỉ để xem bạn có môi trường máy tính để bàn nào và sau đó chạy gnome-open, gvfs-open, xfce-open, v.v. Xem bên dưới để biết hướng dẫn cụ thể về môi trường máy tính để bàn ...

Gnome

Gnome sử dụng chương trình gnome-open sử dụng gconf để lưu trữ mọi thứ. Ví dụ: trên máy của tôi có Ubuntu 10.10 đang chạy gnome-open irc: // blah sẽ mở xchat vì xchat bao gồm một bản vá cài đặt gconf để thêm trình xử lý irc: //.

g-trình soạn thảo hiển thị irc với cấu hình xchat

Điều này cho thấy gnome làm điều này như thế nào, với cài đặt gconf trong /desktop/gnome/url-handlers/. Xem xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemaslàm ví dụ.

KDE

Đối với KDE, bạn nên xem các tệp .protatio trong / usr / share / kde4 / services /, tạo một giao thức mới cho giao thức mới của bạn và đặt nó vào ~ / .kde / share / kde4 / services /, nếu nó siêu hữu ích xem xét thêm nó vào gói như là một sửa chữa cho người dùng khác.

KDE đang sử dụng kde-open hoặc kfmclient tùy thuộc vào những gì có sẵn và phiên bản KDE nào bạn có.

XFCE

XFCE sử dụng một chương trình gọi là exo-open, chương trình này không có cách nào để định cấu hình hoặc thêm trình xử lý uri. Nhìn qua mã nguồn cho thấy đang sử dụng các tệp trên máy tính để chỉ định ba loại chương trình. TerminalEmulator, WebBrowser và EmailClient.

Với XFCE4 (và có thể cả những người khác), có thể định cấu hình xdg-open để xác định trình xử lý giao thức tùy chỉnh. Trong một số bạn phải tạo / chỉnh sửa các tệp sau:

~ / .local / share / ứng dụng / Protocolhandler.desktop ~ / .local / share / application / mim Ứng dụng.list

Một ví dụ thêm trình xử lý cho giao thức ed2k được cung cấp tại stackexchange.com 2 .


Bạn có thể đề cập đến cách làm điều đó cho tất cả các DE chính thức?
Oxwivi

Không chính xác liên quan đến câu hỏi, nhưng bạn có thể trích dẫn đầy đủ thư mục ở cuối màn hình không? Cảm ơn bạn.
Oxwivi

4
xdg-open về cơ bản chỉ để xem bạn có môi trường máy tính để bàn nào và sau đó chạy gnome-open, gvfs-open, xfce-open, v.v ... --- Tôi không nghĩ vậy. Đầu tiên, trang này không nói điều đó và thứ hai, xdg-open hoạt động hoàn hảo mà không cần môi trường máy tính để bàn. Ví dụ tôi sử dụng nó với trình quản lý cửa sổ i3.
Alois Mahdal

Có cách nào chung để tạo liên kết url / ứng dụng mới trong khi cài đặt ứng dụng không?
jayarjo

14

Tôi sẽ mô tả điều này với magnet:loại URI và Truyền (tức là trường hợp của bittorent), nhưng phương thức tương tự có thể được áp dụng cho bất kỳ lược đồ hoặc loại tệp nào.

Ngoài ra, tôi đã kiểm tra điều này với Debian Jessie và tôi thực sự không có máy Ubuntu, nhưng tôi tin rằng nó sẽ hoạt động như nhau (ít nhất là đối với xdg-open , lưu ý rằng các trình quản lý tệp có thể chọn sử dụng logic khác nhau).

  1. Tìm ra chuỗi loại MIME. Đối với các loại MIME tệp, bạn có thể tìm thấy nó bằng lệnh tệp :

    $ file -i Broken_Blossoms.webm 
    Broken_Blossoms.webm: video/webm; charset=binary
    $
    

    Đối với tệp trên, loại MIME là video/webm.

    Đối với các trình xử lý URI, loại là x-scheme-handler/<scheme>, <scheme>một phần của URI trước dấu hai chấm, ví dụ "http", "mailto" "irc" hoặc "nam châm". Sau đây là ví dụ về các loại MIME hợp lệ:

    x-scheme-handler/http
    x-scheme-handler/irc
    x-scheme-handler/magnet
    x-scheme-handler/mailto
    
  2. Tìm ra tên của tập tin ứng dụng .desktop.

    Thường thì nó không giống với tên "chính thức" mà là phiên bản viết thường của nó hoặc một tên hoàn toàn khác. Các tệp .desktop đã cài đặt nằm dưới / usr / share / application. Vì chúng là các tệp văn bản bình thường và chứa tên "chính thức", lệnh sau có thể giúp bạn:

    $ grep "Transmission" -l -r /usr/share/applications
    /usr/share/applications/transmission-gtk.desktop
    $
    

    Lệnh này có nghĩa là "liệt kê các tệp trong thư mục này có chứa từ 'Transmission'". Một số ứng dụng có thể chỉ được cài đặt cho người dùng, trong trường hợp đó, đường dẫn sẽ là ~/.local/share/applications.

    Trong trường hợp bạn có ứng dụng "lạ" hoàn toàn không có tệp, bạn luôn có thể tạo một ứng dụng (và có thể gửi cho nhà phát triển ứng dụng). Cách dễ dàng là sao chép một trường hiện có, viết lại các trường bạn hiểu và xóa những trường bạn không. Tham khảo thông số kỹ thuật để biết chi tiết.

  3. Thực hiện chuyển nhượng bằng lệnh xdg-mime :

    $ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet
    $
    

    Lưu ý rằng bất kể tệp thực sự ở đâu (/ usr / share / application, ~ / .local / share / application ...), bạn luôn chỉ sử dụng tên , không phải đường dẫn đầy đủ.

    Thông thường lệnh sẽ không xuất ra bất cứ thứ gì - không sao cả. Nếu bạn muốn xác minh những gì bạn vừa làm hoặc xem những gì hiện được gán cho bất kỳ loại MIME nào mà không cần mở nó:

    $ xdg-mime query default x-scheme-handler/magnet
    transmission-gtk.desktop
    $
    

Lưu ý 1: Nếu bạn muốn kiểm tra các loại MIME khác, bạn có thể xem /etc/mime.types. Nó không chứa tất cả các loại trên thế giới; ví dụ: các trình xử lý URI, nhưng nó có thể được sử dụng cho hình thức "tích cực" để xử lý các hiệp hội. Ví dụ:

grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop

sẽ liên kết tất cả các định dạng video đã biết với VLC.

Lưu ý 2: Các tệp .desktop thường chứa danh sách các loại MIME mà chúng tuyên bố có thể xử lý bằng cách sử dụng MimeTypetrường. Trang man xdg-mime nói rằng tệp .desktop phải yêu cầu loại MIME trước khi lệnh được đề cập ở trên sẽ hoạt động, nhưng đối với tôi nó dường như hoạt động ngay cả khi trường bị thiếu. (Ý tôi là, hiệp hội sẽ được áp dụng và ứng dụng sẽ khởi chạy - nếu nó thực sự có thể xử lý loại đó là một câu hỏi khác). Tôi không chắc chắn nhược điểm là gì (có thể trong tương lai xdg-mime sẽ hạn chế hơn).


wiki.archlinux.org/index.php/xdg-open cung cấp ít nhiều giống nhau. vẫn còn tốt đó.
shirish

Câu trả lời này là cách tốt nhất. Mẹo: 1) xdg-mime query filetype FILElà cách XDG để tìm các loại mime. 2) Bạn cũng có thể tự chỉnh sửa mặc định để giữ mọi thứ ngăn nắp hơn và sao lưu chúng sau này: .config/mimeapps.listlà tệp.
Ciro Santilli 心 心

khôi phục 2 bản chỉnh sửa: @frank, quan tâm giải thích cách xdg-mime "hoạt động tốt hơn"? Tệp IMO là công cụ tự động cho các loại MIME, xdg-mime query filetype xyz.wbemOTOH cung cấp ít thông tin hơn và là cách để nhập nhiều hơn.
Alois Mahdal

1
Giải thích tuyệt vời và mẹo sử dụng tên duy nhất của tệp máy tính để bàn là giải pháp tôi đang tìm kiếm cảm ơn!
Andrea Richiardi

1
lời khuyên này cuối cùng đã giúp tôi giải quyết việc không thể đăng nhập bằng ứng dụng máy tính để bàn chậm chạp trên linux. chùng chuyển hướng đến một trình duyệt, nhưng sau đó trình duyệt sử dụng lược đồ URI để chuyển hướng trở lại chậm chạp. lời khuyên của bạn đã giúp tôi thấy rằng ánh xạ URI xdg-mime chùng đã biến mất. rất vui vì tôi đã tìm thấy thứ này sau một giờ tìm kiếm! cảm ơn bạn!
hại

2

Tôi muốn liên postmankết các liên kết với ứng dụng Postman được cài đặt thủ công của tôi (không phải tiện ích mở rộng chrome) để tôi có thể mở tài liệu người đưa thư từ trình duyệt như thế này:

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

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

Liên kết tôi muốn liên kết trông như thế này:

postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...

Để thực hiện hiệp hội tôi đã làm các bước sau:

  1. Cài đặt ứng dụng theo cách thủ công (tải xuống và giải nén tar.gz) trong /home/andrzej.rehmann/software/postman/
  2. Tạo một tập tin máy tính để bàn trong /usr/share/applications/Postman.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Postman
Icon=/home/andrzej.rehmann/software/postman/app/resources/app/assets/icon.png
Exec="/home/andrzej.rehmann/software/postman/Postman" %u
Comment=Develop with pleasure!
Categories=Development;
Terminal=false
StartupWMClass=Postman
  1. Liên postmankết liên kết xdg với ứng dụng bằng cách chạy:

xdg-mime default Postman.desktop x-scheme-handler/postman


Tôi đã giải thích cấu hình này nếu có ai quan tâm: https://github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/t task / postman_installer.yml

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.