Я хочу использовать xdg-open
, чтобы открыть irc://
ссылки, как мне сделать требуемый параметр?
xdg-open в основном просто смотрит, какая у вас среда рабочего стола, а затем запускает gnome-open, gvfs-open, xfce-open и т. Д. См. Ниже инструкции по конкретной среде рабочего стола ...
Gnome использует программу gnome-open, которая использует gconf для хранения всего. Например, на моей машине с Ubuntu 10.10 работает gnome-open irc: // blah открывает xchat, потому что xchat включает в себя патч настройки gconf для добавления обработчика irc: //.
Это показывает, как гном делает это, с настройками gconf в /desktop/gnome/url-handlers/
. См. xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas
в качестве примера.
Для KDE вы должны посмотреть файлы .protocol в / usr / share / kde4 / services /, создать новый для вашего нового протокола и поместить его в ~ / .kde / share / kde4 / services /, если это супер полезно, рассмотрите возможность добавления его в пакет как исправление для других пользователей.
KDE использует kde-open или kfmclient в зависимости от того, что доступно и какая у вас версия KDE.
XFCE использует программу под названием exo-open, у этой программы нет никакого способа сконфигурировать ее или добавить обработчики uri. Просмотр исходного кода показывает, что он использует файлы рабочего стола для указания только трех типов программ. TerminalEmulator, WebBrowser и EmailClient.
В XFCE4 (и, возможно, также в других) можно настроить xdg-open для определения обработчика настраиваемого протокола. В некоторых вы должны создать / отредактировать следующие файлы:
~ / .local / share / Applications / protocolhandler.desktop ~ / .local / share / Applications / mimeapps.list
Пример добавление обработчика для протокола ed2k предоставляется на stackexchange.com 2 .
Я хотел связаться postman
ссылки с моим вручную установленным приложением Почтальона (не хромовое расширение) так, чтобы я мог открыть документы почтальона от браузера как это:
ссылка, которую я хотел связать, похожа на это:
postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...
, Чтобы сделать ассоциацию я сделал следующие шаги:
/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
ссылка xdg с приложением путем выполнения: xdg-mime default Postman.desktop x-scheme-handler/postman
у меня есть ansibled эта конфигурация, если кому-либо интересно: https://github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/tasks/postman_installer.yml
Я опишу это с magnet:
Тип URI и Передача (т.е. случай bittorent), но тот же метод могут быть применены к любой схеме или типу файла.
Также я проверил это с Debian Jessie, и у меня на самом деле нет машины Ubuntu, но я полагаю, что она должна работать то же (по крайней мере, для xdg-открытого, обратите внимание, что файловые менеджеры могут принять решение использовать другую логику).
Узнайте строку типа MIME. Для файла типы MIME можно узнать это с командой файла:
$ file -i Broken_Blossoms.webm Broken_Blossoms.webm: video/webm; charset=binary $
Для вышеупомянутого файла тип MIME video/webm
.
Для обработчиков URI тип x-scheme-handler/<scheme>
, где <scheme>
часть URI перед двоеточием, например, "http", "mailto" "irc" или "магнитом". Следующее является примерами допустимых типов MIME:
x-scheme-handler/http
x-scheme-handler/irc
x-scheme-handler/magnet
x-scheme-handler/mailto
Узнайте название приложения .desktop файл.
Часто это не то же как "официальное" имя, а скорее строчная версия его или совершенно другое имя. Установленные .desktop файлы живут под/usr/share/applications. Так как они - файлы обычного текста и содержат "официальное" имя, после команды может помочь Вам:
$ grep "Transmission" -l -r /usr/share/applications /usr/share/applications/transmission-gtk.desktop $
Команда эффективно означает "файлы списка в соответствии с этим каталогом, которые содержат слово 'Transmission'". Некоторые приложения могут быть установлены только для пользователя, в этом случае путь был бы ~/.local/share/applications
.
В случае, если у Вас есть "странное" приложение, которое не может иметь файла вообще, можно всегда создавать один (и возможно отправлять его разработчикам приложения). Простой способ состоял бы в том, чтобы скопировать существующий, переписать поля, Вы понимаете и удаляете тех, которых Вы не делаете. Обратитесь к спецификации для деталей.
Сделайте присвоение с помощью команды xdg-пантомимы:
$ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet $
Обратите внимание, что, неважно, где файл на самом деле (/usr/share/applications, ~/.local/share/applications...), Вы всегда используете только имя, не полный путь.
Обычно команда ничего не произведет - это в порядке. Если Вы хотите проверить то, что Вы просто сделали или видите то, что в настоящее время присваивается любому типу MIME, не открывая его:
$ xdg-mime query default x-scheme-handler/magnet transmission-gtk.desktop $
Примечание 1: Если Вы хотите проверить другие типы MIME, можно посмотреть на/etc/mime.types. Это не содержит все типы в мире; например, обработчики URI, но это могло использоваться для "агрессивной" формы обработки ассоциаций. Например:
grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop
связал бы все известные форматы видео к VLC.
Примечание 2: .desktop файлы часто содержат список типов MIME, что они утверждают, что смогли обработать использование MimeType
поле. xdg-имитируйте страницу справочника, говорит, что .desktop файл должен требовать типа MIME, прежде чем вышеупомянутая команда будет работать, но для меня это, кажется, работает, даже если поле отсутствует. (Я имею в виду, ассоциация будет применена, и приложение запустится - если она действительно может обработать тип, другой вопрос). Я не уверен, что является недостатком (возможно, в будущем, xdg-пантомима будет более строгой).