Как мне разрешить Firefox как оснастку запускать внешнюю программу?
В моей личной вики есть специальные ссылки для выполнения рутинных задач на компьютере. Например, когда я нажимаю URL-адресmysecretprotocol://launch-calculator
, Firefox будет работать~/.bin/run-from-firefox launch-calculator
(сценарий, который я написал), который, в свою очередь, запускается/usr/bin/gnome-calculator
. Чтобы настроить это в Firefox, я открылabout:config
, создал параметр конфигурацииnetwork.protocol-handler.expose.mysecretprotocol
и установите для него значение false.
Это хорошо работало в течение многих лет. Однако когда я обновился до Ubuntu 22.04, пользовательские ссылки перестали работать. Теперь, когда я нажимаю пользовательскую ссылку, ничего видимого не происходит, но эта строка добавляется к/var/log/syslog
:
May 18 18:30:01 localhost kernel: [76081.618924] audit: type=1400 audit(1652895001.147:1326): apparmor="DENIED" operation="exec" profile="snap.firefox.firefox" name="/run/user/1000/doc/7d7ed56a/run-from-firefox" pid=47023 comm="firefox" requested_mask="x" denied_mask="x" fsuid=1000 ouid=1000
Как мне заставить эти пользовательские ссылки снова работать, продолжая при этом запускать Firefox ? (Я не хочу переходить на способ запуска Firefox, который не поддерживается Canonical.)
Связанные ресурсы:
- network.protocol-handler.expose.(протокол)
- Установить собственный обработчик протокола в Firefox?
- xdg-мим
-
/var/lib/snapd/apparmor/profiles/snap.firefox.firefox
Обновление: я понял, что клиент Zoom для Linux делает именно то, что мне нужно. Я нажимаю ссылку на собрание Zoom, открывается страница на веб-сайте Zoom, и на этой странице запускается клиент Zoom (/usr/bin/zoom
) без какого-либо дальнейшего взаимодействия, даже если Firefox устанавливается в мгновение ока. (В первый раз, когда я сделал это, Firefox запросил у меня разрешение.) Как я могу сделать это для своей собственной программы?