কমান্ড লাইন থেকে পরিবর্তনকারী কীগুলি পরিবর্তন করা হচ্ছে


13

ভারী ইম্যাক্স ব্যবহারকারী হিসাবে, আমি আমার ক্যাপস লক কীটি পুনরায় তৈরি করতে চাই সিটিআরএল কী হিসাবে কাজ করতে। এটি করার জন্য কীবোর্ড পছন্দ বাক্সে একটি সুবিধাজনক ডায়ালগ রয়েছে। তবে সমস্যাটি হ'ল কেউ এই অ্যাকাউন্টটিতে অগ্রাধিকার সেট না করে অন্য অ্যাকাউন্টে লগ ইন করার পরে এই সেটিংসটি হারিয়ে যায়।

সুতরাং কমান্ড লাইন থেকে পছন্দ পেন ডায়ালগ হিসাবে একই কাজ করার কোন উপায় আছে?


2
ডিফল্ট কমান্ড সরঞ্জামের মাধ্যমে মডিফায়ার কী ম্যাপিংগুলি আপডেট করার সম্ভাব্য সদৃশ । যদিও অন্য প্রশ্নটি historতিহাসিকভাবে নতুন, তবে এর আরও ভাল (আসলে কাজ করা) উত্তর রয়েছে।
টেক্রাফ

উত্তর:


7

পছন্দ পরিবর্তন এবং চলমান, defaults -currentHost read -gআপনাকে কী পরিবর্তনগুলি লেখা হচ্ছে তা দেখায়। আমি এটি একটি স্বয়ংক্রিয় করতে একটি ছোট বাশ স্ক্রিপ্ট লিখতে যাচ্ছিলাম, কিন্তু দেখে মনে হচ্ছে যে আমি ঘুষি মারলাম:

#!/bin/bash                                                                      

mappingplist=com.apple.keyboard.modifiermapping

if [ $1 == "emacs" ]; then
    echo "Switching to emacs modifiers"
    defaults -currentHost write -g $mappingplist '(                              
                {                                                                
            HIDKeyboardModifierMappingDst = 4;                                   
            HIDKeyboardModifierMappingSrc = 2; },                                
                {                                                                
            HIDKeyboardModifierMappingDst = 12;                                  
            HIDKeyboardModifierMappingSrc = 10;                                  
        },                                                                       
                {                                                                
            HIDKeyboardModifierMappingDst = 2;                                   
            HIDKeyboardModifierMappingSrc = 4;                                   
        },                                                                       
                {                                                                
            HIDKeyboardModifierMappingDst = 10;                                  
            HIDKeyboardModifierMappingSrc = 12;                                  
        })'


else
    echo "Switching to default modifiers"
    defaults -currentHost delete -g $mappingplist
fi

স্ক্রিপ্টটি একটি আর্গুমেন্ট গ্রহণ করে, যদি আর্গুমেন্টটি ইম্যাক্স হয়, তবে এটি কমান্ড এবং নিয়ন্ত্রণকে অদলবদল করে, যদি তর্কটি অন্য কোনও কিছু থেকে থাকে তবে এটি ডিফল্টগুলি পুনরুদ্ধার করে।

http://forums.macrumors.com/showthread.php?t=949280


স্নো চিতাবাঘের সাথে এটি আমার কাছ থেকে কাজ করবে বলে মনে হয় না, তবে এটি সুস্পষ্টভাবে সঠিক দিকের এক ধাপ।
পান্টুলিস

@ পিথ ... -gপতাকা কি? আমি ম্যান পেজে এটি দেখতে পাইনি defaults। এছাড়াও, দেখে মনে হচ্ছে এটি দুটি মানের অদলবদল করে: 4 সহ 2 এবং 10 এর সাথে 12, তবুও কেবলমাত্র দুটি পরিবর্তনকারী রয়েছে। আপনি কি বিশদভাবে বলতে পারেন, বা আপনি কেবল আউটপুটটি দেখেছেন তবে তারা আসলে কী প্রতিনিধিত্ব করে তা জানেন না? (প্রথমে আমি চারটি মূল কোড সন্দেহ করি - দুটি বাম দিকে, দুটি ডানদিকে - তবে এগুলি কী কোড হিসাবে উপস্থিত হয় না, কমপক্ষে কীবোর্ড ড্রাইভারের দ্বারা উল্লিখিত হিসাবে নয়।)
মার্ক এ ডোনহো

আপনার পরামর্শ অনুসারে আমি ম্যাপিংগুলি করি তবে এটি ইউআইতে ম্যাপযুক্ত প্রদর্শিত হলেও এটি কার্যকর হবে বলে মনে হচ্ছে না। এটি কেবল ইউআইয়ের মাধ্যমে করা কি মনে হচ্ছে কাজ করছে ... কোনও ধারণা?
সাইমনডাব্লু

3

আপনি পিসি কেয়ারবোর্ডহ্যাকের সাহায্যে কীরেম এমপি 4 ম্যাকবুক ব্যবহার করতে পারেন । এটি আপনাকে এমএস অ্যাপ্লিকেশনগুলির মতো কোকো ব্যবহার না করে এমন কোনও ম্যাক অ্যাপে ইমাস কীগুলি ব্যবহার করার অনুমতি দেয়।


2

"ডিফল্ট কমান্ড সরঞ্জামের মাধ্যমে সংশোধনকারী কী ম্যাপিংগুলি আপডেট করা থেকে " :

defaults -currentHost write -g com.apple.keyboard.modifiermapping.1133-50475-0 -array '<dict><key>HIDKeyboardModifierMappingSrc</key><integer>0</integer><key>HIDKeyboardModifierMappingDst</key><integer>2</integer></dict>

পরিবর্তন 1133এবং 50475দেখানো বিক্রেতা এবং পণ্য আইডিতে ioreg -n IOHIDKeyboard -rsrc 0এবং dst -1অক্ষম হবে caps lock

defaults -currentHost write -g পরিবর্তন করা হবে:

~/Library/Preferences/ByHost/.GlobalPreferences.*.plist

পরিবর্তনগুলি প্রয়োগ করতে আপনাকে লগ আউট করতে হবে এবং ফিরে যেতে হবে। মানগুলি যদি স্ট্রিং হয় (@ পিথাইলেস এর উত্তরে যেমন) তবে সিস্টেমের পছন্দগুলিতে পরিবর্তনগুলি প্রদর্শিত হয় তবে সেগুলির কোনও প্রভাব থাকে না।

কীগুলির মান :

-1 none
0 caps lock
1 left shift
2 left control
3 left option
4 left command
5 keypad 0
6 help
9 right shift
10 right control
11 right option
12 right command

0

কয়েক উত্তর একসঙ্গে মিশ্রন আমি এই স্ক্রিপ্টের যে (কাজ বলে মনে হয় নিয়ে এসেছেন নিয়ন্ত্রণ ম্যাপিং ক্যাপস-লক )।

$ keyboard_id = "$(ioreg -n IOHIDKeyboard -r | grep -e VendorID\" -e ProductID | tr -d \"\|[:blank:] | cut -d\= -f2 | tr '\n' -)"
$ defaults -currentHost write -g "com.apple.keyboard.modifiermapping.${keyboard_id}0" '(
{
  HIDKeyboardModifierMappingDst = 2;
  HIDKeyboardModifierMappingSrc = 0;
})'

কেবল এমন সমস্যা যে এটি কোনও প্রভাব ফেলবে বলে মনে হচ্ছে না ... :(

আমি যদি এটি কাজ করে তা আপডেট করব।


0

আমি রাইট কমান্ডটি কেবলমাত্র রাইট অপশন কী দিয়ে অদলবদল করতে চেয়েছি ।

যখন আমি গ্লোবাল কমান্ড এবং অপশনটি সিস্টেমের পছন্দগুলিতে সেটআপ করি ...> কীবোর্ড> সংশোধক কী ..., সিস্টেমে নিম্নলিখিত কনফিগারেশন রয়েছে (যা প্রত্যাশায় কাজ করে):

$ defaults -currentHost read -g com.apple.keyboard.modifiermapping.1452-591-0
(
        {
        HIDKeyboardModifierMappingDst = 30064771299;
        HIDKeyboardModifierMappingSrc = 30064771298;
    },
        {
        HIDKeyboardModifierMappingDst = 30064771303;
        HIDKeyboardModifierMappingSrc = 30064771302;
    },
        {
        HIDKeyboardModifierMappingDst = 30064771298;
        HIDKeyboardModifierMappingSrc = 30064771299;
    },
        {
        HIDKeyboardModifierMappingDst = 30064771302;
        HIDKeyboardModifierMappingSrc = 30064771303;
    }
)

তবে আমি যখন এটি সংশোধন করব, নীচের মতো কেবল ডান দিকটি অদলবদল করতে - এটি কাজ করে না:

$ defaults -currentHost write -g com.apple.keyboard.modifiermapping.1452-591-0 '(
        {
        HIDKeyboardModifierMappingDst = 30064771303;
        HIDKeyboardModifierMappingSrc = 30064771302;
    },
        {
        HIDKeyboardModifierMappingDst = 30064771302;
        HIDKeyboardModifierMappingSrc = 30064771303;
    }
)'

এটি কারণ মানগুলি পূর্ণসংখ্যার হিসাবে নয় স্ট্রিং হিসাবে লেখা হয়। আপনি এটি ব্যবহার করে দেখতে পারেন:

$ plutil -convert xml1 -o - ~/Library/Preferences/ByHost/.GlobalPreferences.*.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.keyboard.modifiermapping.1452-591-0</key>
    <array>
        <dict>
            <key>HIDKeyboardModifierMappingDst</key>
            <string>30064771303</string>
            <key>HIDKeyboardModifierMappingSrc</key>
            <string>30064771302</string>
        </dict>
        <dict>
            <key>HIDKeyboardModifierMappingDst</key>
            <string>30064771302</string>
            <key>HIDKeyboardModifierMappingSrc</key>
            <string>30064771303</string>
        </dict>
    </array>
</dict>
</plist>

সুতরাং সেটিংটি আপডেট করার সঠিক উপায়টি এক্সএমএল ফর্ম্যাটটি ব্যবহার করছে:

$ defaults -currentHost write -g com.apple.keyboard.modifiermapping.1452-591-0 -array \
'<dict>
    <key>HIDKeyboardModifierMappingDst</key>
    <integer>30064771303</integer>
    <key>HIDKeyboardModifierMappingSrc</key>
    <integer>30064771302</integer>
</dict>' \
'<dict>
    <key>HIDKeyboardModifierMappingDst</key>
    <integer>30064771302</integer>
    <key>HIDKeyboardModifierMappingSrc</key>
    <integer>30064771303</integer>
</dict>'

শেষে, আপনাকে লগ অফ করে আবার লগ ইন করতে হবে।


আমি কি বলতে পারি না এই কাজ করতে পেরেছি? একটি রিবুট সম্ভবত প্রয়োজন?
উইলিয়াম

অই হ্যাঁ. আপনাকে লগ অফ করে আবার লগ ইন করতে হবে।
ভাইরাস_7

আমি এই প্রশ্নের উত্তর দেওয়ার চেষ্টা করছি আপেল.স্ট্যাকেক্সচেঞ্জ / প্রশ্নগুলি / ২৮০৮৫৫/২ আপনি কি চ্যাট করতে পারবেন? chat.stackexchange.com/rooms/38/ask-different-chat আমি আপনার শেষ কমান্ডটি চালানোর চেষ্টা করেছি এবং এটি আমার জন্য কিছু পরিবর্তন করে না।
উইলিয়াম

সবার আগে কারাবাইনার-এলিমেন্টগুলি সরান এবং আপনার সিস্টেমে কীবোর্ড কোড (1452-591-0) এবং কী কোডগুলি (30064771302, 30064771303) অভিযোজিত করুন।
ভাইরাস_7
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.