Обработчики протокола URL в базовом Ubuntu Desktop

Был способ зарегистрировать обработчики протокола URL в Gconf, который сейчас устарел, и, похоже, нет способа сделать то же самое с DConf (или Gsettings, его рекомендуемой оболочкой).

Как правильно зарегистрировать обработчики протокола URL начиная с DConf?

Кроме того, что-то странное для меня (как я не понимаю) в моей Ubuntu 12.04

Протокол apt:// должен обрабатываться командой apturl. Это так с моим браузером Opera, но только потому, что я добавил эту конкретную связь, используя средство настройки браузера. В противном случае, в остальной среде:

  • Запуск xdg-open apt://foo.bar открывает elinks (мой вариант www-browser).
  • При запуске gnome-open apt://foo.bar открывается Центр программного обеспечения.
  • Открывая gconf-editor, я вижу ключ /desktop/gnome/url-handlers/apt со значением apturl "%s", и он включен. Эта конфигурация, кажется, игнорируется, что вполне разумно, так как GConf считается устаревшим.
  • Открывая dconf-editor, я не вижу ничего связанного с обработчиками URL или протоколами в /desktop/gnome

Это выглядит немного грязно для меня (просто дразня с этой формулировкой, ничего плохого )

Что под ним?

Примечание: я ищу что-то, что предпочтительно работает, даже когда полная среда рабочего стола не загружена, например, при запуске сеанса i3wm только с gsettings-daemon ( и другие вещи, не связанные с этим делом) загружены.

Обновление

Другой способ «зарегистрировать» обработчик протокола - это файлы *.desktop и их MIME-тип; например MimeType=application/<the-protocol>;.

Я нашел /usr/share/applications/ubuntu-software-center.desktop с таким содержанием:

[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;

Это объясняет, почему gnome-open apt://foo.bar открывает SoftwareCenter вместо apturl.

Итак, я установил этот apturl.desktop в ~/.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;

После update-desktop-database и даже после перезагрузки и xdg-open, и gnome-open по-прежнему делают то же самое и игнорируют этот рабочий стол пользователя. файл, который, как обычно, для пользовательских файлов рабочего стола, должен переопределять файл в /usr/share/applications/.

Возможно, что-то особенное в файлах рабочего стола, указывающих x-scheme-handler MIME-тип, и они не обрабатываются обычным способом.

Настольный файл не отвечает на вопрос.

16
задан 21 February 2016 в 20:46

2 ответа

Откройте ~/.local/share/applications/mimeapps.list и добавьте строку как:

x-scheme-handler/apt=apturl.desktop
9
ответ дан 21 February 2016 в 20:46
  • 1
    @AlainIphon я добрался бы 15.10. Это isn' t LTS, таким образом, это won' t поддерживаться очень долго, но обновление обрабатывают, когда 16.04 выходит won' t быть твердым, и 15.10 имеет некоторый новый материал те 14,04 doesn' t. – TheWanderer 3 January 2016 в 03:19

xdg-mime

Возможно, более изящный (в этом примере я использую "склонный", изменяю его для любой другой схемы):

  1. Регистрируйте зарегистрированные типы MIME /usr/share/applications/defaults.list.
  2. Добавьте apt.desktop файл (здесь некоторые примеры) к ~/.local/share/applications/ (всего пользователя) или /usr/share/applications/ (в масштабе всей системы).
  3. База данных кэша сборки типов MIME обрабатывается файлами на рабочем столе: update-desktop-database
  4. Зарегистрируйте протокол в

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

    Это добавит новый Тип MIME для схемы к ~/.local/share/applications/mimeapps.list. Можно зарегистрировать новый тип пантомимы для всех пользователей в системе sudo xdg-mime install --mode system <xml file>.

Тест с xdg-open "apt://foo.bar".

См. также Добавление Типа MIME.

4
ответ дан 23 November 2019 в 02:36

Другие вопросы по тегам:

Похожие вопросы: