Ikon bilah menu skrip

8

Apakah ada cara mudah saya dapat menambahkan ikon khusus ke area status bilah menu? Idealnya sesuatu seperti Growl (misalnya, di mana Anda bisa menjalankan perintah) tetapi alih-alih notifikasi, hanya membuat ikon di bilah menu.

Saya terutama ingin menggambar angka yang akan saya gunakan untuk mengingatkan saya tentang berbagai hal. Sebagai contoh, saya dapat mengkonfigurasi klien email saya untuk menjalankan perintah / AppleScript untuk memperbarui nomor ketika jenis email tertentu tiba.

Sesuatu seperti ini:

img

chroder
sumber

Jawaban:

4

Saya akan menyarankan mulai dengan utas ini , yang menjelaskan menggunakan panggilan Kakao Objective-C dari dalam AppleScript. Ada contoh proyek Xcode di sini .

Dan Launch adalah aplikasi lengkap yang ditulis dalam AppleScript yang secara fungsional melakukan ini. File proyek Xcode-nya ada di sini .

Premis dasarnya adalah untuk membuat instance NSMenuItem dan menambahkannya ke NSStatusBar sistem:

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)

Kutipan AppleScript dari kode sumber Launch, Copyright © Lee Hanken

Lingnik
sumber
Tautan tidak ada sekarang di 2018
davidfrancis
3

Oke, saya sudah membuat aplikasi untuk ini. Itu ada di GitHub: 0942v8653 / ScriptableStatusBar . Biarkan aplikasi tetap berjalan dan gunakan sbaralat untuk mengatur dan menghapus item.

Seperti kata readme:

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

Membuat wajah di bilah status. Menu akan memiliki opsi Bye!yang berjalan sbar remove facemenyingkirkan menu yang dibuatnya.


Anda dapat mengunduh versi yang dikompilasi dari https://github.com/0942v8653/ScriptableStatusBar/releases .

0942v8653
sumber
Bagus, tetapi mengapa Anda mendaftar ke semua notifikasi yang didistribusikan, bukan yang dengan nama: "io.github.0942v8653.ScriptableStatusBar"?
Mateusz Szlosek
@MateuszSzlosek Pertanyaan bagus. Akan diperbaiki nanti: P
0942v8653
1
@MateuszSzlosek Diperbaiki.
0942v8653
Fungsionalitas aplikasi Anda tampaknya sangat mirip dengan "BitBar" (disebutkan di atas); sementara Anda memiliki ikon (tidak yakin apakah BitBar melakukannya), yang lain memungkinkan hampir semua bahasa scripting (dengan std-out) untuk dengan mudah menampilkan hasilnya di bilah menu sebelah kanan. Saya menggunakannya untuk "osascript" skrip apel yang "mengembalikan" jumlah ruang kerja saya saat ini (seperti di versi OS sebelumnya). Script hanya ditempatkan di folder plugin & EXTRA! bagian dari nama (misalnya xx.3s.sh => 3 detik) menentukan interval pengulangan. SANGAT berguna untuk menampilkan status !!!
clemsam lang
2

Anda juga dapat menggunakan RubyCocoa :

require "osx/cocoa"
include OSX

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

Ya, Anda dapat membuat aplikasi Kakao untuk tujuan ini dalam Xcode. Tidak, Anda tidak dapat melakukannya dengan applescript.

lebih jauh
sumber