From 4109d9726398f59e0a183c4f44adc19b6d7346be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sun, 21 Jul 2019 11:06:28 +0200 Subject: [PATCH] conf: config now provides the colors (though still only hardcoded colors) --- config.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ config.h | 8 ++++++++ csi.c | 46 +--------------------------------------------- main.c | 46 ++++++++++++++++++++++++++++++++++------------ terminal.h | 4 ++-- 5 files changed, 95 insertions(+), 59 deletions(-) diff --git a/config.c b/config.c index 6d234264..a8135b53 100644 --- a/config.c +++ b/config.c @@ -16,6 +16,31 @@ #define LOG_ENABLE_DBG 0 #include "log.h" +static const uint32_t default_foreground = 0xdcdccc; +static const uint32_t default_background = 0x111111; + +static const uint32_t default_regular[] = { + 0x000000, + 0xcc9393, + 0x7f9f7f, + 0xd0bf8f, + 0x6ca0a3, + 0xdc8cc3, + 0x93e0e3, + 0xdcdccc, +}; + +static const uint32_t default_bright[] = { + 0x000000, + 0xdca3a3, + 0xbfebbf, + 0xf0dfaf, + 0x8cd0d3, + 0xdc8cc3, + 0x93e0e3, + 0xffffff, +}; + static char * get_shell(void) { @@ -219,6 +244,31 @@ config_load(struct config *conf) .term = strdup("foot"), .shell = get_shell(), .font = strdup("monospace"), + + .colors = { + .fg = default_foreground, + .bg = default_background, + .regular = { + default_regular[0], + default_regular[1], + default_regular[2], + default_regular[3], + default_regular[4], + default_regular[5], + default_regular[6], + default_regular[7], + }, + .bright = { + default_bright[0], + default_bright[1], + default_bright[2], + default_bright[3], + default_bright[4], + default_bright[5], + default_bright[6], + default_bright[7], + }, + }, }; char *path = get_config_path(); diff --git a/config.h b/config.h index fdca3c34..0db93269 100644 --- a/config.h +++ b/config.h @@ -1,11 +1,19 @@ #pragma once +#include #include struct config { char *term; char *shell; char *font; + + struct { + uint32_t fg; + uint32_t bg; + uint32_t regular[8]; + uint32_t bright[8]; + } colors; }; bool config_load(struct config *conf); diff --git a/csi.c b/csi.c index fb5e7cb9..86b1d4bc 100644 --- a/csi.c +++ b/csi.c @@ -18,31 +18,6 @@ #define min(x, y) ((x) < (y) ? (x) : (y)) -#if 0 -static const struct rgb colors_regular[] = { - {0.000000, 0.000000, 0.000000}, /* 0x000000 */ - {0.800000, 0.576471, 0.576471}, /* 0xcc9393 */ - {0.498039, 0.623529, 0.498039}, /* 0x7f9f7f */ - {0.815686, 0.749020, 0.560784}, /* 0xd0bf8f */ - {0.423529, 0.627451, 0.639216}, /* 0x6ca0a3 */ - {0.862745, 0.549020, 0.764706}, /* 0xdc8cc3 */ - {0.576471, 0.878431, 0.890196}, /* 0x93e0e3 */ - {0.862745, 0.862745, 0.800000}, /* 0xdcdccc */ -}; - -static const struct rgb colors_bright[] = { - {0.000000, 0.000000, 0.000000}, /* 0x000000 */ - {0.862745, 0.639216, 0.639216}, /* 0xdca3a3 */ - {0.749020, 0.921569, 0.749020}, /* 0xbfebbf */ - {0.941176, 0.874510, 0.686275}, /* 0xf0dfaf */ - {0.549020, 0.815686, 0.827451}, /* 0x8cd0d3 */ - {0.862745, 0.549020, 0.764706}, /* 0xdc8cc3 */ - {0.576471, 0.878431, 0.890196}, /* 0x93e0e3 */ - {1.000000, 1.000000, 1.000000}, /* 0xffffff */ -}; - -static struct rgb colors256[256]; -#else static const uint32_t colors_regular[] = { 0x000000, 0xcc9393, @@ -66,7 +41,6 @@ static const uint32_t colors_bright[] = { }; static uint32_t colors256[256]; -#endif static void __attribute__((constructor)) initialize_colors256(void) @@ -79,32 +53,14 @@ initialize_colors256(void) for (size_t r = 0; r < 6; r++) { for (size_t g = 0; g < 6; g++) { for (size_t b = 0; b < 6; b++) { -#if 0 - colors256[16 + r * 6 * 6 + g * 6 + b] = (struct rgb) { - r * 51 / 255.0, - g * 51 / 255.0, - b * 51 / 255.0, - }; -#else colors256[16 + r * 6 * 6 + g * 6 + b] = r * 51 << 16 | g * 51 << 8 | b * 51; -#endif } } } - for (size_t i = 0; i < 24; i++){ -#if 0 - colors256[232 + i] = (struct rgb) { - i * 11 / 255.0, - i * 11 / 255.0, - i * 11 / 255.0, - }; -#else - /* TODO: i + 1? */ + for (size_t i = 0; i < 24; i++) colors256[232 + i] = i * 11 << 16 | i * 11 << 8 | i * 11; -#endif - } } static void diff --git a/main.c b/main.c index 3903bf66..aedc1a29 100644 --- a/main.c +++ b/main.c @@ -36,14 +36,6 @@ #define min(x, y) ((x) < (y) ? (x) : (y)) #define max(x, y) ((x) > (y) ? (x) : (y)) -#if 0 -static const struct rgb default_foreground = {0.86, 0.86, 0.86}; -static const struct rgb default_background = {0.067, 0.067, 0.067}; -#else -static const uint32_t default_foreground = 0xdcdccc; -static const uint32_t default_background = 0x111111; -#endif - static void shm_format(void *data, struct wl_shm *wl_shm, uint32_t format) { @@ -335,8 +327,8 @@ main(int argc, char *const *argv) .vt = { .state = 1, /* STATE_GROUND */ .attrs = { - .foreground = default_foreground, - .background = default_background, + //.foreground = conf.colors.fg, + //.background = conf.colors.bg }, }, .kbd = { @@ -346,8 +338,30 @@ main(int argc, char *const *argv) .cmd = REPEAT_STOP, }, }, - .colors.fg = default_foreground, - .colors.bg = default_background, + .colors = { + .default_fg = conf.colors.fg, + .default_bg = conf.colors.bg, + .default_regular = { + conf.colors.regular[0], + conf.colors.regular[1], + conf.colors.regular[2], + conf.colors.regular[3], + conf.colors.regular[4], + conf.colors.regular[5], + conf.colors.regular[6], + conf.colors.regular[7], + }, + .default_bright = { + conf.colors.bright[0], + conf.colors.bright[1], + conf.colors.bright[2], + conf.colors.bright[3], + conf.colors.bright[4], + conf.colors.bright[5], + conf.colors.bright[6], + conf.colors.bright[7], + }, + }, .selection = { .start = {-1, -1}, .end = {-1, -1}, @@ -357,6 +371,14 @@ main(int argc, char *const *argv) .grid = &term.normal, }; + /* Initialize 'current' colors from the default colors */ + term.colors.fg = term.colors.default_fg; + term.colors.bg = term.colors.default_bg; + for (size_t i = 0; i < 8; i++) { + term.colors.regular[i] = term.colors.default_regular[i]; + term.colors.bright[i] = term.colors.default_bright[i]; + } + if (term.ptmx == -1) { LOG_ERRNO("failed to open pseudo terminal"); goto out; diff --git a/terminal.h b/terminal.h index a2ffbb92..c757065a 100644 --- a/terminal.h +++ b/terminal.h @@ -266,9 +266,9 @@ struct terminal { uint32_t bright[8]; uint32_t default_fg; - uint32_t defualt_bg; + uint32_t default_bg; uint32_t default_regular[8]; - uint32_t defualt_bright[8]; + uint32_t default_bright[8]; } colors; struct {