Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SnailMap port for the Kintsugi keyboard. #17341

Merged
merged 7 commits into from
Jun 15, 2022
Prev Previous commit
Next Next commit
Formatted code on the default and snailmap_port keymaps, centered the…
… logo on the OLED font and added OLED default behavior to the kintsugi.c file.
  • Loading branch information
ADPenrose committed Jun 10, 2022
commit e5cb642bd3386e3c454f8c4b6fb55fb8fc0f97ff
2 changes: 1 addition & 1 deletion keyboards/adpenrose/kintsugi/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_SPC, _______, _______, _______, _______, _______
),
};
};
45 changes: 33 additions & 12 deletions keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,43 +57,64 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_SPC, _______, _______, _______, _______, _______
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
};

/* Encoder */
#ifdef ENCODER_ENABLE
bool encoder_update_user(uint8_t index, bool clockwise) {
static uint8_t selected_layer = 0; /* Used to change the layer using the encoder. */
/* Used to change the layer using the encoder. */
static int8_t selected_layer = 0;

if (clockwise){
/* Check if left shift is pressed: */
if (selected_layer < 3 && get_mods() & MOD_BIT(KC_LSFT)){
if (selected_layer < 4 && get_mods() & MOD_BIT(KC_LSFT)){
selected_layer ++;
layer_move(selected_layer); /* Jump up one layer. */
} else {
/* If shift isn't pressed, encoder will do this stuff: */
/* If already on the last layer, jumps back to the first layer: */
if (selected_layer == 4) {
selected_layer = 0;
}
/* Move to the selected layer. */
layer_move(selected_layer);
} else if (get_mods() & MOD_BIT(KC_RSFT)){ /* Check if right shift is pressed: */
switch (get_highest_layer(layer_state)){
case 3:
default:
/* Go to the next track. */
tap_code(KC_MNXT);
break;
}
} else {
/* If shift isn't pressed, encoder will do this stuff: */
switch (get_highest_layer(layer_state)){
default:
/* Turn up the volume of the system. */
tap_code(KC_VOLU);
break;
}
}
} else {
/* Check if left shift is pressed: */
if (selected_layer > 0 && get_mods() & MOD_BIT(KC_LSFT)){
if (selected_layer > -1 && get_mods() & MOD_BIT(KC_LSFT)){
selected_layer --;
layer_move(selected_layer); /* Go down one layer. */
} else {
/* If shift isn't pressed, encoder will do this stuff: */
/* If already on the first layer, jumps up to the last layer: */
if (selected_layer == -1) {
selected_layer = 3;
}
/* Move to the selected layer. */
layer_move(selected_layer);
} else if (get_mods() & MOD_BIT(KC_RSFT)){ /* Check if right shift is pressed: */
switch (get_highest_layer(layer_state)){
case 3:
default:
/* Go to the previous track. */
tap_code(KC_MPRV);
break;
}
} else {
/* If shift isn't pressed, encoder will do this stuff: */
switch (get_highest_layer(layer_state)){
default:
/* Turn down the volume of the system. */
tap_code(KC_VOLD);
break;
}
Expand Down
69 changes: 53 additions & 16 deletions keyboards/adpenrose/kintsugi/kintsugi.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,61 @@
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) {
return false;
}
} else {
/* The switch case allows for different encoder mappings on different layers, "default" map gets applied for all unspecified layers */
switch(get_highest_layer(layer_state)){
case 1:
if (clockwise) {
tap_code(KC_MNXT);
} else {
tap_code(KC_MPRV);
}
break;
default:
if (clockwise){
tap_code(KC_VOLU);
} else{
tap_code(KC_VOLD);
}
break;
switch(get_highest_layer(layer_state)){
case 1:
if (clockwise) {
tap_code(KC_MNXT);
} else {
tap_code(KC_MPRV);
}
break;
default:
if (clockwise){
tap_code(KC_VOLU);
} else{
tap_code(KC_VOLD);
}
break;
}
}
return true;
}
#endif

#ifdef OLED_ENABLE
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
return OLED_ROTATION_270;
}

static void render_logo(void) {
/* Kintsugi logo render: */
static const char PROGMEM logo_1[] = {
0x83, 0x84, 0x85, 0x86, 0x87, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0x00
};
static const char PROGMEM logo_2[] = {
0x88, 0x89, 0x8A, 0x8B, 0x8C, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0x00
};
static const char PROGMEM logo_3[] = {
0x8D, 0x8E, 0x8F, 0x90, 0x91, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0x00
};
oled_set_cursor(0,3);
oled_write_P(logo_1, false);
oled_set_cursor(0,7);
oled_write_P(logo_2, false);
oled_set_cursor(0,11);
oled_write_P(logo_3, false);
}

bool oled_task_kb(void) {
if (!oled_task_user()) {
return false;
}
else {
render_logo();
}

return true;
}
#endif
84 changes: 42 additions & 42 deletions keyboards/adpenrose/kintsugi/lib/kintsugifont.c
Original file line number Diff line number Diff line change
Expand Up @@ -148,21 +148,21 @@ const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0,
0xE0, 0xF0, 0xF0, 0xF8, 0xFC, 0xBC,
0x9E, 0x9E, 0xBC, 0xFC, 0xF8, 0xF0,
0xF0, 0xE0, 0xC0, 0xC0, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0xC0, 0xF0, 0xFC, 0xFE, 0x8E,
0xE6, 0x70, 0x00, 0xFC, 0xFE, 0xFE,
0xFC, 0x00, 0x38, 0x78, 0xF0, 0xFE,
0xFE, 0xF0, 0x78, 0x38, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x78, 0x78, 0x78, 0x78, 0x78,
0x78, 0x78, 0x7E, 0x7E, 0xFE, 0xFC,
0xFC, 0x7C, 0x18, 0x00, 0x9E, 0xBC,
0x1C, 0x02, 0x0F, 0x1E, 0x0C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0xC0, 0xC0, 0xE0, 0xF0, 0xF0,
0xF8, 0xFC, 0xBC, 0x9E, 0x9E, 0xBC,
0xFC, 0xF8, 0xF0, 0xF0, 0xE0, 0xC0,
0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0xC0, 0xF0,
0xFC, 0xFE, 0x8E, 0xE6, 0x70, 0x00,
0xFC, 0xFE, 0xFE, 0xFC, 0x00, 0x38,
0x78, 0xF0, 0xFE, 0xFE, 0xF0, 0x78,
0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x78, 0x78,
0x78, 0x78, 0x78, 0x78, 0x78, 0x7E,
0x7E, 0xFE, 0xFC, 0xFC, 0x7C, 0x18,
0x00, 0x9E, 0xBC, 0x1C, 0x02, 0x0F,
0x1E, 0x0C, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
Expand All @@ -180,20 +180,20 @@ const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xE1, 0xE1, 0xE1,
0xE1, 0xE3, 0xE7, 0xE7, 0xE3, 0xE3,
0xFF, 0xFF, 0xE3, 0xE3, 0xE7, 0xE7,
0xE3, 0xE1, 0xE1, 0xE1, 0xE1, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0xF1, 0xFB, 0xFF, 0xFF, 0xE7,
0xF3, 0xF8, 0x00, 0xFF, 0xFF, 0xFF,
0xFF, 0x87, 0xC7, 0xE7, 0xFF, 0xFF,
0xFF, 0xFF, 0xE7, 0xC7, 0x87, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x8E, 0x9E, 0x9E, 0x1E, 0x1E,
0x1E, 0x1E, 0x1E, 0x1E, 0x9F, 0xDF,
0xFF, 0xFF, 0xFE, 0xCF, 0x0F, 0x0F,
0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0xE1, 0xE1, 0xE1, 0xE1, 0xE3, 0xE7,
0xE7, 0xE3, 0xE3, 0xFF, 0xFF, 0xE3,
0xE3, 0xE7, 0xE7, 0xE3, 0xE1, 0xE1,
0xE1, 0xE1, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0xF1, 0xFB,
0xFF, 0xFF, 0xE7, 0xF3, 0xF8, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xC7,
0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7,
0xC7, 0x87, 0x07, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E,
0x9E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E,
0x1E, 0x9F, 0xDF, 0xFF, 0xFF, 0xFE,
0xCF, 0x0F, 0x0F, 0x07, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
Expand All @@ -212,20 +212,20 @@ const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x70, 0x70, 0x71, 0x73,
0x73, 0x7F, 0x7E, 0x7C, 0x70, 0x70,
0x7F, 0x7F, 0x70, 0x70, 0x7C, 0x7E,
0x7F, 0x73, 0x73, 0x71, 0x70, 0x70,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x60, 0x7C, 0x3E, 0x01, 0x3E, 0x61,
0x0E, 0x1E, 0x00, 0x3F, 0x7F, 0x7F,
0x7F, 0x73, 0x73, 0x71, 0x70, 0x77,
0x77, 0x70, 0x71, 0x73, 0x73, 0x73,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1F, 0x7F, 0x7F, 0x78, 0x78,
0x78, 0x78, 0x78, 0x78, 0x79, 0x7B,
0x7B, 0x7B, 0x03, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
0x70, 0x71, 0x73, 0x73, 0x7F, 0x7E,
0x7C, 0x70, 0x70, 0x7F, 0x7F, 0x70,
0x70, 0x7C, 0x7E, 0x7F, 0x73, 0x73,
0x71, 0x70, 0x70, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x60, 0x7C, 0x3E,
0x01, 0x3E, 0x61, 0x0E, 0x1E, 0x00,
0x3F, 0x7F, 0x7F, 0x7F, 0x73, 0x73,
0x71, 0x70, 0x77, 0x77, 0x70, 0x71,
0x73, 0x73, 0x73, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1F, 0x7F,
0x7F, 0x78, 0x78, 0x78, 0x78, 0x78,
0x78, 0x79, 0x7B, 0x7B, 0x7B, 0x03,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
Expand Down