2023年1月16日月曜日

RAZER Huntsman mini:ハイパーシフト機能上書き

デフォルトでfnキー(ハイパーシフト)とのコンビネーションが割り当てられているキーは,Synapseで機能を変更することはできません.

しかし,そういうキーが多いので,希望の機能割り当て実現での障害になっています.当方もカーソルキーの割り当てを1段下げたくて,方法を探しました.

ここで,Synapseの定義ファイルを書き換えてこれを実現する方法をまとめます.

なお,この方法はこちらのwebを参考に当方が情報をまとめたもので,オフィシャルなものではありません.不具合が発生したり,今後対策されてしまう可能性もお含み下さい.

(追記)Microsoft純正のPowerToysというソフトを使うと,こんなことしなくても(ある程度)同様のことができますね.このソフトはPreview(バージョンがまだ1に到達していない)ですが,キーのScancodeに対して任意のKeycodeを割り当てられるKeyboard Managerという機能があります.

たとえばfn+.キーにカーソル右を割り当てたければ,Huntsman miniがfn+.でinsを出力するので,PowerToysでinsにRight(カーソル右)を割り当てれば,同様のことができます.

たぶんバックライト調整など(fn+Gなど)を上書きしたいときは,本ページの方法が必要になるのだと思います.

This page explains how we assing a hypershift function to a key that has a default hypershift function. Please note the procedure is unofficial, no guarantee. Please consider your own risk if you try.


ここではfn+Kキーにカーソル上(Up)を割り当てる操作を例に説明します.

fn+Kキーにはデフォルトでカーソル下(Down)が割り当てられていて,Synapseでは変更できないと言われてしまいます.

そこでプロファイルを一旦エクスポートし,そのファイルを書き換えて再びインポートすることで,割り当てを変更します.

I. 準備

  1. Synapseで新しいプロファイルを作成する.
  2. そのプロファイルをエクスポートする.
  3. エクスポートしたファイルは.synapse3という拡張子だが,これを.zipに書き換える.実はZIPファイルなのです.
  4. ZIPファイルを開きFeaturesフォルダを開く.
  5. 中にUUID名のフォルダがあるので開く.
  6. 5つのUUID名のxmlファイルがあるので,762555eb...というxmlファイルを作業用フォルダにコピーする.

II. 書き換え

  1. 次節の表1から目的とするキーのHID_Idを確認する.Kの場合は14.
  2. 先ほどのxmlファイルをエディタで開く.<Mapping>~</Mapping>に各キーの割り当てが定義されている.<HID_Id>が4から順番に標準状態でのキー設定が書かれていて,一巡すると今度は<IsHyperShift>true</IsHypserShift>が先頭に書かれたハイパーシフトでの定義が書かれている.
  3. ハイパーシフト定義のあるHID_Idが14の項目を探し出す.
  4. 下図青枠のように記載を変更する.具体的には次の3項目を変更する.
    • 先頭に<IsDefault>false</IsDefault>を挿入.
    • <KeyAssignment>~</KeyAssignment>の間を変更する.ここでScancode=72はUp,そのKeycode=38である(表2).
    • </KeyAssignment>の次行に<UIMappingType>Navigation</UIMappingType>を挿入する.
  5. ファイルをセーブし,ZIPファイルの元のフォルダに戻す(上書きする).
  6. ZIPファイルの拡張子を.synapse3に戻す.

III. インポート

  1. (任意)先ほど作ったプロファイルを一旦消去する.※消去しなくても大丈夫だが,どうせ元のプロファイルは使わないので.
  2. Synapseのインポートで先ほど書き換えた.synapse3ファイルを指定し,お目当てのプロファイルをインポートする.
  3. Synaposeの画面上でキーの書き換えがなされていることを確認する.相変わらず「割り当てできません」と言われるが,該当キーはユーザーによる変更がなされているオレンジ色に変わっていて,実際に機能も書き換えられている(はず).
  4. 念のためPCを再起動する.

スキャンコード・キーコード

HID_IdというのがHmmでの物理キーを指定しているような気がしております(教えて偉い人).なぜか4から始まります.

ScancodeってのがキーボードからPCへ伝えられる入力だと思います.KeycodeがそのScancodeに応じて実際に現れる文字コードなんでしょうたぶん.

バックスラッシュ(\)は2つのHID_Idが同じKeycodeを指してますね.逆に,物理的に同じキーのはずのESCと`は別のHID_Idになってます.

HyperShiftのところもおおよそ同じようなScancodeが書いてあるのですが,一部違っています.かといって(デフォルトの場合)そのScancodeが入力されている様子もないのです.デフォルトだとfnキー押下時の動作は別なんでしょうかね.

表1:HID_Idが割り当てられているScancode
HID_IdScancodeKeycodeHID_IdScancodeKeycode
430A3576
548B3687
646C3798
732D38109
818E39110
933F4028Enter
1034G411Esc
1135H4214Backspace
1223I4315Tab
1336J4457space
1437K4512-
1538L4613=
1650M4726[
1749N4827]
1824O4943\
1925P5043\
2016Q5139;
2119R5240'
2231S5341`
2320T5451,
2422U5552.
2547V5653/
2617W5758CapsLock
2745X10086
2821Y10193
2944Z22429LCtrl
302122542LShift
313222656LAlt
324322829LCtrl
335422954RShift
346523056LAlt

表2:HID_Idのない(実体キーのない)Scancode
ScancodeKeyFunctionKeycode
59F1112
60F2113
61F3114
62F4115
63F5116
64F6117
65F7118
66F8119
67F9120
68F10121
69NumLock144
70ScrollLock145
71KP-7Home36
72KP-8Up38
73KP-9PgUp33
75KP-4Left37
76KP-5
77KP-6Right39
79KP-1End35
80KP-2Down40
81KP-3PgDn34
82KP-0Insert45
83KP-.Delete46

0 件のコメント:

コメントを投稿