스크립트 가능한 메뉴 막대 아이콘


8

메뉴 표시 줄 상태 영역에 사용자 정의 아이콘을 쉽게 추가 할 수 있습니까? Growl과 같은 것이 이상적이지만 (예 : 명령을 실행할 수있는 위치) 알림 대신 메뉴 표시 줄에 아이콘을 렌더링합니다.

나는 주로 다양한 것들에 대해 경고하는 데 사용할 숫자를 그리려고합니다. 예를 들어 특정 종류의 전자 메일이 도착하면 명령 / AppleScript를 실행하여 번호를 업데이트하도록 전자 메일 클라이언트를 구성 할 수 있습니다.

이 같은:

img

답변:


4

AppleScript 내에서 Cocoa Objective-C 호출을 사용하는 방법을 설명하는 이 스레드 부터 시작하는 것이 좋습니다 . 여기에 Xcode 프로젝트의 예가 있습니다 .

그리고 시작은 기능적으로이 작업을 수행 애플 스크립트로 작성된 완벽한 응용 프로그램입니다. Xcode 프로젝트 파일은 여기에 있습니다 .

기본 전제는 NSMenuItem 인스턴스를 생성하여 시스템의 NSStatusBar에 추가하는 것입니다.

set statusMenu to (NSMenu's alloc)'s initWithTitle_("Launch")
-- (build and do stuff with the statusMenu here)
set sysStatusBar to NSStatusBar's systemStatusBar
set statusItem to sysStatusBar's statusItemWithLength_(32)
tell statusItem to setMenu_(statusMenu)
tell statusItem to setHighlightMode_(1)
set menuImage to NSImage's imageNamed_("icon.png")
tell statusItem to setImage_(menuImage)

AppleScript의 Launch 소스 코드에서 발췌, Copyright © Lee Hanken


2018 년에 링크가 사라졌습니다
davidfrancis

3

좋아, 나는 이것을 위해 응용 프로그램을 만들었습니다. GitHub : 0942v8653 / ScriptableStatusBar에 있습니다. 앱을 계속 실행하고 sbar도구를 사용하여 항목을 설정하고 제거하십시오.

readme가 말했듯이 :

sbar set face 😃 'Bye!:sbar remove face'

상태 표시 줄에면을 만듭니다. 메뉴는 옵션이됩니다 Bye!실행됩니다 sbar remove face이 생성 메뉴 제거하기를.


https://github.com/0942v8653/ScriptableStatusBar/releases 에서 컴파일 된 버전을 다운로드 할 수 있습니다 .


근데 이름이 "io.github.0942v8653.ScriptableStatusBar"인 알림 대신 모든 분산 알림에 등록하는 이유는 무엇입니까?
Mateusz Szlosek

@MateuszSzlosek 좋은 질문입니다. 나중에 수정됩니다 : P
0942v8653

1
@MateuszSzlosek 수정되었습니다.
0942v8653

앱의 기능은 위에서 언급 한 "BitBar"와 매우 유사한 것 같습니다. 귀하의 아이콘 (BitBar가 확실하지 않은지 여부)을 특징으로하는 반면, 다른 하나는 거의 모든 스크립팅 언어 (표준 출력)가 오른쪽 메뉴 막대에 출력을 매우 쉽게 표시하도록 허용합니다. 나는 이전의 OS 버전에서와 같이 현재 작업 공간의 수를 "반환"하는 Apple 스크립트를 "osascript"하는데 사용합니다. 스크립트는 플러그인 폴더 & EXTRA에 간단히 배치됩니다! 이름의 일부 (예 : xx.3s.sh => 3 초)는 반복 간격을 지정합니다. 상태 표시에 매우 유용합니다 !!!
clemsam lang

2

RubyCocoa를 사용할 수도 있습니다 :

require "osx/cocoa"
include OSX

app = NSApplication.sharedApplication
statusitem = NSStatusBar.systemStatusBar().statusItemWithLength(NSVariableStatusItemLength)
statusitem.setTitle("aa")
app.run


0

예, Xcode에서 이러한 목적으로 Cocoa 앱을 만들 수 있습니다. 아니요, 애플 스크립트로는 할 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.