示例#1
0
bool process_steno(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    case QK_STENO_BOLT:
      if (IS_PRESSED(record->event)) {
        steno_set_mode(STENO_MODE_BOLT);
      }
      return false;

    case QK_STENO_GEMINI:
      if (IS_PRESSED(record->event)) {
        steno_set_mode(STENO_MODE_GEMINI);
      }
      return false;

    case STN__MIN...STN__MAX:
      if (IS_PRESSED(record->event)) {
        uint8_t key = keycode - QK_STENO;
        ++pressed;
        switch(mode) {
          case STENO_MODE_BOLT:
            return update_state_bolt(key);
          case STENO_MODE_GEMINI:
            return update_state_gemini(key);
          default:
            return false;
        }
      } else {
        --pressed;
        if (pressed <= 0) {
          pressed = 0;
          switch(mode) {
            case STENO_MODE_BOLT:
              return send_state_bolt();
            case STENO_MODE_GEMINI:
              return send_state_gemini();
            default:
              return false;
          }
        }
      }

  }
  return true;
}
示例#2
0
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
  steno_set_mode(STENO_MODE_BOLT);
};
示例#3
0
void matrix_init_user() {
  steno_set_mode(STENO_MODE_GEMINI);
}