এটি স্টিভেন সি হাওলের উত্তরের একটি সংযোজন।
স্ক্যান্ডিনেভিয়ান কীবোর্ড সহ আমার কাছে একটি নতুন ম্যাকবুক প্রো রয়েছে। এই নতুন মডেলের আর কোনও ইস্ক কী নেই, যা আমার জন্য একটি গুরুত্বপূর্ণ প্রতিবন্ধক।
আমি আবিষ্কার করেছি যে নিম্নলিখিতটি § কী (উপরের বাম, 1 এর বাম এবং উপরে ট্যাব কী) অনুবাদ করবে - যা আমি মনে করি না যে আমি আজকের আগে কোনও কিছুর জন্য ব্যবহার করেছি - ইস্ক তৈরি করার জন্য।
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000029}]}'
অ্যাপলের ডকুমেন্টেশনে (স্টিভেনের উত্তর থেকে সংযুক্ত) এটিকে "কীবোর্ড অ-মার্কিন ডলার এবং |" হিসাবে লেবেলযুক্ত করা হয়েছে (0x64)।
বেশ কয়েকটি "নন-ইউএস" কীগুলি আবিষ্কার করা শক্ত কারণ তারা সাধারণত এমন কীগুলি উল্লেখ করে যা আপনার ব্যবহার করা কীবোর্ডে আলাদা লেবেল রয়েছে। (আমি এটিও আবিষ্কার করেছি যে "গ্রাভ অ্যাকসেন্ট এবং টিল্ড" বাম পাশের শিফট এবং জেড এর মধ্যে থাকা কীটি বোঝায় যা আমার কীবোর্ডে উত্পন্ন হয় which <
আমি কোন কী "নন-ইউএস #
এবং ~
" এর সাথে সাদৃশ্যপূর্ণ তা প্রতিষ্ঠা করতে অক্ষম ছিলাম এবং আমি খুঁজে পাওয়ার পরেও আরও পরীক্ষা নিইনি) আমার কী।) আপনি যদি পরীক্ষা করতে চান তবে আপনার প্রয়োজনীয় কীটি না পাওয়া পর্যন্ত টার্মিনালে স্ক্রিপ্টটি চালানোর চেষ্টা করুন:
for ((i=1;i<=128;++i)); do
printf '0x7000000%0x\n' "$i"
printf '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000%0x,"HIDKeyboardModifierMappingDst":0x70000000a}]}' "$i" |
xargs -0 hidutil property --set >/dev/null
read -p "Type some stuff: "
hidutil property --set '{"UserKeyMapping":[{}]}' >/dev/null
done
এটি কীকোডগুলির উপরে লুপ করে এবং একবারে এটির পরিবর্তিত করে, এই আশায় যে আপনি পরীক্ষার মাধ্যমে একটি কীটি খুঁজে পেতে পারেন যা আপনার জন্য বিশেষভাবে কার্যকর নয়। যখন আপনার কাছে জিজ্ঞাসা করা হয় তখন কিছু টাইপ করার চেষ্টা করুন - আপনি g
যা প্রত্যাশা করেছিলেন তার পরিবর্তে যদি আপনি কিছু পান তবে আপনি সঠিক কী কোডটি পেয়ে গেছেন । ( 0x70000000a
যদি আপনার g
পক্ষে সুবিধাজনক পছন্দ না হয় তবে অন্য কোনও কিছুর বদলে যেতে পারেন Maybe সম্ভবত আপনি g
কীটি পুনর্নির্মাণ করতে চান ?) আপনি টাইপিং সম্পন্ন করার পরে, পরবর্তী কীটিতে এগিয়ে যাওয়ার জন্য কেবল এন্টার টিপুন।
এটি মূল্যবান কিসের জন্য, লুপের ভিতরে থাকা সর্বশেষ আদেশটি হ'ল আপনি কীভাবে সমস্ত UserKeyMapping
সেটিংস জ্যাপ করেন :
hidutil property --set '{"UserKeyMapping":[{}]}'
আপনি যখন প্রাথমিকভাবে চালান hidutil property --get UserKeyMapping
এটি উত্পাদন করে
(null)
তবে মনে হচ্ছে সেটিংসটি জ্যাপ করার জন্য আপনি এই মানটি ফিরিয়ে দিতে পারবেন না (বা বরং এটি এই ইনপুটটিকে গ্রহণ করে কিন্তু উপেক্ষা করে)।
(আপনি যদি টার্মিনালের সাথে অপরিচিত থাকেন তবে আপনার প্রম্পট বা অনুরূপ for
না হওয়া পর্যন্ত কেবল জিনিসটি অনুলিপি করুন / আটকান ))done
bash$
অনুযায়ী এই সংশ্লিষ্ট স্ট্যাক ওভারফ্লো প্রশ্ন আপনি আপনার বাড়িতে ডিরেক্টরির মধ্যে একটি স্ক্রিপ্ট ফাইলে কমান্ড রাখা এবং আপনার থেকে এটি যোগ করতে পারেন launchd
কনফিগারেশন এই পরিবর্তনের অনড় রাখার।
যদি কিছু পাঠক নিজেরাই এটি করতে স্বাচ্ছন্দ্য বোধ না করে থাকেন তবে এখানে একটি দ্রুত স্ক্রিপ্ট রয়েছে যা এটি আপনার জন্য করে। আবার, টার্মিনাল প্রম্পটে এটিকে অনুলিপি করুন / আটকান।
mkdir -p "$HOME"/bin
printf '%s\n' '#!/bin/sh' \
'hidutil property --set '"'"'{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000029}]}'"'" \
>"$HOME"/bin/userkeymapping
chmod 755 "$HOME"/bin/userkeymapping
cat<<: >"$HOME"/Library/LaunchAgents/userkeymapping.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>Label</key>
<string>userkeymapping</string>
<key>ProgramArguments</key>
<array>
<string>$HOME/bin/userkeymapping</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
:
launchctl load "$HOME"/Library/LaunchAgents/userkeymapping.plist
স্পষ্টতই যদি আপনি 0x700000064
স্ক্রিপ্টে বা ফাইলটিতে "$HOME"/bin/userkeymapping
এটি পরিবর্তন করার প্রয়োজনের চেয়ে অন্য কোনও কী দিয়ে শেষ করেন তবে আপনি যদি ইতিমধ্যে উপরেরটি চালিয়ে যান তবে এটি তৈরি শেষ হয়।