Bu Steven C. için bir zeyilname. Howell'in cevabı.
İskandinav klavyesine sahip yeni bir MacBook Pro'm var. Bu yeni model artık benim için önemli bir engel olan bir Esc anahtarına sahip değil.
Esc'yi üretmek için aşağıdakilerin § tuşunu (sol üst, sol ve 1 sekme tuşlarının) - bugün daha önce bir şey için hiç kullanmadığımı sandığım - çevireceğini keşfettim.
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000029}]}'
Apple'ın belgelerinde (Steven'ın cevabına bağlı olarak) bu, "ABD Dışında Klavye \ 've |" şeklinde etiketlenmiştir. (0x64).
"ABD dışı" tuşların birçoğunu bulmak zor, çünkü genellikle kullandığınız klavyede farklı bir etiketi olan tuşlara atıfta bulunuyorlar. (Ben de "Aksan işareti ve tilde" benim klavyede üreten sola kayma ve z arasındaki anahtarı atıfta keşfetti <
hangi anahtar karşılık gelir "Non-US kuramadı. #
Ve ~
" ben buldum bir kez daha fazla deneme etmedi anahtarım.) Denemek istiyorsanız, ihtiyacınız olan anahtarı bulana kadar betiği terminalde çalıştırmayı deneyin:
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
Bu, anahtar kodlar üzerinde dolaşır ve sizin için özellikle yararlı olmayan bir anahtarın deneme ve yanılma yoluyla bulabileceğiniz umuduyla her seferinde bir tane değiştirir. Sizden istediğinde bir şeyler yazmayı deneyin - g
beklediğiniz yerine bir alırsanız, doğru anahtar kodunu buldunuz. ( Sizin için uygun bir seçenek değilse 0x70000000a
başka bir şeyle değiştirin g
. Belki g
anahtarı yeniden eşleştirmek mi istiyorsunuz ?) Yazma işlemini tamamladığınızda, bir sonraki tuşa geçmek için Enter tuşuna basmanız yeterlidir.
Buna değecek olursa, döngünün içindeki son komut tüm UserKeyMapping
ayarları nasıl değiştirdiğinizdir :
hidutil property --set '{"UserKeyMapping":[{}]}'
Başlangıçta çalıştırdığınızda hidutil property --get UserKeyMapping
o üretir
(null)
ancak, ayarı değiştirmek için bu değeri geri besleyemezsiniz (veya daha doğrusu bu girişi kabul etmiyor, yok sayar).
(Eğer Terminal haberiniz yoksa, sadece yapıştırma / şeyi kopyalayıp for
kadar done
sizin de bash$
istemi veya benzeri.)
Gereğince bu ilgili yığın taşması soruya evinizdeki dizininde bir komut dosyasındaki komutu koyabilirsiniz ve eklemek launchd
bu değişiklik kalıcı kılmak için yapılandırma.
Bazı okuyucular bunu kendi başlarına yapmakta rahat olmazlarsa, işte sizin için bunu yapan hızlı bir senaryo. Yine, bunu Terminal isteminde kopyala / yapıştır.
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
Açıkçası 0x700000064
, komut dosyasında değiştirmeniz gerekenden başka bir anahtarla sona erdiyseniz ya da dosyada "$HOME"/bin/userkeymapping
zaten yukarıdakileri koştuysanız, yaratma işlemi biter.