Netflix専用キーボードにスライドスイッチを付ける

最終更新日

Netflix 専用キーボードをもうちょっと改善。

su120 でNetflix専用キーボード

su120 でNetflix専用キーボード

2021.02.23


Netflix専用キーボードのケース

Netflix専用キーボードのケース

2021.07.10


ロータリーエンコーダーをペットボトルキャップでおされに

ロータリーエンコーダーをペットボトルキャップでおされに

2021.07.12

気になるのは、ロータリーエンコーダー。
現在は、右・左回転に →/← カーソルを割り当てている。

Netflixの時はそれでもいいが、↑/↓ カーソルも使いときもある。
ということで動作を変えるたのめスイッチを導入。

Aliexpress 目測を誤った大きなスイッチ(キーキャップと同じくらい)を使うときが来た!

スイッチの配線

ロータリーエンコードが干渉するので、キースイッチをおけない一番右のスロットにぴったり。

スイッチを右にすると、配線がつながる(キーの押下)ように半田付け。

プログラム

一番右(1行目D列)をMODキーにする。

  [0] = LAYOUT( /* Base */

    // LEFT HAND
    KC_AUDIO_VOL_DOWN,  KC_SPC,   KC_AUDIO_VOL_UP,     MO(1),     KC_5,     XXXXXXX,    
    KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     XXXXXXX,
    KC_A,     KC_B,     KC_C,     KC_D,     KC_E,     XXXXXXX,

グローバル変数 layer_state を参照することで、MODキーの状態がわかる。

  • layer_state=0 : MODキーなし
  • layer_state=2 : MOD(1) 押下中
void encoder_update_user(uint8_t index, bool clockwise) {
    uprintf("EN: layer: %u, index: %u, clockwise: %u\n", layer_state, index, clockwise);
    if (layer_state == 0) {
        if (clockwise) {
            tap_code16(KC_LEFT);
        } else {
            tap_code16(KC_RIGHT);
        }
    } else {
        if (clockwise) {
            tap_code16(KC_UP);
        } else {
            tap_code16(KC_DOWN);
        }
    }
}

キーを押下しながら、ロータリーエンコーダーがまわすのはなんだかやりにくそうだったので、これで安心。

シェアする