DIYの記録

私のDIYを記録していきます

QMK版 d48trのファームウェアカスタマイズ方法について

はじめに

d48trのQMK版ファームウェアはこちらにございます。
github.com


QMKの基本的なカスタマイズ方法については他の記事を参考にしていただくとして、ここではd48trに特化したマウス部分を中心に解説します。

keymaps.cについて

マウス用キーとして、左クリック、右クリック、ホイールキーをカスタムキーとして設定しています。

enum custom_keycodes {
  QWERTY = SAFE_RANGE,
  LOWER,
  RAISE,
  MS_L,
  MS_R,
  MS_WH
};

また、同ディレクトリに存在するtrackball.cをインクルードすることで、トラックボールを制御しています。

#include "trackball.c"

trackball.cについて

2つの「//Parameter of trackball」のコメント配下にある設定がチューニングのポイントになります。
1つめ

//Parameter of trackball sensitivity [ms]
#define DELAY_TIME 24

トラックボールの移動量を取得する間隔の設定です。値が大きければ大きい程、検出する移動量が大きくなりますが、その分ポインタの動きが遅延します。
2つめ

      //Parameter of trackball sensitivity
      currentReport.x = abs(left-right) * (left-right);
      currentReport.y = abs(up-down) * (up-down);

検出したトラックボールの移動量を、ポインタの動きに変換している式です。
デフォルトでは上記のように、移動量の2乗としています。こちらについては、ある一定の移動量を超えると〇倍にするなどの設定にするなどもありだと思います。

トラックボールを押した時の動作について

トラックボール自身もボタンになっており、押した際の動作はtrackball.cの以下の部分で定義できます。

    //Trackball click action
    if (button == 0x01){
      tb_btn1 = true;   //left click
      //tb_btn2 = true;     //right click

    }
    else {
      tb_btn1 = false;   //left click
      //tb_btn2 = false;     //right click

デフォルトは左クリック動作ですが、コメントを付け替えてもらうと右クリック動作となります。