diff --git a/boards/kyria/main.py b/boards/kyria/main.py index 4d72938..f36806e 100644 --- a/boards/kyria/main.py +++ b/boards/kyria/main.py @@ -36,13 +36,14 @@ keyboard.extensions.append(rgb_ext) oled_ext = Oled( OledData( entries=[ - OledData.oled_text_entry(text='Kyria v1.4', x=0, y=0), - OledData.oled_text_entry(text='KB2040', x=0, y=10), - OledData.oled_text_entry(text='Layer: ', x=0, y=20), - OledData.oled_text_entry(text='BASE', x=40, y=20, layer=0), - OledData.oled_text_entry(text='LOWER', x=40, y=20, layer=3), - OledData.oled_text_entry(text='RAISE', x=40, y=20, layer=4), - OledData.oled_text_entry(text='ADJUST', x=40, y=20, layer=6), + OledData.oled_text_entry(text='Kyria v1.4\nKB2040', line_spacing=0.75, inverted=True, x=0, y=0), + OledData.oled_text_entry(text='americ', x=128, y=0, x_anchor=1.0), + OledData.oled_text_entry(text='anfootball', x=128, y=10, x_anchor=1.0), + OledData.oled_text_entry(text='Layer: ', x=0, y=32, y_anchor=1.0), + OledData.oled_text_entry(text='BASE', x=40, y=32, y_anchor=1.0, layer=0), + OledData.oled_text_entry(text='LOWER', x=40, y=32, y_anchor=1.0, layer=3), + OledData.oled_text_entry(text='RAISE', x=40, y=32, y_anchor=1.0, layer=4), + OledData.oled_text_entry(text='ADJUST', x=40, y=32, y_anchor=1.0, layer=6), ] ), height=64, diff --git a/kmk/extensions/oled.py b/kmk/extensions/oled.py index cf8eccf..80e1404 100644 --- a/kmk/extensions/oled.py +++ b/kmk/extensions/oled.py @@ -10,8 +10,6 @@ from kmk.extensions import Extension from kmk.handlers.stock import passthrough as handler_passthrough from kmk.keys import make_key -DISPLAY_OFFSET = 4 # Used to calculate a new zero level since SSD1306 is clipped. - class OledEntryType: TXT = 0 @@ -27,13 +25,18 @@ class OledData: self.data = entries @staticmethod - def oled_text_entry(x=0, y=0, text='', layer=None): + def oled_text_entry(text='', x=0, y=0, x_anchor=0.0, y_anchor=0.0, direction='LTR', line_spacing=0.75, inverted=False, layer=None): return { 0: text, 1: x, 2: y, 3: layer, 4: OledEntryType.TXT, + 5: x_anchor, + 6: y_anchor, + 7: direction, + 8: line_spacing, + 9: inverted, } @staticmethod @@ -87,9 +90,13 @@ class Oled(Extension): label.Label( terminalio.FONT, text=view[0], - color=0xFFFFFF, - x=view[1], - y=view[2] + DISPLAY_OFFSET, + color=0xFFFFFF if view[9] == False else 0x000000, + background_color=0x000000 if view[9] == False else 0xFFFFFF, + anchor_point=(view[5],view[6]), + anchored_position=(view[1] if view[9] == False else view[1]+1,view[2]), + label_direction=view[7], + line_spacing=view[8], + padding_left=0 if view[9] == False else 1, ) ) elif view[4] == OledEntryType.IMG: @@ -98,7 +105,7 @@ class Oled(Extension): view[0], pixel_shader=view[0].pixel_shader, x=view[1], - y=view[2] + DISPLAY_OFFSET, + y=view[2], ) ) gc.collect()