我希望在Firefox启动之前和退出之后运行脚本.在Ubuntu中,我通过创建一个先调用我的函数的新快捷方式,然后调用firefox命令,然后调用我的最后一个函数来完成此操作.由于firefox命令阻塞直到应用程序退出,因此在进程结束后立即调用我的最后一个函数.
但是,OS XI不能很好地做到这一点,因为我最终在Dock上有两个图标.一个用于我的脚本变成一个应用程序,另一个用于Firefox应用程序.我宁愿只有一个停靠图标并且不会破坏Firefox更新.
我目前的解决方案是将MacOS/firefox {, - bin}重命名为'real-'前缀,然后将我的shell脚本命名为"firefox-bin".这有效,但我很确定下次firefox尝试更新我自己敬酒.
我已经尝试将bundle的Info.plist文件中的"CFBundleExecutable"属性更改为我的脚本,但这不起作用.
有人可以提供任何其他建议吗?
创建一个常规应用程序包并LSUIElement对其进行设置,以便脚本应用程序的图标从扩展坞中隐藏,并包括 Firefox在该包中。
一个简单的方法是使用Platypus。配置 Platypus 如下:
\n\n单击“参数”。选中“将\n$1 设置为应用程序的路径”复选框,\n以便您的脚本可以\n引用捆绑包内的文件。
检查“在后台运行”\xe2\x80\x94这为您设置\n LSUIElement。
在“要与应用程序捆绑到资源文件夹中的文件和文件夹”列表中,删除 Firefox。
将输出更改为“无”,以便您的日志消息转到系统控制台。
将 Firefox 的图标文件 (firefox.icns) 拖放到“自定义图标”井中。
将“应用程序名称”更改为 Firefox。
对于看起来像这样的脚本:
\n\n#!/bin/sh\necho before >&2\n$1/Contents/Resources/Firefox.app/Contents/MacOS/firefox-bin\necho after >&2\nRun Code Online (Sandbox Code Playgroud)\n\n你会得到如下输出:
\n\n4/8/09 1:16:33 PM [0x0-0x801801].net.sabi.PlatypusScript[76610] before \n4/8/09 1:16:35 PM firefox-bin[76613] Database load time: 0.373 (717 objects) \n4/8/09 1:16:35 PM [0x0-0x801801].net.sabi.PlatypusScript[76610]\n2009-04-08 13:16:35.699 firefox-bin[76613:10b] Database load time: 0.373 (717 objects) \n4/8/09 1:16:57 PM [0x0-0x801801].net.sabi.PlatypusScript[76610] after \nRun Code Online (Sandbox Code Playgroud)\n\n如果您的用户以其他方式启动 Firefox,例如使用 URL 处理程序和打开 HTML 文件,您将需要使用本机应用程序,该应用程序可以将适当的 Apple 事件传递到 Firefox,并添加适当的 URL 和文件处理程序信息添加到 Info.plist。(aemreceive是一个方便的 Python 包装器,用于 Apple 事件接收。)
\n| 归档时间: |
|
| 查看次数: |
3657 次 |
| 最近记录: |