Обробники протоколів URL-адреси в базовому робочому столі Ubuntu


16

Був спосіб зареєструвати обробники протоколів 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замість цього відкривається Центр програмного забезпечення 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, і вони не обробляються звичайним чином.

Файл настільних файлів не відповідає на питання.


1
Це може допомогти: unix.stackexchange.com/a/100736
Тодд Оуен

Відповіді:


9

Відкрийте ~/.local/share/applications/mimeapps.listта додайте рядок типу:

x-scheme-handler/apt=apturl.desktop

Так, я міг би зрозуміти це для HTTP, MAILTO та деяких інших.
Hibou57

Такої папки немає. Я здійснив пошук з root, але не знайшов.
Влас Башинський

@VlasBashynskyi, місцезнаходження mimeapps.listможе відрізнятися. Я б запропонував запустити пошук імені файлу.
Hibou57

4

xdg-mime

Можливо, більш елегантним (у цьому прикладі я використовую "apt" , змінюю його на будь-яку іншу схему):

  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. Ви можете зареєструвати новий тип mime для всіх користувачів системи sudo xdg-mime install --mode system <xml file>.

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

Див. Також Додавання типу MIME .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.