logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

link.c (2477B)


  1. // Copyright 2025 Andrew Kannan (awkannan)
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "quantum.h"
  4. #ifdef OLED_ENABLE
  5. oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
  6. if (is_keyboard_master()) {
  7. return OLED_ROTATION_0;
  8. } else {
  9. return OLED_ROTATION_90;
  10. }
  11. return rotation;
  12. }
  13. static void render_logo(void) {
  14. static const char PROGMEM qmk_logo[] = {
  15. 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
  16. 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
  17. 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
  18. };
  19. oled_write_P(qmk_logo, false);
  20. }
  21. void print_status_narrow(void) {
  22. oled_write_P(PSTR("\n\n"), false);
  23. switch (get_highest_layer(layer_state)) {
  24. case 0:
  25. oled_write_ln_P(PSTR("Qwrt"), false);
  26. break;
  27. case 1:
  28. oled_write_ln_P(PSTR("Clmk"), false);
  29. break;
  30. default:
  31. oled_write_P(PSTR("Mod\n"), false);
  32. break;
  33. }
  34. oled_write_P(PSTR("\n\n"), false);
  35. oled_write_ln_P(PSTR("LAYER"), false);
  36. switch (get_highest_layer(layer_state)) {
  37. case 0:
  38. case 1:
  39. oled_write_P(PSTR("Base\n"), false);
  40. break;
  41. case 2:
  42. oled_write_P(PSTR("Raise"), false);
  43. break;
  44. case 3:
  45. oled_write_P(PSTR("Lower"), false);
  46. break;
  47. default:
  48. oled_write_ln_P(PSTR("Undef"), false);
  49. }
  50. oled_write_P(PSTR("\n\n"), false);
  51. led_t led_usb_state = host_keyboard_led_state();
  52. oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock);
  53. }
  54. bool oled_task_kb(void) {
  55. if (!oled_task_user()) {
  56. return false;
  57. }
  58. if (is_keyboard_master()) {
  59. print_status_narrow();
  60. } else {
  61. render_logo();
  62. }
  63. return true;
  64. }
  65. #endif
  66. #ifdef ENCODER_ENABLE
  67. bool encoder_update_kb(uint8_t index, bool clockwise) {
  68. if (!encoder_update_user(index, clockwise)) {
  69. return false;
  70. }
  71. if (index == 0) {
  72. if (clockwise) {
  73. tap_code(KC_VOLU);
  74. } else {
  75. tap_code(KC_VOLD);
  76. }
  77. } else if (index == 1) {
  78. if (clockwise) {
  79. tap_code(KC_PGDN);
  80. } else {
  81. tap_code(KC_PGUP);
  82. }
  83. }
  84. return true;
  85. }
  86. #endif