[Keymap] Display logo for caps lock indication on crkbd using old OLED driver (#7535)
* Display logo for caps lock indication on crkbd using old OLED driver * Add emacs read-only mode file variable to generated files * use LTO_ENABLE instead of EXTRAFLAGS This enables the same option, and disables action_macros, and action_functions, both of which seem to break when LTO is enabled. And this is a lot simpler to use. Co-Authored-By: Drashna Jaelre <drashna@live.com>
This commit is contained in:
parent
e676278474
commit
3d78e6078e
9 changed files with 107 additions and 34 deletions
|
@ -1,5 +1,4 @@
|
||||||
|
// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
|
||||||
// generated from users/manna-harbour_miryoku/miryoku.org
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
@ -15,3 +14,5 @@
|
||||||
#define RGB_MATRIX_VAL_STEP 8
|
#define RGB_MATRIX_VAL_STEP 8
|
||||||
#define RGB_MATRIX_SPD_STEP 10
|
#define RGB_MATRIX_SPD_STEP 10
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define SSD1306OLED // old oled driver
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
|
// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
|
||||||
// generated from users/manna-harbour_miryoku/miryoku.org
|
|
||||||
|
|
||||||
#define LAYOUT_miryoku( \
|
#define LAYOUT_miryoku( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
|
||||||
|
@ -15,3 +14,41 @@ KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_
|
||||||
)
|
)
|
||||||
|
|
||||||
#include "manna-harbour_miryoku.c"
|
#include "manna-harbour_miryoku.c"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef SSD1306OLED
|
||||||
|
|
||||||
|
#include "ssd1306.h"
|
||||||
|
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
iota_gfx_init(!has_usb()); // turns on the display
|
||||||
|
}
|
||||||
|
|
||||||
|
// When add source files to SRC in rules.mk, you can use functions.
|
||||||
|
const char *read_logo(void);
|
||||||
|
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
iota_gfx_task();
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_render_user(struct CharacterMatrix *matrix) {
|
||||||
|
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
|
||||||
|
matrix_write(matrix, read_logo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
|
||||||
|
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
|
||||||
|
memcpy(dest->display, source->display, sizeof(dest->display));
|
||||||
|
dest->dirty = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void iota_gfx_task_user(void) {
|
||||||
|
struct CharacterMatrix matrix;
|
||||||
|
matrix_clear(&matrix);
|
||||||
|
matrix_render_user(&matrix);
|
||||||
|
matrix_update(&display, &matrix);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //SSD1306OLED
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
|
# generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
|
||||||
# generated from users/manna-harbour_miryoku/miryoku.org
|
|
||||||
|
|
||||||
RGB_MATRIX_ENABLE = WS2812
|
RGB_MATRIX_ENABLE = WS2812
|
||||||
|
|
||||||
|
# old oled driver
|
||||||
|
SRC += ./lib/glcdfont.c \
|
||||||
|
./lib/logo_reader.c
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
|
// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
|
||||||
// generated from users/manna-harbour_miryoku/miryoku.org
|
|
||||||
|
|
||||||
#define LAYOUT_miryoku(\
|
#define LAYOUT_miryoku(\
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
|
// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
|
||||||
// generated from users/manna-harbour_miryoku/miryoku.org
|
|
||||||
|
|
||||||
#define LAYOUT_miryoku(\
|
#define LAYOUT_miryoku(\
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
|
// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
|
||||||
// generated from users/manna-harbour_miryoku/miryoku.org
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
|
// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
|
||||||
// generated from users/manna-harbour_miryoku/miryoku.org
|
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
|
|
@ -384,7 +384,7 @@ Header for tangled src files.
|
||||||
|
|
||||||
#+NAME: header
|
#+NAME: header
|
||||||
#+BEGIN_SRC C :tangle no
|
#+BEGIN_SRC C :tangle no
|
||||||
generated from users/manna-harbour_miryoku/miryoku.org
|
generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
|
@ -405,8 +405,7 @@ bottom row unused and the rest of the bottom row are the thumb keys.
|
||||||
Contains the keymap. Included from keymap.c
|
Contains the keymap. Included from keymap.c
|
||||||
|
|
||||||
[[./manna-harbour_miryoku.c][users/manna-harbour_miryoku/manna-harbour_miryoku.c]]
|
[[./manna-harbour_miryoku.c][users/manna-harbour_miryoku/manna-harbour_miryoku.c]]
|
||||||
#+BEGIN_SRC C :noweb yes :tangle manna-harbour_miryoku.c
|
#+BEGIN_SRC C :noweb yes :padline no :tangle manna-harbour_miryoku.c
|
||||||
|
|
||||||
// <<header>>
|
// <<header>>
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
@ -442,8 +441,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
Config options. Automatically included.
|
Config options. Automatically included.
|
||||||
|
|
||||||
[[./config.h][users/manna-harbour_miryoku/config.h]]
|
[[./config.h][users/manna-harbour_miryoku/config.h]]
|
||||||
#+BEGIN_SRC C :noweb yes :tangle config.h
|
#+BEGIN_SRC C :noweb yes :padline no :tangle config.h
|
||||||
|
|
||||||
// <<header>>
|
// <<header>>
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -465,13 +463,12 @@ Config options. Automatically included.
|
||||||
Build options. Automatically included.
|
Build options. Automatically included.
|
||||||
|
|
||||||
[[./rules.mk][users/manna-harbour_miryoku/rules.mk]]
|
[[./rules.mk][users/manna-harbour_miryoku/rules.mk]]
|
||||||
#+BEGIN_SRC makefile :noweb yes :tangle rules.mk
|
#+BEGIN_SRC makefile :noweb yes :padline no :tangle rules.mk
|
||||||
|
|
||||||
# <<header>>
|
# <<header>>
|
||||||
|
|
||||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||||
|
EXTRAFLAGS += -flto # Link Time Optimization to reduce code size, 31358->28034/28672
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
@ -490,8 +487,7 @@ thumb key is the innermost key of the partial bottom row. The remaining keys
|
||||||
are unused.
|
are unused.
|
||||||
|
|
||||||
[[../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c][layouts/community/ergodox/manna-harbour_miryoku/keymap.c]]
|
[[../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c][layouts/community/ergodox/manna-harbour_miryoku/keymap.c]]
|
||||||
#+BEGIN_SRC C :noweb yes :tangle ../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c
|
#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ergodox/manna-harbour_miryoku/keymap.c
|
||||||
|
|
||||||
// <<header>>
|
// <<header>>
|
||||||
|
|
||||||
#define LAYOUT_miryoku(\
|
#define LAYOUT_miryoku(\
|
||||||
|
@ -533,8 +529,7 @@ provide some column stagger on ortho keyboards. The bottom row left 3 columns
|
||||||
are the thumb keys. The remaining keys are unused.
|
are the thumb keys. The remaining keys are unused.
|
||||||
|
|
||||||
[[../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c]]
|
[[../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c][layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c]]
|
||||||
#+BEGIN_SRC C :noweb yes :tangle ../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c
|
#+BEGIN_SRC C :noweb yes :padline no :tangle ../../layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c
|
||||||
|
|
||||||
// <<header>>
|
// <<header>>
|
||||||
|
|
||||||
#define LAYOUT_miryoku(\
|
#define LAYOUT_miryoku(\
|
||||||
|
@ -577,8 +572,7 @@ The outer columns are unused.
|
||||||
**** keymap.c
|
**** keymap.c
|
||||||
|
|
||||||
[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c][keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c]]
|
[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c][keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c]]
|
||||||
#+BEGIN_SRC C :noweb yes :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c
|
#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c
|
||||||
|
|
||||||
// <<header>>
|
// <<header>>
|
||||||
|
|
||||||
#define LAYOUT_miryoku( \
|
#define LAYOUT_miryoku( \
|
||||||
|
@ -596,14 +590,51 @@ KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_
|
||||||
|
|
||||||
#include "manna-harbour_miryoku.c"
|
#include "manna-harbour_miryoku.c"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef SSD1306OLED
|
||||||
|
|
||||||
|
#include "ssd1306.h"
|
||||||
|
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
iota_gfx_init(!has_usb()); // turns on the display
|
||||||
|
}
|
||||||
|
|
||||||
|
// When add source files to SRC in rules.mk, you can use functions.
|
||||||
|
const char *read_logo(void);
|
||||||
|
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
iota_gfx_task();
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_render_user(struct CharacterMatrix *matrix) {
|
||||||
|
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
|
||||||
|
matrix_write(matrix, read_logo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
|
||||||
|
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
|
||||||
|
memcpy(dest->display, source->display, sizeof(dest->display));
|
||||||
|
dest->dirty = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void iota_gfx_task_user(void) {
|
||||||
|
struct CharacterMatrix matrix;
|
||||||
|
matrix_clear(&matrix);
|
||||||
|
matrix_render_user(&matrix);
|
||||||
|
matrix_update(&display, &matrix);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //SSD1306OLED
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
**** config.h
|
**** config.h
|
||||||
|
|
||||||
[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h][keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h]]
|
[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h][keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h]]
|
||||||
#+BEGIN_SRC C :noweb yes :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h
|
#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h
|
||||||
|
|
||||||
// <<header>>
|
// <<header>>
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -621,18 +652,23 @@ KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_
|
||||||
#define RGB_MATRIX_SPD_STEP 10
|
#define RGB_MATRIX_SPD_STEP 10
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define SSD1306OLED // old oled driver
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
**** rules.mk
|
**** rules.mk
|
||||||
|
|
||||||
[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk][keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk]]
|
[[../../keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk][keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk]]
|
||||||
#+BEGIN_SRC C :noweb yes :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk
|
#+BEGIN_SRC C :noweb yes :padline no :tangle ../../keyboards/crkbd/keymaps/manna-harbour_miryoku/rules.mk
|
||||||
|
|
||||||
# <<header>>
|
# <<header>>
|
||||||
|
|
||||||
RGB_MATRIX_ENABLE = WS2812
|
RGB_MATRIX_ENABLE = WS2812
|
||||||
|
|
||||||
|
# old oled driver
|
||||||
|
SRC += ./lib/glcdfont.c \
|
||||||
|
./lib/logo_reader.c
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
# generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
|
||||||
# generated from users/manna-harbour_miryoku/miryoku.org
|
|
||||||
|
|
||||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
|
Loading…
Reference in a new issue