स्क्रिप्ट के माध्यम से "मानक कुंजी के रूप में सभी F1, F2 का उपयोग करें" टॉगल करें


25

मैं बहुत बार "सभी एफ 1, एफ 2 को मानक कुंजी के रूप में उपयोग करता हूं" सेटिंग को चालू करता हूं और इसे एक स्क्रिप्ट (या कीबोर्ड शॉर्टकट) के माध्यम से स्वचालित करना चाहूंगा। क्या यह संभव है? मैंने Google के लिए सही तर्क देने का defaults write ...प्रयास किया है , लेकिन असफल रूप से।

fn सेटिंग्स


अपडेट: मैंने यहां उत्तरों के आधार पर https://github.com/jkbrzt/macos-fn-toggle बनाना समाप्त कर दिया है।

अद्यतन II: अब भी है - https://github.com/Pyroh/Fluor - एक बहुत अच्छा menubar ऐप जो आपको सक्रिय एप्लिकेशन के आधार पर कीबोर्ड की fn कुंजियों के व्यवहार को स्वचालित रूप से बदलने की अनुमति देता है।

जवाबों:


25
tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

आप भी उपयोग कर सकते हैं defaults write -g com.apple.keyboard.fnState -bool true, लेकिन मुझे बिना लॉग आउट किए और फिर से वापस किए गए परिवर्तनों को लागू करने का कोई तरीका नहीं पता है।


4
मैंने इस स्क्रिप्ट को
ऑटोमेकर

@jkbr github पर आपका ऐप केवल उसी तरह की चीज़ है जिसे मैं खोज रहा था। धन्यवाद!
mdwhatcott

1
आप ऐप्पलस्क्रिप्ट संपादक से एक स्क्रिप्ट को एक एप्लिकेशन के रूप में भी सहेज सकते हैं। बस स्क्रिप्ट को AppleScript संपादक में पेस्ट करें, theS दबाएं और प्रारूप को एप्लिकेशन पर सेट करें।
17

अभी तक एक अन्य विकल्प के रूप में, ऑटोमेकर में एक नई "सेवा" बनाई जाती है, रन अप्प्लस्क्रिप्ट कमांड जोड़ें और इसे वहां पेस्ट करें जहां यह कहता है (* आपकी स्क्रिप्ट यहां जाती है *)। सहेजें, और फिर सभी अनुप्रयोगों में सेवा मेनू में fn :) शामिल होगा
स्पाइडर

2
मावेरिक्स पर आपको एक त्रुटि मिलती है जैसे: "AppleScript एडिटर को सहायक एक्सेस की अनुमति नहीं है।" तो आपको प्राइवेसी टैब में "सिक्योरिटी एंड प्राइवेसी" पर जाना होगा, एक्सेलेबिलिटी का चयन करना होगा और अपने ऐप को ऐसा करने में सक्षम बनाना होगा। लॉक खोलने के लिए आपको एडमिन पासवर्ड देना होगा।

9

मुझे स्क्रिप्ट के बारे में पता नहीं है, लेकिन कुछ आसान रिवर्स-इंजीनियरिंग और Googling के साथ, मैंने इसे तब से बनाया है क्योंकि मुझे मौजूदा AppleScript GUI सामान पसंद नहीं आया है जो कि बाहर था:

https://github.com/nelsonjchen/fntoggle

संकलित बाइनरी (अपने पेट में टॉस या यदि आप नहीं जानते कि फिर क्या है /usr/local/bin/): https://github.com/nelsonjchen/fntoggle/releases

इसे (ControlPlane, Automator sh, आदि) से चलाकर fntoggle onया कहकर किसी भी चीज़ से कॉल करें fntoggle off

इस स्क्रिप्ट को GUI पहुँच चालू करने की आवश्यकता नहीं है। इसमें लॉग आउट और बैक इन करने की भी आवश्यकता नहीं है।


क्या यह अभी भी सिएरा में काम करता है? यहां काम नहीं हो रहा है।
वारेन P

@ArrenP यह मुद्दा ज्ञानवर्धक हो सकता है। github.com/elinesonjchen/fntoggle/issues/4
crazysim

4

आप निम्न के साथ वर्तमान स्थिति पढ़ सकते हैं। (एफ-की के लिए 1, मीडिया / चमक आदि के लिए 0)

defaults read "Apple Global Domain" "com.apple.keyboard.fnState"

आप इसे लिख सकते हैं, हालांकि यह तब तक नहीं बदलेगा जब तक आप रिबूट नहीं करते। (मैंने इसके बजाय डॉक और खोजक को मारने की कोशिश की, कोई भाग्य नहीं)

defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "1" ## F1 F2 etc
defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "0" ## Brightness/Media

मुझे किसी को इस बात पर अधिक ज्ञान है कि इस plist फ़ाइल को पढ़ने के लिए कोई स्क्रिप्ट लिख सकता है, जो इस plist को पढ़ता है, उसे मारने और पुनः आरंभ करने के लिए एक स्क्रिप्ट लिख सकता है, जिससे इसे परिवर्तन को स्वीकार करना चाहिए।


धन्यवाद, यह सही कुंजी है। हालांकि इसे सीधे बदलना व्यवहार को बदलना प्रतीत नहीं होता है।
जकुब रोक्स्टोसिल

हालांकि रिबूट होने में मदद नहीं करता
डैनियल

1

वास्तव में, आपको किसी भी ऐप को स्पॉटलाइट या किसी भी चीज़ से चलाना होगा, मेरी राय में सबसे अच्छा तरीका है:

  1. ऑटोमेटर में नई सेवा बनाएँ
  2. खींचें: "Apple स्क्रिप्ट चलाएँ
  3. "सेवा पुनरावर्ती चयनित" में: कोई इनपुट न चुनें
  4. इस कोड को इस अन्य उत्तर से चिपकाएँ :

    tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
    end tell
    tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
    end tell
    quit application "System Preferences" 
  5. "अपना नाम" के रूप में सहेजें

  6. ओपन सिस्टम वरीयताएँ → कीबोर्ड → शॉर्टकट
  7. बाएं मेनू में चुनें: "सेवा"
  8. दाईं ओर, सामान्य तरीके से सभी को नीचे स्क्रॉल करें, और अपनी सेवा को कुछ अद्वितीय हॉटकी असाइन करें, मैं cmd ​​+ Shift + L चुनता हूं

  9. बस! यह बहुत तेज़ या कुछ भी नहीं है, लेकिन आपको कोई ऐप चलाने या खुद को प्राथमिकता देने की ज़रूरत नहीं है।

परिशिष्ट: ईएल कैपिटान के साथ यह तभी काम करता है जब ऑटोमेकर फोकस में है, अन्यथा (जैसे। यदि आप कीबोर्ड शॉर्टकट के माध्यम से स्क्रिप्ट को आमंत्रित करते हैं) तो आपको "कार्रवाई" रन AppleScript "एक त्रुटि" संदेश मिला।


0

अलग पूछने के लिए आपका स्वागत है! आपने इसे उत्तर के रूप में पोस्ट किया है, जो केवल उन चीजों के लिए है जो सीधे पूछे गए प्रश्न का उत्तर देते हैं। पूछो अलग पर जवाब सिर्फ एक लिंक से अधिक होने की जरूरत है। लिंक शामिल करना ठीक है, लेकिन कृपया उसे संक्षेप में बताएं या उसका उत्तर दें। विचार उत्तर को अकेले खड़ा करने का है। कृपया अधिक जानकारी के लिए अक्सर पूछे जाने वाले प्रश्न देखें । धन्यवाद।
नाथन ग्रीनस्टीन

0

सभी उत्तरों को देखते हुए मैंने योसेमाइट के लिए निम्नलिखित समाधान लागू किया।

ऑटोमेटर का उपयोग करते हुए, मैंने निम्नलिखित कोड के साथ एक ऐप बनाया:

tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

इसे सहेजें, इसे एप्लिकेशन में जोड़ें। "AppleScript एडिटर को सहायक एक्सेस की अनुमति नहीं है" से बचने के लिए, सिस्टम वरीयताएँ-> सुरक्षा और गोपनीयता-> गोपनीयता टैप-> एक्सेसिबिलिटी प्रविष्टि पर जाएं और अपना ऐप जोड़ें।

अगर मेरी तरह आप एक शॉर्टकट चाहते हैं, तो ऑटोमेटर में लॉन्च ऐप के साथ एक नया ऐप्पल स्क्रिप्ट बनाएं और अपना ऐप चुनें। फिर सिस्टम वरीयताएँ-> कीबोर्ड-> शॉर्टकट टैब-> सेवा प्रविष्टि पर जाएं और सूची के अंत में, अपनी स्क्रिप्ट का शॉर्टकट असाइन करें।

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