3
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

Organization

macOS Big Sur(ベータ版)でキー入力をリマップする(windows keyboard用)

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を作製

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にエラー出たりしてると思うので確認する。

/var/log/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ぐらい..かな

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
3
Help us understand the problem. What are the problem?