やりたいこと
現在のデフォルトレイヤーが何番か知りたい
方法
get_highest_layer(default_layer_state)
または古いqmk_firmwareの場合は biton32(default_layer_state)
を使用する(実装は同じ)。以下のような感じ。
enum layers {
LAYER_PC,
LAYER_MAC
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (biton32(default_layer_state)) {
case LAYER_PC:
tap_code(KC_MHEN);
break;
case LAYER_MAC:
tap_code(KC_LANG2);
break;
default:
SEND_STRING("ILLEGAL STATE!");
}
}
参考
https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_layer.c#L52
など。