我想在Firefox启动之前运行一个脚本&退出之后。在Ubuntu中,我通过创建一个先调用我的函数的新快捷方式,然后调用firefox命令,然后调用我的最后一个函数来完成此操作。由于firefox命令会一直阻塞,直到应用程序退出,我的最后一个函数会在进程结束后立即调用。
然而,在OS X中我不能很好地做到这一点,因为我最终在扩展坞上有两个图标。我的脚本之一变成了一个应用程序&另一个用于Firefox应用程序。我更愿意只有一个停靠图标&不要破坏Firefox更新。
我目前的解决方案是将MacOS / firefox {, - bin}重命名为'real-'前缀,然后将我的shell脚本命名为“firefox-bin”。这有效,但我很确定下一次firefox尝试自我更新我是吐司。
我尝试将捆绑包的Info.plist文件中的“CFBundleExecutable”属性更改为我的脚本,但这不起作用。
有人可以提供任何其他建议吗?
答案 0 :(得分:3)
创建常规应用程序包但在其上设置LSUIElement
,因此脚本应用程序的图标在停靠栏中隐藏,并包含Firefox 包中。
执行此操作的一种简单方法是使用Platypus。配置Platypus如下:
单击“参数”。检查“设置 $ 1到应用程序的路径“复选框, 所以你的脚本可以引用文件 在包内。
选中“后台运行” - 此设置
LSUIElement
为你。
在“文件和文件夹”列表中 与应用程序捆绑在一起 资源文件夹“,删除Firefox。
将输出更改为“无”,以便您的日志 消息进入系统控制台。
将Firefox的图标文件(firefox.icns)放在“自定义图标”上。
将“App Name”更改为Firefox。
对于看起来像这样的脚本:
#!/bin/sh
echo before >&2
$1/Contents/Resources/Firefox.app/Contents/MacOS/firefox-bin
echo after >&2
输出如下:
4/8/09 1:16:33 PM [0x0-0x801801].net.sabi.PlatypusScript[76610] before
4/8/09 1:16:35 PM firefox-bin[76613] Database load time: 0.373 (717 objects)
4/8/09 1:16:35 PM [0x0-0x801801].net.sabi.PlatypusScript[76610]
2009-04-08 13:16:35.699 firefox-bin[76613:10b] Database load time: 0.373 (717 objects)
4/8/09 1:16:57 PM [0x0-0x801801].net.sabi.PlatypusScript[76610] after
如果您的用户以其他方式启动Firefox,例如使用URL处理程序和打开HTML文件,则您需要使用本机应用程序,该应用程序可以将相应的Apple事件传递到Firefox,并添加相应的URL和文件处理程序信息到Info.plist。 (aemreceive是Apple Event接收的方便Python包装器。)
答案 1 :(得分:0)
如果您的Mac OS版本可用,请使用Automator工作流程。