iconos de la barra de menú de secuencias de comandos

8

¿Hay alguna forma fácil de agregar iconos personalizados al área de estado de la barra de menús? Lo ideal es algo como Growl (por ejemplo, donde solo puedes ejecutar un comando) pero en lugar de notificaciones, solo muestra los iconos en la barra de menú.

Principalmente busco dibujar números que usaría para alertarme de varias cosas. Por ejemplo, puedo configurar mi cliente de correo electrónico para ejecutar un comando / AppleScript para actualizar los números cuando llega un cierto tipo de correo electrónico.

Algo como esto:

    
pregunta chroder 08.10.2014 - 18:06

5 respuestas

4

Yo sugeriría comenzar con este hilo , que describe el uso de las llamadas Cocoa Objective-C desde AppleScript. Hay un ejemplo de proyecto Xcode aquí .

Y Launch es una aplicación completa escrita en AppleScript que funciona de manera funcional. Su archivo de proyecto Xcode es aquí .

La premisa básica es generar instancias de NSMenuItem y agregarlas a 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)

Extracto de AppleScript del código fuente de Launch, Copyright © Lee Hanken

    
respondido por el Lingnik 24.10.2014 - 22:57
3

Bueno, he hecho una aplicación para esto. En GitHub: 0942v8653 / ScriptableStatusBar Simplemente mantenga la aplicación en ejecución y use la herramienta sbar para configurar y eliminar elementos.

Como dice el readme:

sbar set face                                     
respondido por el 0942v8653 04.11.2014 - 15:36
2

También puedes usar RubyCocoa :

require "osx/cocoa"
include OSX

app = NSApplication.sharedApplication
statusitem = NSStatusBar.systemStatusBar().statusItemWithLength(NSVariableStatusItemLength)
statusitem.setTitle("aa")
app.run
    
respondido por el user495470 25.10.2014 - 17:05
1

Otra opción es usar Rumps, una biblioteca de Python que usa las clases y funciones de Obj-C.

enlace

    
respondido por el Jay Thompson 31.10.2014 - 14:53
0

Sí, puedes crear una aplicación Cocoa para este propósito en Xcode. No, no puedes hacerlo con applecript.

    
respondido por el fartheraway 24.10.2014 - 18:02

Lea otras preguntas en las etiquetas