기본적으로 bash 스크립트 또는 Apple Script에서 명령을 실행하고 "시계가있는 곳"이라는 상태 표시 줄에 문자열 (또는 아이콘)이 표시됩니다.
osascript와 유사하지만 상태 표시 줄의 경우 :
/ usr / bin / osascript -e '제목이 "Title"인 "Lorem ipsum dolor sit amet"알림 표시'
기본적으로 bash 스크립트 또는 Apple Script에서 명령을 실행하고 "시계가있는 곳"이라는 상태 표시 줄에 문자열 (또는 아이콘)이 표시됩니다.
osascript와 유사하지만 상태 표시 줄의 경우 :
/ usr / bin / osascript -e '제목이 "Title"인 "Lorem ipsum dolor sit amet"알림 표시'
답변:
이것은 내가 오래 전에 찾은 것으로 만족스러운 해결책을 찾지 못했습니다. 귀하의 질문에 대한 해결책을 찾을 때 다시 시작한 프로젝트를 마무리하도록 영감을주었습니다.
GitHub 에서 메뉴 표시 줄 을 확인하십시오 . 스크립트에 문자열을 전달하여 메뉴 표시 줄에 알림을 표시 할 수 있습니다.
./menubarnotifier.py "Notification Text Here"
... OS X 메뉴 표시 줄에 표시됩니다. 알림을 클릭하면 응용 프로그램이 종료됩니다.
스크립트 위치를 경로에 추가하거나 스크립트 자체의 별칭을 만들면 터미널의 어느 곳에서나 사용할 수 있습니다.
기존 구현의 문제점은 기본적으로 stderr에 쓰는 NSLog를 사용하여 로깅한다는 것입니다. 스크립트를 실제로 사용하려면 NSLog 메시지를 억제해야합니다.
내 접근 방식은 다음 기능을 사용자에게 추가 한 다음 ~/.bash_profile
메뉴 표시 줄에 알림을 추가 할 때 함수를 호출하는 것입니다.
# menubarnotifier.py function
mn () {
/path/to/menubarnotifier.py "$1" 2>/dev/null &
}
따라서 다음과 같이 사용할 수 있습니다.
mn "Notification Text Here"
그리고 stdout에 로그하지 않습니다. 또한 Ctrl + C를 요구하지 않기 위해 백그라운드에서 실행됩니다.
스크립트는 PyObjC를 사용하므로 아직 설치하지 않은 경우 설치해야합니다. MacPorts를 사용하여 쉽게 설치 sudo port install py27-pyobjc*
했지만, 그냥 도망 갈 수 있다고 생각합니다 sudo port install py27-pyobjc py27-pyobjc-cocoa
.
아이디어는 NSStatusBar.systemStatusBar().statusItemWithLength_()
OS X 메뉴 표시 줄에서 새 항목을 작성하는 데 사용 됩니다.
self.statusItem = NSStatusBar.systemStatusBar().statusItemWithLength_(NSVariableStatusItemLength)
self.statusItem.setTitle_(display_text)
나중에 더 많은 기능 (예 : 질문에 언급 한 이미지)을 추가하겠습니다. 또한 더 나은 로깅 메커니즘을 찾아서 NSLog 출력을 보지 않고 실행할 수 있습니다. 지금은 위에서 작성한 bash 함수를 사용하여 원하는 방식으로 작동하도록하십시오.