स्क्रिप्ट करने योग्य मेनू बार आइकन


8

क्या कोई आसान तरीका है जिससे मैं मेनू बार स्थिति क्षेत्र में कस्टम आइकन जोड़ सकता हूं? आदर्श रूप में कुछ ग्रोथल (जैसे, जहां आप केवल एक कमांड निष्पादित कर सकते हैं) लेकिन सूचनाओं के बजाय, मेनू बार में केवल आइकन रेंडर करते हैं।

मैं मुख्य रूप से उन संख्याओं को आकर्षित करना चाह रहा हूं जो मुझे विभिन्न चीजों के बारे में सचेत करने के लिए उपयोग करेंगे। उदाहरण के लिए, मैं एक निश्चित प्रकार के ईमेल आने पर संख्याओं को अपडेट करने के लिए कमांड / AppleScript चलाने के लिए अपने ईमेल क्लाइंट को कॉन्फ़िगर कर सकता हूं।

कुछ इस तरह:

img

जवाबों:


4

मैं इस धागे से शुरू करने का सुझाव दूंगा , जो AppleScript के भीतर से कोको ऑब्जेक्टिव-सी कॉल का उपयोग करने का वर्णन करता है। यहाँ एक उदाहरण Xcode परियोजना है

और लॉन्च 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 लॉन्च के स्रोत कोड से अंश, कॉपीराइट © ली हैंकेन


लिंक अब 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.criptableStatusBar"?
माटूस ज़्लॉज़ेक

@MateuszSzlosek अच्छा सवाल। बाद में ठीक कर लेंगे: पी
0942v8653

1
@MateuszSzlosek फिक्स्ड।
0942v8653

आपके ऐप की कार्यक्षमता "BitBar" (ऊपर वर्णित) के समान है; जब आपका एक आइकन होता है (निश्चित नहीं कि अगर BitBar करता है), तो दूसरा किसी भी स्क्रिप्टिंग लैंग्वेज (std-out) को बहुत आसानी से राईट-हैंड मेनू बार में अपना आउटपुट प्रदर्शित करने की अनुमति देता है। मैं एक ऐप्पल स्क्रिप्ट को "ऑसस्क्रिप्ट" करने के लिए उपयोग करता हूं जो कि मैं जिस कार्यक्षेत्र की वर्तमान संख्या "रिटर्न" कर रहा हूं (जैसे पूर्व ओएस संस्करणों में)। लिपियों को केवल एक प्लगइन फोल्डर और EXTRA में रखा जाता है! नामों का हिस्सा (जैसे xx.3s.sh => 3 सेकंड) दोहराव अंतराल को निर्दिष्ट करता है। स्थिति प्रदर्शित करने के लिए बहुत उपयोगी है !!!
क्लेम्सम लैंग

2

आप RubyCocoa का भी उपयोग कर सकते हैं :

require "osx/cocoa"
include OSX

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


0

हां, आप इस उद्देश्य के लिए Xcode में कोको ऐप बना सकते हैं। नहीं, आप इसे applescript के साथ नहीं कर सकते।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.