Tôi muốn sử dụng xdg-open
để mở irc://
các liên kết, làm thế nào tôi có thể tạo tham số cần thiết?
Tôi muốn sử dụng xdg-open
để mở irc://
các liên kết, làm thế nào tôi có thể tạo tham số cần thiết?
Câu trả lời:
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 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: //.
Đ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.schemas
làm ví dụ.
Đố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 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 .
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).
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
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.
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 MimeType
trườ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).
xdg-mime query filetype FILE
là 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.list
là tệp.
xdg-mime query filetype xyz.wbem
OTOH cung cấp ít thông tin hơn và là cách để nhập nhiều hơn.
Tôi muốn liên postman
kế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:
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:
/home/andrzej.rehmann/software/postman/
/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
postman
kế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