2009-06-17 3 views
3

그래서 나는 최근에 zsh 스크립트를위한 .app 래퍼를 만들었지 만, 그것을 실행할 때, 앱의 아이콘은 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.

앱 아이콘이 호핑을 멈추고 일반 앱처럼 작동하고 옆에 삼각형이있는 에 앉을 수있는 방법이 있습니까?

답변

6

앱이 기본 이벤트 루프를 시작하고 사용자 입력에 응답하기 전까지 OS X Dock에서 아이콘이 튀어 나옵니다. 스크립트에서 Carbon 또는 Cocoa 이벤트 루프 (Carbon Event Manager 및 NSApplication에 대한 설명서 참조)를 실행하지 않을 것이므로 Dock은 일반적인 포 그라운드 GUI 응용 프로그램이 나타날 것으로 기대하면서 계속 대기하고 있습니다.

성공한 스크립트 작성 도구는 Platypus입니다. 스크립트를 실행하는 동안 자체 이벤트 루프를 실행하고 다른 많은 편리한 작업을 수행 할 수 있습니다.

+0

이유를 설명해 주셔서 감사합니다! – rampion

2

당신은 DropScript을 원합니다. 독 (dock)은 그런 쉘 스크립트에서는 작동하지 않으며, 좀 더 본격적인 것을 기대합니다.

+0

DropScript의 최신 버전 (0.5)은 PPC 전용 바이너리입니다. 최근에 나온 OS X의 버전이 10.5 이상인 인텔 맥에서 작동하지 않을 것입니다. – pendor

1

Info.plist 파일에 LSUIElement를 추가하면 정상적으로 작동한다고 생각합니다.

관련 문제