Піктограми рядка меню на скрипті


8

Чи є простий спосіб я додати користувацькі піктограми до області стану меню? В ідеалі щось на зразок Growl (наприклад, там, де ви можете просто виконати команду), але замість сповіщень, просто відображає піктограми на панелі меню.

Я в основному шукаю намалювати цифри, які б я використовував, щоб попередити мене про різні речі. Наприклад, я можу налаштувати клієнта електронної пошти для запуску команди / AppleScript для оновлення номерів, коли надходить певний тип електронної пошти.

Щось на зразок цього:

img

Відповіді:


4

Я б запропонував почати з цієї теми , яка описує використання викликів Cocoa Objective-C з AppleScript. Існує приклад Xcode проект тут .

І Launch - це повна програма, написана в AppleScript, яка функціонально робить це. Файл проекту 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інструмент для встановлення та видалення елементів.

Як сказано в читанні:

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

Створює обличчя в рядку стану. У меню буде опція, Bye!яка запускає sbar remove faceпозбавлення від створеного меню.


Ви можете завантажити складену версію з https://github.com/0942v8653/ScriptableStatusBar/releases .


Добре, але чому ви реєструєтесь для всіх розповсюджених сповіщень замість того, щоб надати ім'я: "io.github.0942v8653.ScriptableStatusBar"?
Матеуш Шлосек

@MateuszSzlosek Добре запитання. Виправить пізніше: P
0942v8653

1
@MateuszSzlosek Виправлено.
0942v8653

Функціонал вашого додатка схоже на "BitBar" (згаданий вище); в той час як у ваших є піктограма (не впевнений, чи є BitBar), інша дозволяє майже будь-якій мові сценаріїв (з std-out) дуже легко відображати її вихід у правій панелі меню. Я використовую це, щоб "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. Ні, ви не можете зробити це з яблуком.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.