macos - 在我的应用程序包装脚本启动后,如何使停靠栏图标停止弹跳?

标签 macos shell zsh dock

所以我最近做了一个 .app zsh 脚本的包装器,但是当我运行它时,应用程序的图标一直在 Dock 中跳动。

该应用程序基本上是:

% find Example.app -type f
Example.app/Contents/Info.plist
Example.app/Contents/MacOS/wrapper.sh
% cat Example.app/Contents/Info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <!-- tell OSX what the name of the executable is -->
 <key>CFBundleExecutable</key>
 <string>wrapper.sh</string>
</dict>
</plist>
% cat Example.app/Contents/MacOS/wrapper.sh
#!/usr/bin/env zsh
# not my real script, but something else that hangs for a while
sleep 10
%

您也可以grab it from github .

有什么办法可以让应用程序图标停止跳跃,并像普通应用程序一样运行,然后坐在那里
旁边有一个三角形?

最佳答案

应用程序的图标将在 OS X Dock 中弹跳,直到应用程序进入其主事件循环并开始响应用户输入。由于您的脚本可能没有运行 Carbon 或 Cocoa 事件循环(分别参见 Carbon Event Manager 和 NSApplication 的文档),Dock 一直在等待,期望出现一个常规的前台 GUI 应用程序。

我成功使用的脚本包装工具是 Platypus .它可以在执行您的脚本时运行自己的事件循环,并做一些其他方便的事情。

关于macos - 在我的应用程序包装脚本启动后,如何使停靠栏图标停止弹跳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1006648/

相关文章:

java - 在 Mac OS 10.5.8 上设置 JAVA5_HOME 环境变量?

macos - 数据库用户 "postgres"不是安装用户

xcode - 如何像Apple Mail一样获取url预览?

bash - 在 zsh 上运行 bash 脚本不会获取环境变量

themes - 纯主题自定义提示颜色?

php - 如何在 MAMP 上显示错误?

linux - 如何使用 unix 命令在文件中查找特定列具有相同值的行?

c - 数组运算符 "-"(连字符或破折号)在 C 语言中的含义和作用是什么?

linux - cut 操作 - 奇怪的行为

python - 如何防止 Python 脚本中的 ANSI 转义序列干扰我的 zsh RPROMPT 和光标位置?