Вопрос или проблема
Я недавно перешел с Ubuntu 10.04 gnome на Debian wheezy Kde.
Все работает хорошо, кроме пользовательских протоколов Iceweasel/firefox!
Я добавил komodo.protocol в свой ~/.kde/share/services
с:
[Protocol]
exec=python /path/to/my/script.py "%u"
protocol=komodo
input=none
output=none
helper=true
listing=
reading=false
writing=false
makedir=false
deleting=false
Это работает для chrom(e|ium), но не для firefox.
Я читал, что firefox должен использовать gnome конфигурации даже под Kde, так что я попробовал:
gconftool-2 -s /desktop/gnome/url-handlers/komodo/enabled --type Boolean true
gconftool-2 -s /desktop/gnome/url-handlers/komodo/command 'python /path/to/my/script.py %s' --type String
Это работало, когда я был на ubuntu, но не работает на kde.
Есть идеи?
ИЗМЕНЕНИЕ
Пример ссылки: komodo:/var/www/app/0/Modules/Controller/Node/Controller_Node.class.php:1202
Если я запускаю команду komodo /var/www/app/0/Modules/Controller/Node/Controller_Node.class.php:1202
из терминала, она работает правильно; мой python-скрипт просто проверяет несколько вещей, а затем выполняет эту команду – но с firefox/iceweasel это никогда не срабатывает.
Вы можете попробовать изменить конфигурацию Firefox через about:config:
- network.protocol-handler.expose.komodo: true (Этот протокол должен обрабатываться либо браузером, либо внешним приложением)
- network.protocol-handler.external.komodo: true (Этот протокол должен обрабатываться внешним приложением)
- network.protocol-handler.app.komodo: python /path/to/my/script.py (Путь к программе для обработки запроса)
Ответ или решение
Настройка пользовательских обработчиков протоколов в Iceweasel/Firefox на Debian KDE
Переход с Ubuntu 10.04 GNOME на Debian Wheezy с KDE может вызвать некоторые проблемы с настройкой пользовательских обработчиков протоколов. Ваша проблема с обработчиком komodo
в Iceweasel/Firefox, которая, по вашим словам, работает в Chromium, но не в Firefox, является распространенной и может быть решена несколькими шагами.
1. Создание файла службы для протоколов
Вы правильно создали файл komodo.protocol
в каталоге ~/.kde/share/services
. Это начальный шаг для настройки пользовательского протокола. Однако, вам следует удостовериться, что ваш файл корректен. Пример:
[Protocol]
exec=python /path/to/my/script.py "%u"
protocol=komodo
input=none
output=none
helper=true
listing=
reading=false
writing=false
makedir=false
deleting=false
Данный файл указывает, что запросы к komodo
должны обрабатываться вашим python-скриптом.
2. Настройка через GNOME конфигурацию
Вы пытались настроить обработчик через gconftool-2
, но это может не сработать в KDE. Однако, можно попробовать аналогичные команды, используя xdg-utils
. Попробуйте выполнить следующее:
xdg-mime default firefox.desktop x-scheme-handler/komodo
Это укажет системе, что Firefox
должен обрабатывать протокол komodo
.
3. Настройка через about:config в Firefox
Для того чтобы убедиться, что Firefox правильно настроен на обработку вашего протокола, выполните следующие шаги:
- Откройте Firefox и в адресной строке введите
about:config
. - При появлении предупреждения об опасности, подтвердите, что вы готовы продолжить.
-
Найдите следующие параметры и установите их:
network.protocol-handler.expose.komodo
: установите значениеtrue
. Это позволит Firefox использовать обработчик.network.protocol-handler.external.komodo
: установите значениеtrue
. Это заставит Firefox вызывать внешний обработчик.network.protocol-handler.app.komodo
: установите это значение на полный путь к вашему скрипту, например,python /path/to/my/script.py
.
Для добавления параметров в about:config, вы можете щелкнуть правой кнопкой мыши и выбрать New > Boolean
или New > String
, в зависимости от типа.
4. Протестируйте обработчик
После внесения этих изменений, протестируйте обработку ссылок с использованием вашего протокола komodo
. Например, если вы используете ссылку вида:
komodo:/var/www/app/0/Modules/Controller/Node/Controller_Node.class.php:1202
Посмотрите, вызывается ли ваш Python-скрипт корректно.
Заключительные мысли
Если после выполнения всех вышеуказанных шагов проблема не решилась, то стоит рассмотреть журнал ошибок Firefox. Для этого можно запустить Firefox из терминала и наблюдать за сообщениями, которые могут помочь диагностировать проблему.
Переход на другую среду может вызвать трудности, но с правильной настройкой вы сможете успешно использовать Iceweasel/Firefox для обработки пользовательских протоколов. В случае, если будут дополнительные вопросы, не стесняйтесь обращаться к сообществу Debian или к документации Firefox.