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


16

আমি আমার ম্যাকবুকের ইনটিনাল সেটআপটি স্বয়ংক্রিয় করার চেষ্টা করছি, এর মধ্যে রয়েছে সফ্টওয়্যার ইনস্টল করা এবং ওএস এক্স কনফিগারেশনটি আমার প্রয়োজন পরিবর্তন করা।

আমি ডিফল্টগুলি দিয়ে মডিফায়ার কীগুলি আপডেট করার চেষ্টা করেছি, কোডটি নিম্নরূপ:

# The apple keyboard id (1452-567-0) should probably be modified in case you use other different model 
COMPUTER_UUID=`ioreg -rd1 -c IOPlatformExpertDevice | grep -E '(UUID)' | awk '{print $3}' | tr -d \"`
defaults write ~/Library/Preferences/ByHost/.GlobalPreferences.$COMPUTER_UUID com.apple.keyboard.modifiermapping.1452-567-0 '( { HIDKeyboardModifierMappingDst = 2;   HIDKeyboardModifierMappingSrc = 0; } )'

সমস্যাটি মনে হয় যে প্যাটার্নটি পরিবর্তন করা হলেও সিস্টেম পছন্দগুলি আপডেটটি ধরে না, এমনকি কম্পিউটার পুনরায় আরম্ভ করে না।

স্নো চিতাবাঘে এই অপারেশন করার কোনও উপায় আছে কি?

ধন্যবাদ।


defaults -currentHost write -g key 'value'পরিবর্তে ব্যবহার করুন। এখনও কাজ করে না।
ড্যানিয়েল বেক

1
এই লোকটি অনুরূপ কিছু চেষ্টা করেও ব্যর্থ হয়েছিল। অ্যাপলস্ক্রিপ্ট জিইউআই স্ক্রিপ্টিংটি কি আপনার জন্য কার্যকর বিকল্প হতে পারে?
ড্যানিয়েল বেক

উত্তর:


13

এটি গুরুত্বপূর্ণ জন্য defaultsকমান্ড কী সঠিক "কীবোর্ড আইডি" ব্যবহার, এটা মনে করা হয়:com.apple.keyboard.modifiermapping.$VendorID-$ProductID-0

উদাহরণস্বরূপ, আমার ম্যাকবুক এয়ারের অভ্যন্তরীণ কীবোর্ডটি ব্যবহার করে: com.apple.keyboard.modifiermapping.1452-579-0 যখন আমার আইম্যাকের বহিরাগত কীবোর্ড ব্যবহার করেcom.apple.keyboard.modifiermapping.1118-219-0

সঠিক "কীবোর্ড আইডি" কীভাবে পাবেন? কমান্ড লাইনে আপনি ব্যবহার করতে পারেন:

ioreg -p IOUSB -c IOUSBDevice | grep -e class -e idVendor -e idProduct

প্রাসঙ্গিক পরামিতিগুলির সাথে আপনার USB ডিভাইসের একটি তালিকা পেতে:

  [...]
  +-o Natural® Ergonomic Keyboard 4000@fa140000  <class IOUSBDevice, id 0x100000452, registered, matched, active, busy 0 (115 ms), retain 12>
        "idProduct" = 219
        "idVendor" = 1118

আমার অনুমান যে তৃতীয় প্যারামিটার ("-0" অংশ) একটি "কাউন্টার", যদি আপনার একই ধরণের একাধিক কীবোর্ড থাকে।

সুতরাং, আমার বাহ্যিক কীবোর্ডে ক্যাপসলক কীটি স্যুইচ করতে আমি এখন ব্যবহার করতে পারি:

defaults -currentHost write -g com.apple.keyboard.modifiermapping.1118-219-0 -array-add '<dict><key>HIDKeyboardModifierMappingDst</key><integer>-1</integer><key>HIDKeyboardModifierMappingSrc</key><integer>0</integer></dict>'

এবং, সম্পূর্ণতার জন্য, ব্যবহার করার জন্য সম্ভাব্য কী কোডগুলির একটি তালিকা এখানে রয়েছে ( ম্যাক ওএস এক্স ইঙ্গিত থেকে ):

  • কিছুই নয় - –1
  • ক্যাপস লক - 0
  • শিফ্ট (বাম) - 1
  • নিয়ন্ত্রণ (বাম) - 2
  • বিকল্প (বাম) - 3
  • কমান্ড (বাম) - 4
  • কিপ্যাড 0 - 5
  • সহায়তা - 6
  • শিফ্ট (ডান) - 9
  • নিয়ন্ত্রণ (ডান) - 10
  • বিকল্প (ডান) - 11
  • কমান্ড (ডান) - 12

আপডেট: লরি রন্তাকে ধন্যবাদ এখানে একটি কমান্ড যা ব্লুটুথ এবং ইউএসবি কীবোর্ডগুলির জন্য কাজ করে:

ioreg -n IOHIDKeyboard -r | grep -e 'class IOHIDKeyboard' -e VendorID\" -e Product

যা আপনাকে কিছুটা আলাদা আউটপুট দেয়:

+-o IOHIDKeyboard  <class IOHIDKeyboard, id 0x100000489, registered, matched, active, busy 0 (0 ms), retain 8>
  |   "Product" = "Apple Wireless Keyboard"
  |   "VendorID" = 1452
  |   "ProductID" = 570

আপনি কয়েকটি ওয়েবসাইটে যে ডিফল্ট মান খুঁজে পেতে পারেন তার সংক্ষিপ্ত সংস্করণটি ব্যবহার করবেন না'{ HIDKeyboardModifierMappingDst = -1; HIDKeyboardModifierMappingSrc = 0; }' , কমপক্ষে আমার জন্য ডিকের মানগুলিতে "-1" এবং "0" এর পরে স্ট্রিং হিসাবে ব্যাখ্যা করা হবে, পূর্ণসংখ্যা নয়। এটি একটি অদ্ভুত অবস্থার দিকে নিয়ে যায় যেখানে পছন্দগুলি পরিবর্তিত পরিবর্তক কীগুলি দেখায়, তবে কীবোর্ডটি আসলে সেভাবে আচরণ করে না।
অরেঞ্জনহেইন

1
ioreg -n IOHIDKeyboard -rব্লুটুথ কীবোর্ডগুলিও অন্তর্ভুক্ত করবে।
ল্রি

আমি এটি করেছি তবে এটি কোনও প্রভাব ফেলবে বলে মনে হচ্ছে না। এটির কাজ করার জন্য আমার কি পুনরায় চালু করার দরকার আছে?
সাইমনডাব্লু 5'14

1
@ সিমোনডাব্লু আমিও এর অভিজ্ঞতা পেয়েছি। আমি দেখতে পেয়েছি যে কেবল লগ আউট এবং আবার ফিরে প্রবেশ করা সেটিংটি কার্যকর করে।
রায়ান লং

এটি মজাদার নয় :(
সাইমনডাব্লু

2

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

আমি অ্যাপলস্ক্রিপ্ট এবং সিস্টেম পছন্দসমূহ জিইউআই ব্যবহার করে আমার ক্ষেত্রে এটি "ভুল উপায়ে" সমাধান করার সিদ্ধান্ত নিয়েছি। এটি একটি কুরুচিপূর্ণ হ্যাক, কিন্তু এটি কার্যকর! আপনার মাইলেজ পরিবর্তিত হতে পারে.

--The beginning of the name of the target keyboard (to type into the drop-down selection list)
set keyboardName to "natural"

--reboot system preferences to make GUI state more predictable
tell application "System Preferences"
    quit
    delay 1
    activate
    delay 1
    activate
end tell

tell application "System Events"

    --Bring up keyboard prefs
    key code 53 --escape
    keystroke "f" using command down
    delay 0.5
    key code 53 --escape
    keystroke "keyboard"
    delay 0.5
    key code 36 --return
    delay 1

    --Open modifier keys submenu
    repeat 4 times
        keystroke tab using shift down
        --delay 0.1
    end repeat
    --delay 0.1
    keystroke space
    delay 0.1

    --Select keyboard
    keystroke space
    keystroke keyboardName
    keystroke return
    delay 0.1

    --Select "option key" drop-down
    repeat 3 times
        keystroke tab
    end repeat

    delay 0.5

    --Open drop-down and go to top
    keystroke space
    delay 0.1
    repeat 4 times
        key code 126 --up arrow
    end repeat

    --Select "command" option
    repeat 3 times
        key code 125 --down arrow
    end repeat
    delay 0.1

    keystroke return

    -- Select "command key" drop-down
    keystroke tab
    delay 0.1

    --Open drop-down and go to top
    keystroke space
    delay 0.1
    repeat 4 times
        key code 126 --up arrow
    end repeat

    --Select "command" option
    repeat 2 times
        key code 125 --down arrow
    end repeat
    delay 0.1

    keystroke return
    delay 0.1

    --Commit changes! phew.
    keystroke return
end tell

1

আমিও স্নো চিতাবাঘের অধীনে defaults writeআমার এইচআইডিকিবোর্ডমডিফায়ার ম্যাপিংএসসিআর এবং এইচআইডিকিবোর্ডমোডিফায়ার ম্যাপিংডিস্ট সেটিংসকে প্রভাবিত করতে (বা .plist ফাইল আপডেট করতে) অক্ষম হয়েছি ।

আমি আমার পিএস 2-থেকে-ইউএসবি কীবোর্ডকে সমর্থন করার জন্য আমার অতিথির অ্যাকাউন্টটিকে "প্রাক-জনবসতিপূর্ণ" করার চেষ্টা করছি (যার মধ্যে অপশন এবং কমান্ড অদলবদল রয়েছে)) অন্যান্য পৃষ্ঠাগুলির পরামর্শ "লগ আউট এবং লগ ইন ফিরে" সহায়তা করবে না; অতিথি অ্যাকাউন্টের "লগ আউট" আমার সমস্ত পরিবর্তন মুছে দেয়।

(আমি আছে সফলভাবে আমার "com.apple.dock" এবং "com.apple.menuextra.clock" plist ফাইল ডক এবং 24-ঘন্টার ঘড়ি কাস্টমাইজ করতে যথাক্রমে আপডেট, যা এটি আরও বেশি হতাশাজনক যে কীবোর্ড সংশোধনকারীদের জিতেছে 'তোলে টি কাজ ...)

"সিস্টেম প্রেফারেন্সস.এপ" কী করছে (যা আপাতদৃষ্টিতে কাজ করে) "ডিফল্ট" কী করছে তার সাথে তুলনা করার জন্য আমি "ডিটিআরএসএএসএফ" ব্যবহার করার চেষ্টা করেছি। নিকটতম আমি চিত্রটি দেখতে পারি, আমি এর লাইনগুলিতে বার্তাগুলি দেখতে পাই:

   Foundation`+[__NSOperationInternal _observeValueForKeyPath:ofObject:changeKind:oldValue:newValue:indexes:context:]+0x151
   Foundation`NSKeyValueNotifyObserver+0x81
   Foundation`NSKeyValueDidChange+0x1ca
   Foundation`-[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:usingBlock:]+0x176

যদি স্নো চিতাবাঘের অধীনে কাজ করে এমন কোনও সমাধান যদি কেউ জানতে পারে তবে আমি এটি শুনে খুশি হব ...


0
  • আপনি diffএই ফাইলটি ইউআই এর মতো তৈরি করছেন তা যাচাই করার জন্য আপনি দৌড়েছেন ?
  • আপনি যখন ইউআই ব্যবহার করেন তখন আর কী করা হচ্ছে তা চালান fs_usageবা lsofঅনুসন্ধান করুন।

fs_usageএএএএফআইটিটি আকর্ষণীয় কিছু দেখায় না, এবং আমি যাচাই করেছি (প্রশ্নের মন্তব্যে আমার সংশোধিত কমান্ড সহ) যা ফলাফলটি প্রত্যাশা হিসাবে প্রদর্শিত হবে।
ড্যানিয়েল বেক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.