mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-06 04:06:06 -05:00
conf: config now provides the colors (though still only hardcoded colors)
This commit is contained in:
parent
29d855d7c6
commit
4109d97263
5 changed files with 95 additions and 59 deletions
50
config.c
50
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();
|
||||
|
|
|
|||
8
config.h
8
config.h
|
|
@ -1,11 +1,19 @@
|
|||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
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);
|
||||
|
|
|
|||
46
csi.c
46
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
|
||||
|
|
|
|||
46
main.c
46
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;
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue