QMKキーボードでパソコンがスリープしなくなる問題の解決

Solution to problem with QMK causing to block suspending
 自作キーボードをパソコンに接続してみると、パソコンをスリープ状態にしてもすぐに電源が入って復帰してしまう現象に出くわすことがあります。これはQMKの内部仕様に起因しており、特にマトリックス配線で全ての交差点にキースイッチを配置していない設計で発生します。と、いうのも、物理スイッチが配線されていない箇所は、常につながっていると誤判定され、その結果マイコンが稼働し続けてしまうことが原因だからです。

 この問題は、「config.h」に「#define MATRIX_MASKED」を宣言して、ソースコード内に特定の交差点を無視するための配列を記述することで解決できます。
 例えば、5x5マトリックスキーボードを制作しているときにおいて、キーボードの配線がこの画像のようになっているのであれば、以下のコードを(keyboard_name).cに追加します。ただし、最下位ビットが一番左の列に当たるため、数値は右から左へと割り当てる必要があります。
keyboard.c
const matrix_row_t matrix_mask[MATRIX_ROWS] = 
{
  0b01111,
  0b01111,
  0b11111, 
  0b11111, 
  0b00111, 
};
2022/10/29