https://qiita.com/zizi4n5/items/7974d4751212214dab4e
こちらを見て設定しようとしていたのだけど、windows keyboard対応していなかったので書いた。(&調べた)
Karabiner-elementsがBig Sur対応するのはもうちょいかかるのかな...
自分の環境
Macbookpro 2019 16inch
Microsoft Natural Ergonomic Keyboard 4000
だけど、おそらく他の最近のmac + win向けkeyboardで問題なく動くはず
できること
Windows JIS keyboardの ”無変換", "変換","カタカナ/ひらがな" キーを、macの "英数", "かな" にマッピングして、"無変換"を押したらMacの"英数"が押された時の挙動をするし、 "変換,カタカナ/ひらがな"のキーを押したらMacの"かな"が押された時の挙動をするようになる
各種キーとそのキーコードについて
一応このあとのコードで記載されている謎の「0x7000000**」はそれぞれこれらのキーを指しています。
興味ない人は下の方までスルーして「やったこと」だけ読んでくだされ
キー | キーコード(hex) |
---|---|
無変換 | 0x70000008B |
変換 | 0x70000008A |
カタカナ/ひらがな | 0x700000088 |
英数 | 0x700000091 |
かな カナ | 0x700000090 |
0x7000000に、キーに対応する1byteを付記すればOK
例)
半角/全角 -> 0x700000035
※参考
https://developer.apple.com/library/archive/technotes/tn2450/_index.html
http://www2d.biglobe.ne.jp/~msyk/keyboard/layout/usbkeycode.html
やったこと
やったことは先のqiitaの記事に書いてあることとほぼイコール
~/Library/LaunchAgents
に以下の com.example.KeyRemapping.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>com.example.KeyRemapping</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/hidutil</string>
<string>property</string>
<string>--set</string>
<string>{"UserKeyMapping":[
{
"HIDKeyboardModifierMappingSrc": 0x70000008B,
"HIDKeyboardModifierMappingDst": 0x700000091
},
{
"HIDKeyboardModifierMappingSrc": 0x70000008A,
"HIDKeyboardModifierMappingDst": 0x700000090
},
{
"HIDKeyboardModifierMappingSrc": 0x700000088,
"HIDKeyboardModifierMappingDst": 0x700000090
}
]}</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
これで再起動したらいつもキーが希望通り動くようになるはず。
もしなんか動かないなと言う時は system.logにエラー出たりしてると思うので確認する。
Aug 15 17:08:51 NariMacBookPro2019 com.apple.xpc.launchd[1] (com.example.KeyRemapping[767]): Service exited with abnormal code: 1
それでもわからんという場合はshellで以下みたいな感じのコマンドでも打って、単体でエラーとか出てないか確認して下さい。shellでこのコマンド打てばキーマップがいきなり変わります。
キーのコードは好きなようにいじれば良いっす。
hidutil property --set '{"UserKeyMapping":[
{
"HIDKeyboardModifierMappingSrc": 0x70000008B,
"HIDKeyboardModifierMappingDst": 0x700000091
},
{
"HIDKeyboardModifierMappingSrc": 0x70000008A,
"HIDKeyboardModifierMappingDst": 0x700000090
},
{
"HIDKeyboardModifierMappingSrc": 0x700000088,
"HIDKeyboardModifierMappingDst": 0x700000090
}
]}'
おまけ
そこそこ特殊なアプリをmacに入れてたりするが今んとこBig sur上で動いていないのは Day-oぐらい..かな