Icone della barra dei menu di Scriptable

8

C'è un modo semplice per aggiungere icone personalizzate nell'area di stato della barra dei menu? Idealmente qualcosa come Growl (ad es., Dove puoi semplicemente eseguire un comando) ma invece di notifiche, esegue il rendering delle icone nella barra dei menu.

Sto principalmente cercando di disegnare numeri che vorrei usare per avvisarmi di varie cose. Ad esempio, posso configurare il mio client di posta elettronica per eseguire un comando / AppleScript per aggiornare i numeri quando arriva un determinato tipo di email.

Qualcosa del genere:

    
posta chroder 08.10.2014 - 18:06
fonte

5 risposte

4

Suggerirei di iniziare con questo thread , che descrive l'uso delle chiamate Cocoa Objective-C da AppleScript. C'è un progetto Xcode di esempio qui .

E Launch è un'applicazione completa scritta in AppleScript che funziona a livello funzionale. Il suo file di progetto Xcode è qui .

La premessa di base è generare istanze NSMenuItem e aggiungerle alla NSStatusBar del sistema:

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)

Estratto di AppleScript dal codice sorgente di Launch, Copyright © Lee Hanken

    
risposta data 24.10.2014 - 22:57
fonte
3

Ok, ho creato un'app per questo. È su GitHub: 0942v8653 / ScriptableStatusBar . Mantieni l'app in esecuzione e utilizza lo strumento sbar per impostare e rimuovere elementi.

Come dice il readme:

sbar set face                                     
risposta data 04.11.2014 - 15:36
fonte
2

Puoi anche utilizzare RubyCocoa :

require "osx/cocoa"
include OSX

app = NSApplication.sharedApplication
statusitem = NSStatusBar.systemStatusBar().statusItemWithLength(NSVariableStatusItemLength)
statusitem.setTitle("aa")
app.run
    
risposta data 25.10.2014 - 17:05
fonte
1

Un'altra opzione è usare Rumps, una libreria Python che usa le classi e le funzioni Obj-C.

link

    
risposta data 31.10.2014 - 14:53
fonte
0

Sì, puoi creare un'app Cocoa per questo scopo in Xcode. No, non puoi farlo con applescript.

    
risposta data 24.10.2014 - 18:02
fonte

Leggi altre domande sui tag