旧版本的 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)
吗?