diff --git a/src/code.py b/src/code.py index 4fb6f15..379d3fe 100644 --- a/src/code.py +++ b/src/code.py @@ -53,6 +53,14 @@ if args is not None and len(args) > 0: print(f"launching: {next_code_file}") supervisor.reload() +# read environment variables +color_palette = { + "bg": os.getenv("FRUIT_JAM_OS_BG", 0x222222), + "fg": os.getenv("FRUIT_JAM_OS_FG", 0xffffff), + "accent": os.getenv("FRUIT_JAM_OS_ACCENT", 0x008800), + "arrow": os.getenv("FRUIT_JAM_OS_ARROW"), +} + display = supervisor.runtime.display if display is None: width_config = os.getenv("CIRCUITPY_DISPLAY_WIDTH") @@ -81,7 +89,7 @@ display.root_group = main_group background_bmp = displayio.Bitmap(display.width, display.height, 1) bg_palette = displayio.Palette(1) -bg_palette[0] = 0x222222 +bg_palette[0] = color_palette["bg"] bg_tg = displayio.TileGrid(bitmap=background_bmp, pixel_shader=bg_palette) scaled_group.append(bg_tg) @@ -198,7 +206,7 @@ menu_grid = GridLayout(x=(display.width // scale - WIDTH) // 2, divider_lines=False) scaled_group.append(menu_grid) -menu_title_txt = Label(font, text="Fruit Jam OS") +menu_title_txt = Label(font, text="Fruit Jam OS", color=color_palette["fg"]) menu_title_txt.anchor_point = (0.5, 0.5) menu_title_txt.anchored_position = (display.width // (2 * scale), 2) scaled_group.append(menu_title_txt) @@ -282,7 +290,7 @@ def _create_cell_group(app): icon_tg.x = cell_width // 2 - icon_tg.tile_width // 2 title_txt = TextBox(font, text=app["title"], width=cell_width, height=18, - align=TextBox.ALIGN_CENTER) + align=TextBox.ALIGN_CENTER, color=color_palette["fg"]) icon_tg.y = (cell_height - icon_tg.tile_height - title_txt.height) // 2 cell_group.append(title_txt) title_txt.anchor_point = (0, 0) @@ -304,7 +312,7 @@ def _reuse_cell_group(app, cell_group): icon_tg.x = cell_width // 2 - icon_tg.tile_width // 2 # title_txt = TextBox(font, text=app["title"], width=cell_width, height=18, - # align=TextBox.ALIGN_CENTER) + # align=TextBox.ALIGN_CENTER, color=color_palette["fg"]) # cell_group.append(title_txt) title_txt = cell_group[1] title_txt.text = app["title"] @@ -353,7 +361,7 @@ def display_page(page_index): print(f"{grid_index} | {grid_index % config["width"], grid_index // config["width"]}") -page_txt = Label(terminalio.FONT, text="", scale=2) +page_txt = Label(terminalio.FONT, text="", scale=2, color=color_palette["fg"]) page_txt.anchor_point = (1.0, 1.0) page_txt.anchored_position = (display.width - 2, display.height - 2) main_group.append(page_txt) @@ -365,6 +373,8 @@ left_bmp, left_palette = adafruit_imageload.load("launcher_assets/arrow_left.bmp left_palette.make_transparent(0) right_bmp, right_palette = adafruit_imageload.load("launcher_assets/arrow_right.bmp") right_palette.make_transparent(0) +if color_palette["arrow"] is not None: + left_palette[2] = right_palette[2] = color_palette["arrow"] left_tg = AnchoredTileGrid(bitmap=left_bmp, pixel_shader=left_palette) left_tg.anchor_point = (0, 0.5) @@ -386,8 +396,9 @@ if mouse: scaled_group.append(mouse_tg) -help_txt = Label(terminalio.FONT, text="[Arrow]: Move\n[E]: Edit\n[Enter]: Run\n[1-9]: Page") -# help_txt = TextBox(terminalio.FONT, width=88, height=30, align=TextBox.ALIGN_RIGHT, background_color=0x008800, text="[E]: Edit\n[Enter]: Run") +help_txt = Label(terminalio.FONT, text="[Arrow]: Move\n[E]: Edit\n[Enter]: Run\n[1-9]: Page", + color=color_palette["fg"]) +# help_txt = TextBox(terminalio.FONT, width=88, height=30, align=TextBox.ALIGN_RIGHT, background_color=color_palette["accent"], text="[E]: Edit\n[Enter]: Run") help_txt.anchor_point = (0, 0) help_txt.anchored_position = (2, 2) @@ -424,10 +435,10 @@ def change_selected(new_selected): # tuple means an item in the grid is selected if isinstance(new_selected, tuple): - menu_grid.get_content(new_selected)[1].background_color = 0x008800 + menu_grid.get_content(new_selected)[1].background_color = color_palette["accent"] # TileGrid means arrow is selected elif isinstance(new_selected, AnchoredTileGrid): - new_selected.pixel_shader[2] = 0x008800 + new_selected.pixel_shader[2] = color_palette["accent"] selected = new_selected @@ -543,7 +554,7 @@ while True: handle_key_press(c) print("selected", selected) - # app_titles[selected].background_color = 0x008800 + # app_titles[selected].background_color = color_palette["accent"] if mouse: try: diff --git a/src/settings.toml b/src/settings.toml index e8f251b..766c38f 100755 --- a/src/settings.toml +++ b/src/settings.toml @@ -1,2 +1,5 @@ CIRCUITPY_PYSTACK_SIZE=4000 -# FRUIT_JAM_OS_4x3=1 +# FRUIT_JAM_OS_BG=0x222222 +# FRUIT_JAM_OS_FG=0xffffff +# FRUIT_JAM_OS_ACCENT=0x008800 +# FRUIT_JAM_OS_ARROW=0x004abe