我在个人 wiki 中设置了自定义链接,用于在计算机上执行日常任务。例如,当我单击 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?(我不想采用 Canonical 不支持的运行 Firefox 的方式。)
相关资源:
- 网络.协议处理程序.暴露.(协议)
- 在 Firefox 中设置自定义协议处理程序?
- xdg-mime
/var/lib/snapd/apparmor/profiles/snap.firefox.firefox
更新:我意识到飞涨Linux 客户端完全符合我的要求。我点击 Zoom 会议链接,它会打开 Zoom 网站上的一个页面,该页面会启动 Zoom 客户端 ( /usr/bin/zoom
),无需任何进一步的交互,即使 Firefox 是作为 snap 安装的。(我第一次这样做时,Firefox 提示我获得许可。)我该如何为自己的程序做到这一点?