11 votes

Icônes de la barre de menu scriptables

Existe-t-il un moyen simple d'ajouter des icônes personnalisées dans la zone d'état de la barre de menu ? Idéalement, quelque chose comme Growl (par exemple, où vous pouvez simplement exécuter une commande) mais au lieu de notifications, rend simplement des icônes dans la barre de menu.

Je cherche principalement à dessiner des numéros que j'utiliserais pour m'alerter de diverses choses. Par exemple, je peux configurer mon client de messagerie pour qu'il exécute une commande/AppleScript afin de mettre à jour les chiffres lorsqu'un certain type d'e-mail arrive.

Quelque chose comme ça :

img

6voto

Lingnik Points 825

Je suggère de commencer par ce fil qui décrit l'utilisation des appels Cocoa Objective-C depuis AppleScript. Il existe un exemple de projet Xcode aquí .

Et Lancement est une application complète écrite en AppleScript qui remplit cette fonction. Son fichier projet Xcode est aquí .

Le principe de base consiste à générer des instances NSMenuItem et à les ajouter à la NSStatusBar du système :

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)

<em>Extrait d'AppleScript du code source de Launch, Copyright © Lee Hanken</em>

3voto

0942v8653 Points 6754

Ok, j'ai créé une application pour ça. Elle est sur GitHub : 0942v8653/ScriptableStatusBar . Il suffit de laisser l'application fonctionner et d'utiliser le sbar pour définir et supprimer des éléments.

Comme le dit le readme :

sbar set face  'Bye!:sbar remove face'

Crée un visage dans la barre d'état. Le menu aura une option Bye! qui fonctionne sbar remove face en se débarrassant du menu qu'il crée.


Vous pouvez télécharger une version compilée à partir de https://github.com/0942v8653/ScriptableStatusBar/releases .

2voto

Vous pouvez également utiliser RubyCocoa :

require "osx/cocoa"
include OSX

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

1voto

Jay Thompson Points 4026

Une autre option consiste à utiliser Rumps, une bibliothèque Python qui utilise les classes et les fonctions Obj-C.

http://rumps.readthedocs.org/en/latest/

0voto

fartheraway Points 4886

Oui, vous pouvez créer une application Cocoa à cette fin dans Xcode. Non, vous ne pouvez pas le faire avec applescript.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X