qmk-keychron-q3-colemak-dh/users/brett/brett.c

62 lines
1.5 KiB
C
Raw Normal View History

#include "brett.h"
char * get_key(uint16_t keycode) {
switch (keycode) {
case FAT_ARROW:
return "=>";
case SKINNY_ARROW:
return "->";
case REVERSE_ARROW:
return "<-";
case CONCAT:
return "<>";
case MAP:
return "<$>";
case MAP_FLIPPED:
return "<#>";
case FLAP:
return "<@>";
case PIPE:
return "|>";
case ALT:
return "<|>";
case APPLY:
return "<*>";
case AND:
return "&&";
case OR:
return "||";
case BIND:
return ">>=";
case BIND_FLIPPED:
return "=<<";
case DOUBLE_COLON:
return "::";
case VOID_LEFT:
return "<$";
case VOID_RIGHT:
return "$>";
default:
return "";
}
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
bool pressed = record->event.pressed;
switch (keycode) {
case FAT_ARROW ... DOUBLE_COLON:
if (pressed) {
send_string(get_key(keycode));
}
return false;
case FLASH:
if (!pressed) {
SEND_STRING("make -j8 --output-sync " QMK_KEYBOARD ":" QMK_KEYMAP ":flash" SS_TAP(X_ENTER));
reset_keyboard();
}
return false;
default:
return true;
}
}