Trình xử lý giao thức URL trong Ubuntu Desktop cơ bản


16

Có một cách để đăng ký trình xử lý giao thức URL với Gconf, hiện đã lỗi thời và dường như không có cách nào để làm điều tương tự với DConf (hoặc Gsinstall, trình bao bọc được đề xuất của nó).

Làm cách nào để đăng ký đúng trình xử lý giao thức URL kể từ DConf?

Ngoài ra, một cái gì đó có vẻ lạ đối với tôi (vì tôi không hiểu nó), trên Ubuntu 12.04 của tôi

Giao thức apt://nên được xử lý bởiapturl lệnh. Trình duyệt Opera của tôi cũng vậy, nhưng chỉ vì tôi đã thêm liên kết cụ thể này bằng cách sử dụng tiện ích cấu hình của trình duyệt. Mặt khác, trong phần còn lại của môi trường:

  • Chạy xdg-open apt://foo.barmởelinks ( www-browserthay thế của tôi ).
  • Đang chạy gnome-open apt://foo.bar mở Trung tâm phần mềm.
  • Mở ra gconf-editor, tôi thấy một chìa khóa/desktop/gnome/url-handlers/apt có giá trị apturl "%s"và nó được kích hoạt. Cấu hình này dường như bị bỏ qua, được mong đợi một cách hợp lý, vì GConf bị coi là lỗi thời.
  • Khai mạc dconf-editor , tôi không thể thấy bất cứ điều gì liên quan đến trình xử lý URL hoặc giao thức trong/desktop/gnome

Nó có vẻ hơi lộn xộn trong mắt tôi (chỉ trêu chọc với từ ngữ này, không có gì xấu)

Những gì bên dưới?

Lưu ý bên lề: Tôi đang tìm kiếm thứ gì đó tốt nhất hoạt động ngay cả khi môi trường máy tính để bàn đầy đủ không được tải, như khi chạy phiên i3wm chỉ với gsettings-daemon(và những thứ khác không liên quan đến trường hợp này) được tải.

Cập nhật

Một cách khác để đăng ký, một trình xử lý giao thức là với *.desktopcác tệp và MIME-Type của chúng; ví dụ MimeType=application/<the-protocol>;.

Tôi tìm thấy một /usr/share/applications/ubuntu-software-center.desktopvới nội dung này:

[Desktop Entry]
Name=Ubuntu Software Center
GenericName=Software Center
Comment=Lets you choose from thousands of applications available for Ubuntu
Exec=/usr/bin/software-center %u
Icon=softwarecenter
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
MimeType=application/x-deb;application/x-debian-package;x-scheme-handler/apt;
StartupNotify=true
X-Ubuntu-Gettext-Domain=software-center
Keywords=Sources;PPA;Install;Uninstall;Remove;Purchase;Catalogue;Store;

Điều này giải thích tại sao gnome-open apt://foo.barmở Trung tâm phần mềm thay vì apturl.

Vì vậy, tôi đã cài đặt này apturl.desktoptrong ~/.local/share/applications:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/apturl %u
Name=APT‑URL
Comment=APT‑URL handler
Icon=
Categories=Application;Network;
MimeType=x-scheme-handler/apt;

Sau update-desktop-databasevà thậm chí sau khi khởi động lại, cả hai xdg-opengnome-openvẫn làm như vậy và bỏ qua tệp máy tính để bàn của người dùng này, như thường lệ với các tệp desktop của máy tính để bàn, nên ghi đè lên tệp trong /usr/share/applications/.

Có thể có điều gì đó đặc biệt với các tệp trên máy tính để chỉ định x-scheme-handlerloại MIME và chúng không được xử lý theo cách thông thường.

Cách tập tin máy tính để bàn không trả lời câu hỏi.


1
Điều này có thể giúp: unix.stackexchange.com/a/100736
Todd Owen

Câu trả lời:


9

Mở ~/.local/share/applications/mimeapps.listvà thêm một dòng như:

x-scheme-handler/apt=apturl.desktop

Ya, tôi có thể hình dung nó cho HTTP, MAILTO và một số người khác.
Hibou57

Không có thư mục như vậy. Tôi đã tìm kiếm từ gốc, và không tìm thấy nó.
Vlas Bashynskyi

@VlasBashynskyi, vị trí của mimeapps.listcó thể thay đổi. Tôi sẽ đề nghị để chạy một tìm kiếm cho tên tập tin.
Hibou57

4

xdg-mime

Có thể thanh lịch hơn (trong ví dụ này tôi sử dụng "apt" , thay đổi nó cho bất kỳ lược đồ nào khác):

  1. Kiểm tra các loại MIME đã đăng ký trong /usr/share/applications/defaults.list.
  2. Thêm apt.desktoptệp ( ở đây một số ví dụ ) vào ~/.local/share/applications/(toàn người dùng) hoặc /usr/share/applications/(toàn hệ thống).
  3. Xây dựng cơ sở dữ liệu bộ đệm của các loại MIME được xử lý bởi các tệp trên máy tính để bàn: update-desktop-database
  4. Đăng ký một giao thức với

    xdg-mime default apt.desktop x-scheme-handler/apt`
    

    Điều này sẽ nối thêm Loại MIME mới cho sơ đồ ~/.local/share/applications/mimeapps.list. Bạn có thể đăng ký loại mime mới cho tất cả người dùng trên hệ thống sudo xdg-mime install --mode system <xml file>.

Kiểm tra với xdg-open "apt://foo.bar".

Xem thêm Thêm loại MIME .

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.