OS X में स्क्रिप्ट चलाने के लिए एक शॉर्टकट असाइन करें


33

क्या OS X मुख्य संयोजनों को कमांड लाइन पर चलाने के लिए कुंजी संयोजनों को बांधने का एक आसान तरीका प्रदान करता है?

उदाहरण के लिए, क्या असाइन करने का कोई तरीका है D सी.एम.डी. + एल संभवत: उपयोग करके मेरी स्क्रीन को जल्दी से लॉक करने के वैश्विक शॉर्टकट के रूप में /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine?

जवाबों:


21

हां, आप इसे Applescript या के साथ कर सकते हैं स्वचालक

जिस तरह से मैंने इस तरह की चीजें की हैं वह सभी एप्लिकेशन में उपलब्ध होने वाली सेवा बनाने के लिए ऑटोमेटर का उपयोग करना है। बैश / zsh / रूबी / जो भी स्क्रिप्ट चलाने के लिए एक सेवा की जा सकती है। तब आप सिस्टम वरीयताओं के कीबोर्ड फलक में सेवा के लिए एक महत्वपूर्ण संयोजन को बांध सकते हैं।

के अंत के पास इस MacBreak पॉडकास्ट इस प्रक्रिया को विस्तार से दिखाया गया है।

संपादित करें: मैंने अभी देखा कि आप स्नो लेपर्ड का उपयोग नहीं कर रहे हैं। मुझे नहीं लगता कि सिस्टम-वाइड सेवा बनाना 10.5.8 के साथ आसान है। मुझे लगता है कि आप पावरबुक के बाद से अपग्रेड नहीं कर सकते। आप देखना चाह सकते हैं FastScripts जो आपको कीबोर्ड शॉर्टकट्स को एप्क्रिप्स्क्रिप्शंस (10 कीबोर्ड शॉर्टकट्स के लिए मुफ्त में उपयोग करने के लिए) और नीचे दिए गए वर्डप्रेस का उपयोग करने की अनुमति देता है:

do shell script "/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine"

36

मैं वर्तमान में उपयोग करता हूं FastScripts । इसमें सभी स्क्रिप्ट शामिल हैं ~/Library/Scripts/, इसलिए आपको मैन्युअल रूप से स्क्रिप्ट जोड़ने की आवश्यकता नहीं है। यह एप्लिकेशन-विशिष्ट स्क्रिप्ट का भी समर्थन करता है, और इसमें कुछ विशेषताएं हैं जो AppleScripts के साथ उपयोगी हैं, जैसे यह स्क्रिप्ट से पहले बंद हो जाती है keystroke या key code जब तक संशोधक कुंजी जारी नहीं की जाती है।

अगर आपने इसके लिए पावरपैक खरीदा है अल्फ्रेड 2 , आप इस तरह वर्कफ़्लो बना सकते हैं:

हॉटकी में डिफ़ॉल्ट रूप से थोड़ी देरी होती है, लेकिन आप ट्रिगर व्यवहार को बदलकर इसे कम कर सकते हैं:

KeyRemap4MacBook शेल स्क्रिप्ट चलाने का भी समर्थन करता है:

<?xml version="1.0"?>
<root>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_SHELL_say_a</name>
    <url type="shell">say a</url>
  </vkopenurldef>
  <item>
    <name>test</name>
    <identifier>test</identifier>
    <autogen>__KeyToKey__ KeyCode::A, KeyCode::VK_OPEN_URL_SHELL_say_a</autogen>
  </item>
</root>

अन्य अनुप्रयोग जो स्क्रिप्ट को शॉर्टकट असाइन करने में सहायता करते हैं:

एक अन्य विकल्प एक ऑटोमेटर सेवा बनाना है:

  1. ऑटोमेटर खोलें और सेवा टेम्पलेट चुनें।
  2. जाँच करें कि इनपुट प्रकार और एप्लिकेशन स्कोप सही है, या "चयनित टेक्स्ट" को "नो इनपुट" में बदल दें यदि सेवा को कोई इनपुट प्राप्त नहीं होता है।
  3. स्क्रिप्ट के लिए एक रन शैल स्क्रिप्ट या रन AppleScript कार्रवाई जोड़ें।
  4. सेवा सहेजें और इसे सिस्टम प्राथमिकता से शॉर्टकट दें।

10.7 के बाद से एक बग हो गया है जहां सेवाओं के लिए शॉर्टकट हमेशा काम नहीं करते हैं जब तक आप मेनू बार से सेवाओं के मेनू पर होवर नहीं करते हैं। सेवाओं के लिए शॉर्टकट तब काम नहीं करते हैं जब किसी एप्लिकेशन में एक सेवा मेनू (जैसे टॉवर) नहीं है, वह सबसे सामने है। सेवाओं के चलने से पहले ध्यान देने योग्य देरी भी है।


open -a ScreenSaverEngine यहां तक ​​कि एक बालक छोटा है।
Jari Keinänen

त्वरित निर्देश: macosxtips.co.uk/index_files/...
paragbaxi

FastScripts $ 10 शेयरवेयर है, लेकिन इसके लायक है।
a paid nerd

क्या आपके पास एक मूल FastScript है जो टर्मिनल या जो कुछ भी खोलने के लिए F1 की तरह कुछ करता है?
Nick T

1
कृपया सूची में हैमरस्पून जोड़ें :)
vault

1

यदि आप BetterTouchTool का उपयोग कर रहे हैं, तो आप चयन करके शेल कमांड में शॉर्टकट असाइन कर सकते हैं एक निम्नलिखित कार्रवाई: अन्य अनुप्रयोगों को नियंत्रित करना & gt; टर्मिनल कमांड निष्पादित करें


0

यहाँ एक उदाहरण KeePass.sh स्क्रिप्ट मैंने बनाया है। मैंने सिर्फ इस पर गेट इंफो किया और इसे टर्मिनल के साथ चलाने के लिए सेट किया। उसके बाद, मैंने अपने डेस्कटॉप पर इसके लिए एक उपनाम बनाया। यह एक टर्मिनल के अंदर KeePass.sh स्क्रिप्ट चलाता है और फिर आपके द्वारा एप्लिकेशन से बाहर निकलने के बाद, यह किसी भी खुली टर्मिनल विंडो को मारता है। आप उस अंतिम पंक्ति को मोड़ना चाह सकते हैं :-)

cd ~/Documents/KeePass
/Library/Frameworks/Mono.framework/Versions/current/bin/mono KeePass.exe 1>/dev/null 2>/dev/null
cd ~
killall Terminal

आपको यहाँ अन्य सभी के उत्तरों की तरह कुछ विशेष उपयोग करने की आवश्यकता नहीं है।

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