Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
@nariya

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

2
Help us understand the problem. What is going on with this article?
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
nariya
株式会社プラチナエッグ 代表取締役 https://www.platinum-egg.com/ Blockchain Game作りたい人募集してます。
platinum-egg
Blockchain Game 開発を行っています。ソーシャルゲーム、各種ブロックチェーン案件などもお問い合わせ下さい。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
2
Help us understand the problem. What is going on with this article?