#ifndef _CONFIGH_ #define _CONFIGH_ #include #include #include #include #include // should be ansi escape codes under \x1b[...m // if not prepared accordingly, it might break struct theme_colors { char *bg; char *fg; char *err; char *s_wl; char *s_xorg; char *s_shell; char *f_other; char *e_hostname; char *e_date; char *e_box; char *e_header; char *e_user; char *e_passwd; char *e_badpasswd; char *e_key; }; // even if they're multiple bytes long // they should only take up 1 char size on display struct theme_chars { char *hb; char *vb; char *ctl; char *ctr; char *cbl; char *cbr; }; struct theme { struct theme_colors colors; struct theme_chars chars; }; struct functions { enum keys poweroff; enum keys reboot; enum keys refresh; }; struct strings { char *f_poweroff; char *f_reboot; char *f_refresh; char *e_user; char *e_passwd; char *s_xorg; char *s_wayland; char *s_shell; }; struct behavior { bool include_defshell; }; struct config { struct theme theme; struct functions functions; struct strings strings; struct behavior behavior; }; bool line_parser( FILE* fd, ssize_t* blksize, u_char (*cb)(char *key, char *value)); // might use this for parsing .desktop files too struct config *parse_config(char *path); #endif