मैं कमांड लाइन से मिशन कंट्रोल शॉर्टकट कैसे बदल सकता हूं?


11

मैं लंबे समय से इसका पता लगाने की कोशिश कर रहा हूं। मेरे पास एक बहुत विशिष्ट मैक ओएस प्रोविजनिंग स्क्रिप्ट है:

https://gist.github.com/ryanpcmcquen/b2e608311f286a4ab3e1

मैं सब होना करने के लिए मिशन नियंत्रण शॉर्टकट बदलने चाहते हैं Ctrl+ Alt+ ...के बजाय Ctrl+ ...। उदाहरण के लिए, मिशन नियंत्रण को सक्रिय करने के लिए डिफ़ॉल्ट है: Ctrl+ Up। मैं इसे Ctrl+ Alt+ में बदलना चाहूंगा Up, क्योंकि वर्तमान शॉर्टकट मैं उपयोग किए जाने वाले अन्य कार्यक्रमों के साथ संघर्ष करता है।

ध्यान दें कि मुझे पहले से ही पता है कि यह कैसे करना है System Preferences > Keyboard > Shortcuts, मैं एक पटकथा, कमांड लाइन समाधान की तलाश कर रहा हूं।

संपादित करें: @ user3439894 के लिए धन्यवाद, मैं वहाँ गया और एक स्क्रिप्ट बनाई जिसमें मैं चाहता हूँ कि वे क्या चाहते हैं, सभी प्लिस्ट कुंजी बदल दें। एकमात्र मुद्दा यह है, यह काम नहीं करता है। :-(

यह है, जो कि अभी तक मेरे पास है:

#!/bin/bash
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 32 "{enabled = 1; value = { parameters = (65535, 126, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 33 "{enabled = 1; value = { parameters = (65535, 125, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 34 "{enabled = 1; value = { parameters = (65535, 126, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 35 "{enabled = 1; value = { parameters = (65535, 125, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 79 "{enabled = 1; value = { parameters = (65535, 123, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 80 "{enabled = 1; value = { parameters = (65535, 123, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 81 "{enabled = 1; value = { parameters = (65535, 124, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 82 "{enabled = 1; value = { parameters = (65535, 124, 3014656); type = standard; }; }"
chown -Rf `whoami` ~/Library/Preferences/com.apple.symbolichotkeys.plist;
defaults read com.apple.symbolichotkeys

क्या आपने कभी इसके लिए कोई समाधान निकाला?
नाथन

@ नथन, नोप। मैं अभी चूक के साथ रोल करता हूं।
ryanpcmcquen 13

मेरा मुद्दा भी ऐसा ही था। शायद आप मेरे समाधान की कोशिश कर सकते हैं: apple.stackexchange.com/questions/344494/…
नाथन

@ नथन, ऐसा लगता है कि आपके समाधान के लिए मैन्युअल हस्तक्षेप की आवश्यकता है। मैंने अभी सीखा कि कैसे अन्य कार्यक्रमों को बदलने के लिए मैं अलग-अलग हॉटकीज़ का उपयोग करता हूं। हैमरस्पून एफटीडब्ल्यू।
ryanpcmcquen 14

कमांड के इस हिस्से type = standard;को वास्तव में type = 'standard';आसपास के उद्धरणों पर ध्यान देना चाहिए 'standard'। हालांकि, कभी-कभी सही ढंग से बनाई गई कमांड लाइन के साथ भी परिवर्तन केवल प्रभावी नहीं होता है, यहां तक ; killall -u $USER cfprefsdकि defaults कमांड के अंत में भी जोड़ा जाता है । इसके अलावा .plistइस उपयोग के मामले में फ़ाइल के लिए पूर्ण पथ आवश्यक नहीं है और बस उदाहरण के लिए defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys ...और शेष कमांड सभी आवश्यक है।
user3439894

जवाबों:


5

यह एक सीधा जवाब नहीं है, हालांकि मुझे उम्मीद है कि यहां प्रस्तुत जानकारी आपको सीधे उत्तर देने में मदद करेगी।

मैं आपको बता सकता हूं कि जब आप कंट्रोल-अप एरो से कंट्रोल-ऑप्शन-अप एरो तक मिशन कंट्रोल के लिए डिफॉल्ट कीबोर्ड शॉर्टकट बदलते हैं तो कौन सी फाइल में क्या बदलाव होते हैं। यह "32" डिक्शनरी के "वैल्यू" डिक्शनरी में "पैरामीटर्स" का "आइटम 2 नंबर" है और /Users/$USER/Library/Preferences/com.apple.symbolichotkeys.plistफाइल में "एपलसिम्बलिकहॉटकेय्स" का डिक्शनरी है ।

यहां फ़ाइल संरचना defaults readका प्रतिनिधित्व है com.apple.symbolichotkeys.plistक्योंकि यह ऊपर परिभाषित परिस्थितियों के तहत किए गए परिवर्तनों से संबंधित है।

कंट्रोल-अप एरो के डिफ़ॉल्ट के साथ मिशन कंट्रोल

{
    AppleSymbolicHotKeys =     {
        32 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    2359296
                );
                type = standard;
            };
        };
        34 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    2490368
                );
                type = standard;
            };
        };
    };
}

मिशन कंट्रोल को कंट्रोल-ऑप्शन-अप एरो में बदल दिया

{
    AppleSymbolicHotKeys =     {
        32 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    2883584
                );
                type = standard;
            };
        };
        34 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    3014656
                );
                type = standard;
            };
        };
    };
}

मैन पेज का BUGS अनुभाग defaultsकहता है:

डिफॉल्ट को बहुत ही जटिल तरीकों से संरचित किया जा सकता है, जिससे उपयोगकर्ता को इस कमांड के साथ प्रवेश करना मुश्किल हो जाता है।

और यह एक आदर्श उदाहरण है क्योंकि यह defaultsलक्ष्य सरणी तत्वों को लक्ष्य मान लिखने के लिए उपयोग करने के लिए एक बहुत ही जटिल कमांड लाइन होगी , अगर यह भी संभव है। बस एक FYI करें ... यदि आप defaults write com.apple.symbolichotkeys ...कमांड बनाने का प्रयास करने जा रहे हैं तो सुनिश्चित करें कि आपने पहले लक्ष्य फ़ाइल का बैकअप लिया है।

एक अन्य विकल्प सिस्टम वरीयताएँ GUI को नेविगेट करके सेटिंग्स को बदलने के लिए AppleScript का उपयोग करना है और वह भी शीर्ष स्तर की वस्तु को सेट करने की तुलना में थोड़ा जटिल होगा, जो यहां लक्ष्य नहीं है। मुझे यकीन नहीं है कि यह संभव है, लेकिन अगर मुझे एक स्वचालित तरीके की आवश्यकता होती है, तो मैं यह पता लगाऊंगा हालांकि मेरे पास किसी भी तरीके का पता लगाने का समय नहीं है, क्षमा करें।

कम से कम अब आप जानते हैं कि कहाँ और कहाँ से परिवर्तन होता है आप या तो इसे अपने दम पर समझ सकते हैं या इस छोटे से और अधिक जानने के साथ अतिरिक्त सहायता प्राप्त कर सकते हैं।

यहाँ com.apple.symbolichotkeys.plistफ़ाइल के Xcode में एक क्लिप की गई छवि है ।

यहाँ छवि विवरण दर्ज करें

BTW मैंने तीसरे पक्ष की उपयोगिता का उपयोग करते हुए परिवर्तनों को फँसा लिया जो कि फाइल सिस्टम परिवर्तनों को लॉग करता है और फिर इस जानकारी को प्रदान करने के लिए उस जानकारी को अधिक मानवीय पठनीय आउटपुट में परिवर्तित करता है।


यह उचित प्लिस्ट फ़ाइलों को बदलने के लिए प्रतीत होता है, एकमात्र मुद्दा यह है कि शॉर्टकट वास्तव में नहीं बदलते हैं, रिबूट के बाद नहीं, फ़ाइल को फिर से पढ़ना, या कुछ भी।
ryanpcmcquen

इस "थर्ड पार्टी यूटिलिटी का क्या नाम है जिसने फाइल सिस्टम में बदलाव किया और फिर उस सूचना को अधिक मानवीय पठनीय आउटपुट में बदल दिया"?
एलन बार्गी

1
@ एलेन बारगी, IIRC यह शायद filemonवह स्रोत कोड के रूप में "मैक ओएस एक्स इंटरनल्स - टू द एप्पल के कोर" पुस्तक से एक्स्ट्रा का हिस्सा था filemon.cजिसे मैंने अपने सिस्टम पर एक निष्पादन योग्य के लिए संकलित किया था। मैंने तब बदलावों से ठीक पहले बनाई गई टाइम मशीन बैकअप से फाइल के खिलाफ इसकी वर्तमान स्थिति की बदली हुई फ़ाइल में अंतर की तुलना की। आप मूल fs_usage कमांड का उपयोग भी कर सकते हैं ।
user3439894

@ryanpcmcquen आपका लिंक टूट गया है
charlesreid1

@ charlesreid1, ओह ठीक है, यह काम नहीं किया।
19p में ryanpcmcquen

0

यह मेरी सिफारिश है: इस तरह के अनुकूलन को बढ़ाने के लिए एक उपयोगिता का उपयोग करें जैसे कि कारबिनियर

एक डेवलपर के रूप में, मैं यह कहना चाहता हूं कि व्यक्तिगत रूप से मैं इसे एक आकर्षक और टैंटलिंग मुद्दा मानता हूं, और यह वास्तव में पर्दे के पीछे मैकुलस के बदसूरत, काले पक्ष को दिखाता है, जो केवल सॉफ्टवेयर देव और हैकर्स सही मायने में कर सकते हैं ...

समस्या काफी सरल है: मैं बस अपने स्वयं के बंधन के लिए डिफ़ॉल्ट कुंजी संयोजन को फिर से तैयार करना चाहता हूं।

पृथ्वी पर यह इतना मुश्किल / जटिल क्यों है? मैं एक समाधान का पता लगाने और पोस्ट करने का इरादा रखता हूं ... देखते रहें।


धन्यवाद, मैं यह देखने के लिए उत्सुक हूं कि आपको क्या पता है। लेकिन बाहरी प्रोग्राम को डाउनलोड करने में मैक के मानक इंटरफेस के माध्यम से उन्हें सेट करने में समय लगता है, मैं अभी भी एक अंतर्निहित कमांड लाइन समाधान की उम्मीद कर रहा हूं।
23
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.