diff --git a/config.odin b/config.odin index 29fff16..62692af 100644 --- a/config.odin +++ b/config.odin @@ -20,16 +20,7 @@ parse_config :: proc(config_path: string, allocator := context.allocator) -> (Co config.font_size = DEFAULT_FONT_SIZE - config.colours.background = DEFAULT_BACKGROUND_COLOUR - config.colours.text = DEFAULT_TEXT_COLOUR - config.colours.line_numbers = DEFAULT_LINE_NUMBERS_COLOUR - config.colours.line_numbers_background = DEFAULT_LINE_NUMBER_BG_COLOUR - config.colours.active_tab = DEFAULT_ACTIVE_TAB_COLOUR - config.colours.inactive_tab = DEFAULT_INACTIVE_TAB_COLOUR - config.colours.cursor = DEFAULT_CURSOR_COLOUR - config.colours.highlight = DEFAULT_HIGHLIGHT_COLOUR - config.colours.status_bar = DEFAULT_STATUS_BAR_COLOUR - config.colours.status_bar_text = DEFAULT_STATUS_BAR_TEXT_COLUR + config.colours = themes["gruvbox dark hard"] // TODO: Tidy this up for section in ini_map { @@ -46,6 +37,14 @@ parse_config :: proc(config_path: string, allocator := context.allocator) -> (Co } else if lower_case_key == "font size" { config.font_size = strconv.atoi(ini_map[section][key]) } + + if lower_case_key == "theme" { + lower_case_theme := strings.to_lower(value) + defer delete(lower_case_theme) + + if lower_case_theme in themes do config.colours = themes[lower_case_theme] + else do log.errorf("theme, \"%s\" not found", lower_case_theme) + } } } else if lower_case_section == "colours" { for key, value in ini_map[section] { diff --git a/constants.odin b/constants.odin index a37b19a..22aaf7d 100644 --- a/constants.odin +++ b/constants.odin @@ -6,19 +6,6 @@ import "core:time" DEFAULT_WINDOW_MINIMUM_WINDOW_WIDTH :: 300 DEFAULT_WINDOW_MINIMUM_WINDOW_HEIGHT :: 200 -// Gruvbox Dark Hard Color Scheme Constants -DEFAULT_BACKGROUND_COLOUR :: Colour{29, 32, 33, 255} -DEFAULT_TEXT_COLOUR :: Colour{227, 218, 186, 255} -DEFAULT_LINE_NUMBERS_COLOUR :: Colour{146, 131, 116, 255} -DEFAULT_LINE_NUMBER_BG_COLOUR :: Colour{40, 40, 40, 255} -DEFAULT_ACTIVE_TAB_COLOUR :: Colour{60, 56, 54, 255} -DEFAULT_INACTIVE_TAB_COLOUR :: Colour{50, 48, 47, 255} -DEFAULT_TAB_BORDER_COLOUR :: Colour{102, 92, 84, 255} -DEFAULT_CURSOR_COLOUR :: Colour{251, 241, 199, 255} -DEFAULT_HIGHLIGHT_COLOUR :: Colour{60, 56, 54, 255} -DEFAULT_STATUS_BAR_COLOUR :: Colour{60, 56, 54, 255} -DEFAULT_STATUS_BAR_TEXT_COLUR :: Colour{197, 197, 55, 255} - // FONT DEFAULT_FONT :: "/usr/share/fonts/TTF/FiraCode-Regular.ttf" DEFAULT_FONT_SIZE :: 11