使用 Mozilla 远程协议通过 xdg-open 打开 URL

使用 Mozilla 远程协议通过 xdg-open 打开 URL

旧版本的 Netscape 和 Mozilla(针对 X11)支持所谓的远程协议:只要在当前 .net 上打开 Netscape/Mozilla 窗口(不一定来自本地进程),就可以打开 URL 或开始撰写电子邮件DISPLAY

“远程”功能可以以任何方式工作:从远程客户端到本地浏览器,反之亦然,甚至从远程host1到远程host2,前提是两者都可以连接到本地DISPLAY

这是以下文档:

对远程请求的基本支持已保留在海猴子,所以即使在今天它也支持像openURL(%url%,new-tab)和这样的论点openURL(%url%,new-window)

现在,我想创建一个*desktop将启动的自定义文件海猴子正是这些论点。

问题是,以这种形式:

[Desktop Entry]
Exec=seamonkey %u

%u扩展有效,而在这个中:

[Desktop Entry]
Exec=seamonkey -remote openURL(%u)

它没有:%u被扩展仅有的如果它周围有空格。

桌面入口规范没有提到这一点,所以这既是一种无证且意外的行为。

你能建议任何解决方法吗?

答案1

我不能对规范说任何话,但就结果而言,我(尽管不熟悉此类文件中的引用)希望它能起作用:

Exec=bash -c 'echo seamonkey openURL"($1)"' seamonkey-wrapper %u%

答案2

我最近刚刚遇到这个问题,并且有一个规范。这里

如果%是用于应用程序,则需要输入%%.这是为了将来,在为 youtube-dl 创建 .desktop 文件并使用该--output选项时。在你的情况下,你可能需要逃避大括号。\(\),因为 shell 会评估它们。设置选项terminal=true,你会看到一个关于/at的错误(

或者尝试: seamonkey 'openURL(%u)' seamonkey "openurl\$'0028'%u\$'0029'"

谨防!我曾经在', while"工作时遇到问题。但仅'意味着字面意思,没有任何解释/扩展。 IIRC,您不需要引用该变量,因为它已经被引用了。

答案3

对我来说,带有前导和尾随百分比字符的可变模式用法看起来非常 DOS 风格,参考 freedesktop 规范文档仅提到了前导字符。

根据文档Mozilla 远程控制选项,该命令openURL是选项的参数-remote。如果没有此选项,则无法从 shell 运行 Exec 命令行。在 fedora 上使用 seamonkey 2.49.5 测试成功。

介意尝试一下Exec=seamonkey -remote openURL(%u)吗?

相关内容