Merge branch 'feature/pmos-theme' into 'master'

Rework pmOS theme

Closes #30

See merge request cherrypicker/unl0kr!10
This commit is contained in:
Johannes Marbach 2022-11-13 19:34:18 +00:00
commit fbb3525139
42 changed files with 230 additions and 190 deletions

13
main.c
View file

@ -247,15 +247,8 @@ static void set_keyboard_hidden(bool is_hidden) {
lv_anim_t keyboard_anim; lv_anim_t keyboard_anim;
lv_anim_init(&keyboard_anim); lv_anim_init(&keyboard_anim);
lv_anim_set_var(&keyboard_anim, keyboard); lv_anim_set_var(&keyboard_anim, keyboard);
lv_anim_set_values(&keyboard_anim, is_hidden ? 0 : lv_obj_get_height(keyboard), is_hidden ? lv_obj_get_y(keyboard) : 0);
if (is_hidden) { lv_anim_set_path_cb(&keyboard_anim, lv_anim_path_ease_out);
lv_anim_set_values(&keyboard_anim, 0, lv_obj_get_y(keyboard));
lv_anim_set_path_cb(&keyboard_anim, lv_anim_path_ease_in_out);
} else {
lv_anim_set_values(&keyboard_anim, lv_obj_get_height(keyboard), 0);
lv_anim_set_path_cb(&keyboard_anim, lv_anim_path_overshoot);
}
lv_anim_set_time(&keyboard_anim, 500); lv_anim_set_time(&keyboard_anim, 500);
lv_anim_set_exec_cb(&keyboard_anim, keyboard_anim_y_cb); lv_anim_set_exec_cb(&keyboard_anim, keyboard_anim_y_cb);
lv_anim_start(&keyboard_anim); lv_anim_start(&keyboard_anim);
@ -275,7 +268,7 @@ static void shutdown_btn_clicked_cb(lv_event_t *event) {
LV_UNUSED(event); LV_UNUSED(event);
static const char *btns[] = { "Yes", "No", "" }; static const char *btns[] = { "Yes", "No", "" };
lv_obj_t *mbox = lv_msgbox_create(NULL, NULL, "Shutdown device?", btns, false); lv_obj_t *mbox = lv_msgbox_create(NULL, NULL, "Shutdown device?", btns, false);
lv_obj_set_width(mbox, 400); lv_obj_set_size(mbox, 400, LV_SIZE_CONTENT);
lv_obj_add_event_cb(mbox, shutdown_mbox_value_changed_cb, LV_EVENT_VALUE_CHANGED, NULL); lv_obj_add_event_cb(mbox, shutdown_mbox_value_changed_cb, LV_EVENT_VALUE_CHANGED, NULL);
lv_obj_center(mbox); lv_obj_center(mbox);
} }

View file

@ -57,7 +57,7 @@ default=$1
[input] [input]
keyboard=true keyboard=true
mouse=false pointer=false
touchscreen=false touchscreen=false
EOF EOF
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

49
theme.c
View file

@ -46,10 +46,12 @@ static struct {
lv_style_t textarea_placeholder; lv_style_t textarea_placeholder;
lv_style_t textarea_cursor; lv_style_t textarea_cursor;
lv_style_t dropdown; lv_style_t dropdown;
lv_style_t dropdown_pressed;
lv_style_t dropdown_list; lv_style_t dropdown_list;
lv_style_t dropdown_list_selected; lv_style_t dropdown_list_selected;
lv_style_t label; lv_style_t label;
lv_style_t msgbox; lv_style_t msgbox;
lv_style_t msgbox_label;
lv_style_t msgbox_btnmatrix; lv_style_t msgbox_btnmatrix;
lv_style_t msgbox_background; lv_style_t msgbox_background;
lv_style_t bar; lv_style_t bar;
@ -164,14 +166,19 @@ static void init_styles(const ul_theme *theme) {
lv_style_set_anim_time(&(styles.textarea_cursor), theme->textarea.cursor.period); lv_style_set_anim_time(&(styles.textarea_cursor), theme->textarea.cursor.period);
reset_style(&(styles.dropdown)); reset_style(&(styles.dropdown));
lv_style_set_text_color(&(styles.dropdown), lv_color_hex(theme->dropdown.box.fg_color)); lv_style_set_text_color(&(styles.dropdown), lv_color_hex(theme->dropdown.button.normal.fg_color));
lv_style_set_bg_opa(&(styles.dropdown), LV_OPA_COVER); lv_style_set_bg_opa(&(styles.dropdown), LV_OPA_COVER);
lv_style_set_bg_color(&(styles.dropdown), lv_color_hex(theme->dropdown.box.bg_color)); lv_style_set_bg_color(&(styles.dropdown), lv_color_hex(theme->dropdown.button.normal.bg_color));
lv_style_set_border_side(&(styles.dropdown), LV_BORDER_SIDE_FULL); lv_style_set_border_side(&(styles.dropdown), LV_BORDER_SIDE_FULL);
lv_style_set_border_width(&(styles.dropdown), lv_dpx(theme->dropdown.box.border_width)); lv_style_set_border_width(&(styles.dropdown), lv_dpx(theme->dropdown.button.border_width));
lv_style_set_border_color(&(styles.dropdown), lv_color_hex(theme->dropdown.box.border_color)); lv_style_set_border_color(&(styles.dropdown), lv_color_hex(theme->dropdown.button.normal.border_color));
lv_style_set_radius(&(styles.dropdown), lv_dpx(theme->dropdown.box.corner_radius)); lv_style_set_radius(&(styles.dropdown), lv_dpx(theme->dropdown.button.corner_radius));
lv_style_set_pad_all(&(styles.dropdown), lv_dpx(theme->dropdown.box.pad)); lv_style_set_pad_all(&(styles.dropdown), lv_dpx(theme->dropdown.button.pad));
reset_style(&(styles.dropdown_pressed));
lv_style_set_text_color(&(styles.dropdown_pressed), lv_color_hex(theme->dropdown.button.pressed.fg_color));
lv_style_set_bg_color(&(styles.dropdown_pressed), lv_color_hex(theme->dropdown.button.pressed.bg_color));
lv_style_set_border_color(&(styles.dropdown_pressed), lv_color_hex(theme->dropdown.button.pressed.border_color));
reset_style(&(styles.dropdown_list)); reset_style(&(styles.dropdown_list));
lv_style_set_text_color(&(styles.dropdown_list), lv_color_hex(theme->dropdown.list.fg_color)); lv_style_set_text_color(&(styles.dropdown_list), lv_color_hex(theme->dropdown.list.fg_color));
@ -201,9 +208,13 @@ static void init_styles(const ul_theme *theme) {
lv_style_set_radius(&(styles.msgbox), lv_dpx(theme->msgbox.corner_radius)); lv_style_set_radius(&(styles.msgbox), lv_dpx(theme->msgbox.corner_radius));
lv_style_set_pad_all(&(styles.msgbox), lv_dpx(theme->msgbox.pad)); lv_style_set_pad_all(&(styles.msgbox), lv_dpx(theme->msgbox.pad));
reset_style(&(styles.msgbox_label));
lv_style_set_text_align(&(styles.msgbox_label), LV_TEXT_ALIGN_CENTER);
lv_style_set_pad_bottom(&(styles.msgbox_label), lv_dpx(theme->msgbox.gap));
reset_style(&(styles.msgbox_btnmatrix)); reset_style(&(styles.msgbox_btnmatrix));
lv_style_set_pad_top(&(styles.msgbox_btnmatrix), lv_dpx(theme->msgbox.buttons.pad));
lv_style_set_pad_gap(&(styles.msgbox_btnmatrix), lv_dpx(theme->msgbox.buttons.gap)); lv_style_set_pad_gap(&(styles.msgbox_btnmatrix), lv_dpx(theme->msgbox.buttons.gap));
lv_style_set_min_width(&(styles.msgbox_btnmatrix), LV_PCT(100));
reset_style(&(styles.msgbox_background)); reset_style(&(styles.msgbox_background));
lv_style_set_bg_color(&(styles.msgbox_background), lv_color_hex(theme->msgbox.dimming.color)); lv_style_set_bg_color(&(styles.msgbox_background), lv_color_hex(theme->msgbox.dimming.color));
@ -257,6 +268,10 @@ static void apply_theme_cb(lv_theme_t *theme, lv_obj_t *obj) {
return; return;
} }
if (lv_obj_check_type(obj, &lv_label_class) && lv_obj_check_type(lv_obj_get_parent(obj), &lv_btn_class)) {
return; /* Inherit styling from button */
}
if (lv_obj_check_type(obj, &lv_textarea_class)) { if (lv_obj_check_type(obj, &lv_textarea_class)) {
lv_obj_add_style(obj, &(styles.textarea), 0); lv_obj_add_style(obj, &(styles.textarea), 0);
lv_obj_add_style(obj, &(styles.textarea_placeholder), LV_PART_TEXTAREA_PLACEHOLDER); lv_obj_add_style(obj, &(styles.textarea_placeholder), LV_PART_TEXTAREA_PLACEHOLDER);
@ -264,8 +279,13 @@ static void apply_theme_cb(lv_theme_t *theme, lv_obj_t *obj) {
return; return;
} }
if (lv_obj_check_type(obj, &lv_label_class) && lv_obj_check_type(lv_obj_get_parent(obj), &lv_textarea_class)) {
return; /* Inherit styling from textarea */
}
if (lv_obj_check_type(obj, &lv_dropdown_class)) { if (lv_obj_check_type(obj, &lv_dropdown_class)) {
lv_obj_add_style(obj, &(styles.dropdown), 0); lv_obj_add_style(obj, &(styles.dropdown), 0);
lv_obj_add_style(obj, &(styles.dropdown_pressed), LV_STATE_PRESSED);
return; return;
} }
@ -276,9 +296,8 @@ static void apply_theme_cb(lv_theme_t *theme, lv_obj_t *obj) {
return; return;
} }
if (lv_obj_check_type(obj, &lv_label_class) || lv_obj_check_type(obj, &lv_spangroup_class)) { if (lv_obj_check_type(obj, &lv_label_class) && lv_obj_check_type(lv_obj_get_parent(obj), &lv_dropdownlist_class)) {
lv_obj_add_style(obj, &(styles.label), 0); return; /* Inherit styling from dropdown list */
return;
} }
if (lv_obj_check_type(obj, &lv_msgbox_class)) { if (lv_obj_check_type(obj, &lv_msgbox_class)) {
@ -286,6 +305,11 @@ static void apply_theme_cb(lv_theme_t *theme, lv_obj_t *obj) {
return; return;
} }
if (lv_obj_check_type(obj, &lv_label_class) && (lv_obj_check_type(lv_obj_get_parent(obj), &lv_msgbox_class) || lv_obj_check_type(lv_obj_get_parent(obj), &lv_msgbox_content_class))) {
lv_obj_add_style(obj, &(styles.msgbox_label), 0);
return; /* Inherit styling from message box */
}
if (lv_obj_check_type(obj, &lv_btnmatrix_class) && lv_obj_check_type(lv_obj_get_parent(obj), &lv_msgbox_class)) { if (lv_obj_check_type(obj, &lv_btnmatrix_class) && lv_obj_check_type(lv_obj_get_parent(obj), &lv_msgbox_class)) {
lv_obj_add_style(obj, &(styles.msgbox_btnmatrix), 0); lv_obj_add_style(obj, &(styles.msgbox_btnmatrix), 0);
lv_obj_add_style(obj, &(styles.button), LV_PART_ITEMS); lv_obj_add_style(obj, &(styles.button), LV_PART_ITEMS);
@ -298,6 +322,11 @@ static void apply_theme_cb(lv_theme_t *theme, lv_obj_t *obj) {
return; return;
} }
if (lv_obj_check_type(obj, &lv_label_class) || lv_obj_check_type(obj, &lv_spangroup_class)) {
lv_obj_add_style(obj, &(styles.label), 0);
return;
}
if (lv_obj_check_type(obj, &lv_bar_class)) { if (lv_obj_check_type(obj, &lv_bar_class)) {
lv_obj_add_style(obj, &(styles.bar), 0); lv_obj_add_style(obj, &(styles.bar), 0);
lv_obj_add_style(obj, &(styles.bar_indicator), LV_PART_INDICATOR); lv_obj_add_style(obj, &(styles.bar_indicator), LV_PART_INDICATOR);

14
theme.h
View file

@ -114,16 +114,6 @@ typedef struct {
ul_theme_textarea_cursor cursor; ul_theme_textarea_cursor cursor;
} ul_theme_textarea; } ul_theme_textarea;
/* Dropdown box theme */
typedef struct {
uint32_t fg_color;
uint32_t bg_color;
lv_coord_t border_width;
uint32_t border_color;
lv_coord_t corner_radius;
lv_coord_t pad;
} ul_theme_dropdown_box;
/* Dropdown list theme */ /* Dropdown list theme */
typedef struct { typedef struct {
uint32_t fg_color; uint32_t fg_color;
@ -138,7 +128,7 @@ typedef struct {
/* Dropdown theme */ /* Dropdown theme */
typedef struct { typedef struct {
ul_theme_dropdown_box box; ul_theme_button button;
ul_theme_dropdown_list list; ul_theme_dropdown_list list;
} ul_theme_dropdown; } ul_theme_dropdown;
@ -149,7 +139,6 @@ typedef struct {
/* Message box buttons theme */ /* Message box buttons theme */
typedef struct { typedef struct {
lv_coord_t pad;
lv_coord_t gap; lv_coord_t gap;
} ul_theme_msgbox_buttons; } ul_theme_msgbox_buttons;
@ -167,6 +156,7 @@ typedef struct {
uint32_t border_color; uint32_t border_color;
lv_coord_t corner_radius; lv_coord_t corner_radius;
lv_coord_t pad; lv_coord_t pad;
lv_coord_t gap;
ul_theme_msgbox_buttons buttons; ul_theme_msgbox_buttons buttons;
ul_theme_msgbox_dimming dimming; ul_theme_msgbox_dimming dimming;
} ul_theme_msgbox; } ul_theme_msgbox;

336
themes.c
View file

@ -127,13 +127,20 @@ static const ul_theme ul_themes_breezy_light = {
} }
}, },
.dropdown = { .dropdown = {
.box = { .button = {
.fg_color = 0x232629,
.bg_color = 0xeff0f1,
.border_width = 1, .border_width = 1,
.border_color = 0xbdc3c7,
.corner_radius = 5, .corner_radius = 5,
.pad = 5 .pad = 5,
.normal = {
.fg_color = 0x232629,
.bg_color = 0xeff0f1,
.border_color = 0xbdc3c7
},
.pressed = {
.fg_color = 0x232629,
.bg_color = 0x3daee9,
.border_color = 0x2980b9
}
}, },
.list = { .list = {
.fg_color = 0x232629, .fg_color = 0x232629,
@ -155,9 +162,9 @@ static const ul_theme ul_themes_breezy_light = {
.border_width = 1, .border_width = 1,
.border_color = 0xbdc3c7, .border_color = 0xbdc3c7,
.corner_radius = 0, .corner_radius = 0,
.pad = 10, .pad = 20,
.gap = 20,
.buttons = { .buttons = {
.pad = 10,
.gap = 5 .gap = 5
}, },
.dimming = { .dimming = {
@ -278,13 +285,20 @@ static const ul_theme ul_themes_breezy_dark = {
} }
}, },
.dropdown = { .dropdown = {
.box = { .button = {
.fg_color = 0xeff0f1,
.bg_color = 0x31363b,
.border_width = 1, .border_width = 1,
.border_color = 0x7f8c8d,
.corner_radius = 5, .corner_radius = 5,
.pad = 5 .pad = 5,
.normal = {
.fg_color = 0xeff0f1,
.bg_color = 0x31363b,
.border_color = 0xbdc3c7
},
.pressed = {
.fg_color = 0xeff0f1,
.bg_color = 0x3daee9,
.border_color = 0x2980b9
}
}, },
.list = { .list = {
.fg_color = 0xeff0f1, .fg_color = 0xeff0f1,
@ -306,9 +320,9 @@ static const ul_theme ul_themes_breezy_dark = {
.border_width = 1, .border_width = 1,
.border_color = 0x3b4045, .border_color = 0x3b4045,
.corner_radius = 0, .corner_radius = 0,
.pad = 10, .pad = 20,
.gap = 20,
.buttons = { .buttons = {
.pad = 10,
.gap = 5 .gap = 5
}, },
.dimming = { .dimming = {
@ -326,300 +340,314 @@ static const ul_theme ul_themes_breezy_dark = {
} }
}; };
/* pmOS light */ /* pmOS light (based on palette https://coolors.co/009900-395e66-db504a-e3b505-ebf5ee) */
static const ul_theme ul_themes_pmos_light = { static const ul_theme ul_themes_pmos_light = {
.name = "pmos-light", .name = "pmos-light",
.window = { .window = {
.bg_color = 0xffffff .bg_color = 0xf2f7f8,
}, },
.header = { .header = {
.bg_color = 0xffffff, .bg_color = 0xf2f7f8,
.border_width = 8, .border_width = 0,
.border_color = 0x009900, .border_color = 0xf2f7f8,
.pad = 30, .pad = 20,
.gap = 20 .gap = 10
}, },
.keyboard = { .keyboard = {
.bg_color = 0xffffff, .bg_color = 0xd8e6e9,
.border_width = 8, .border_width = 2,
.border_color = 0x009900, .border_color = 0x97bcc4,
.pad = 30, .pad = 20,
.gap = 10, .gap = 10,
.keys = { .keys = {
.border_width = 2, .border_width = 1,
.corner_radius = 5, .corner_radius = 3,
.key_char = { .key_char = {
.normal = { .normal = {
.fg_color = 0x000000, .fg_color = 0x070c0d,
.bg_color = 0xffffff, .bg_color = 0xd8e6e9,
.border_color = 0x009900 .border_color = 0x97bcc4
}, },
.pressed = { .pressed = {
.fg_color = 0xffffff, .fg_color = 0xf2f7f8,
.bg_color = 0x000000, .bg_color = 0x009900,
.border_color = 0x009900 .border_color = 0x009900
} }
}, },
.key_non_char = { .key_non_char = {
.normal = { .normal = {
.fg_color = 0x000000, .fg_color = 0x070c0d,
.bg_color = 0xffffff, .bg_color = 0xbed5da,
.border_color = 0x009900 .border_color = 0xb1cdd3
}, },
.pressed = { .pressed = {
.fg_color = 0xffffff, .fg_color = 0xf2f7f8,
.bg_color = 0x000000, .bg_color = 0x009900,
.border_color = 0x009900 .border_color = 0x009900
} }
}, },
.key_mod_act = { .key_mod_act = {
.normal = { .normal = {
.fg_color = 0x000000, .fg_color = 0x009900,
.bg_color = 0xffffff, .bg_color = 0xbed5da,
.border_color = 0x009900 .border_color = 0x009900
}, },
.pressed = { .pressed = {
.fg_color = 0xffffff, .fg_color = 0xf2f7f8,
.bg_color = 0x000000, .bg_color = 0x009900,
.border_color = 0x009900 .border_color = 0x009900
} }
}, },
.key_mod_inact = { .key_mod_inact = {
.normal = { .normal = {
.fg_color = 0x000000, .fg_color = 0x070c0d,
.bg_color = 0xffffff, .bg_color = 0xbed5da,
.border_color = 0x009900 .border_color = 0xb1cdd3
}, },
.pressed = { .pressed = {
.fg_color = 0xffffff, .fg_color = 0xf2f7f8,
.bg_color = 0x000000, .bg_color = 0x009900,
.border_color = 0x009900 .border_color = 0x009900
} }
} }
} }
}, },
.button = { .button = {
.border_width = 0, .border_width = 1,
.corner_radius = 0, .corner_radius = 3,
.pad = 8, .pad = 8,
.normal = { .normal = {
.fg_color = 0x000000, .fg_color = 0x070c0d,
.bg_color = 0xffffff, .bg_color = 0xbed5da,
.border_color = 0x000000 .border_color = 0xb1cdd3
}, },
.pressed = { .pressed = {
.fg_color = 0xffffff, .fg_color = 0xf2f7f8,
.bg_color = 0x000000, .bg_color = 0x009900,
.border_color = 0x000000 .border_color = 0x009900
} }
}, },
.textarea = { .textarea = {
.fg_color = 0x000000, .fg_color = 0x070c0d,
.bg_color = 0xb1b1b1, .bg_color = 0xebffeb,
.border_width = 0, .border_width = 1,
.border_color = 0xb1b1b1, .border_color = 0x009900,
.corner_radius = 0, .corner_radius = 3,
.pad = 8, .pad = 8,
.placeholder_color = 0x000000, .placeholder_color = 0x009900,
.cursor = { .cursor = {
.width = 2, .width = 2,
.color = 0x000000, .color = 0x009900,
.period = 700 .period = 700
} }
}, },
.dropdown = { .dropdown = {
.box = { .button = {
.fg_color = 0x000000, .border_width = 1,
.bg_color = 0xffffff, .corner_radius = 3,
.border_width = 0, .pad = 8,
.border_color = 0xffffff, .normal = {
.corner_radius = 0, .fg_color = 0x070c0d,
.pad = 10 .bg_color = 0xbed5da,
.border_color = 0xb1cdd3
},
.pressed = {
.fg_color = 0xf2f7f8,
.bg_color = 0x009900,
.border_color = 0x009900
}
}, },
.list = { .list = {
.fg_color = 0x000000, .fg_color = 0x070c0d,
.bg_color = 0xffffff, .bg_color = 0xd8e6e9,
.selection_fg_color = 0xffffff, .selection_fg_color = 0xf2f7f8,
.selection_bg_color = 0x009900, .selection_bg_color = 0x009900,
.border_width = 0, .border_width = 1,
.border_color = 0xffffff, .border_color = 0x97bcc4,
.corner_radius = 0, .corner_radius = 0,
.pad = 0 .pad = 8
} }
}, },
.label = { .label = {
.fg_color = 0x000000 .fg_color = 0x070c0d
}, },
.msgbox = { .msgbox = {
.fg_color = 0x000000, .fg_color = 0x070c0d,
.bg_color = 0xb1b1b1, .bg_color = 0xd8e6e9,
.border_width = 0, .border_width = 1,
.border_color = 0xb1b1b1, .border_color = 0x97bcc4,
.corner_radius = 0, .corner_radius = 3,
.pad = 20, .pad = 20,
.gap = 20,
.buttons = { .buttons = {
.pad = 20,
.gap = 10 .gap = 10
}, },
.dimming = { .dimming = {
.color = 0x232629, .color = 0x070c0d,
.opacity = 178 .opacity = 225
} }
}, },
.bar = { .bar = {
.border_width = 1, .border_width = 1,
.border_color = 0x009900, .border_color = 0x009900,
.corner_radius = 5, .corner_radius = 3,
.indicator = { .indicator = {
.bg_color = 0x009900 .bg_color = 0x009900
} }
} }
}; };
/* pmOS dark */ /* pmOS dark (based on palette https://coolors.co/009900-395e66-db504a-e3b505-ebf5ee) */
static const ul_theme ul_themes_pmos_dark = { static const ul_theme ul_themes_pmos_dark = {
.name = "pmos-dark", .name = "pmos-dark",
.window = { .window = {
.bg_color = 0x000000 .bg_color = 0x070c0d
}, },
.header = { .header = {
.bg_color = 0x000000, .bg_color = 0x070c0d,
.border_width = 8, .border_width = 0,
.border_color = 0x009900, .border_color = 0x070c0d,
.pad = 30, .pad = 20,
.gap = 20 .gap = 10
}, },
.keyboard = { .keyboard = {
.bg_color = 0x000000, .bg_color = 0x162427,
.border_width = 8, .border_width = 2,
.border_color = 0x009900, .border_color = 0x395e66,
.pad = 30, .pad = 20,
.gap = 10, .gap = 10,
.keys = { .keys = {
.border_width = 2, .border_width = 1,
.corner_radius = 5, .corner_radius = 3,
.key_char = { .key_char = {
.normal = { .normal = {
.fg_color = 0xffffff, .fg_color = 0xf2f7f8,
.bg_color = 0x000000, .bg_color = 0x162427,
.border_color = 0x009900 .border_color = 0x395e66
}, },
.pressed = { .pressed = {
.fg_color = 0x000000, .fg_color = 0xf2f7f8,
.bg_color = 0xffffff, .bg_color = 0x009900,
.border_color = 0x009900 .border_color = 0x009900
} }
}, },
.key_non_char = { .key_non_char = {
.normal = { .normal = {
.fg_color = 0xffffff, .fg_color = 0xf2f7f8,
.bg_color = 0x000000, .bg_color = 0x253c41,
.border_color = 0x009900 .border_color = 0x2c484e
}, },
.pressed = { .pressed = {
.fg_color = 0x000000, .fg_color = 0xf2f7f8,
.bg_color = 0xffffff, .bg_color = 0x009900,
.border_color = 0x009900 .border_color = 0x009900
} }
}, },
.key_mod_act = { .key_mod_act = {
.normal = { .normal = {
.fg_color = 0xffffff, .fg_color = 0x009900,
.bg_color = 0x000000, .bg_color = 0x253c41,
.border_color = 0x009900 .border_color = 0x009900
}, },
.pressed = { .pressed = {
.fg_color = 0x000000, .fg_color = 0xf2f7f8,
.bg_color = 0xffffff, .bg_color = 0x009900,
.border_color = 0x009900 .border_color = 0x009900
} }
}, },
.key_mod_inact = { .key_mod_inact = {
.normal = { .normal = {
.fg_color = 0xffffff, .fg_color = 0xf2f7f8,
.bg_color = 0x000000, .bg_color = 0x253c41,
.border_color = 0x009900 .border_color = 0x2c484e
}, },
.pressed = { .pressed = {
.fg_color = 0x000000, .fg_color = 0xf2f7f8,
.bg_color = 0xffffff, .bg_color = 0x009900,
.border_color = 0x009900 .border_color = 0x009900
} }
} }
} }
}, },
.button = { .button = {
.border_width = 0, .border_width = 1,
.corner_radius = 0, .corner_radius = 3,
.pad = 8, .pad = 8,
.normal = { .normal = {
.fg_color = 0xffffff, .fg_color = 0xf2f7f8,
.bg_color = 0x000000, .bg_color = 0x253c41,
.border_color = 0x000000 .border_color = 0x2c484e
}, },
.pressed = { .pressed = {
.fg_color = 0x000000, .fg_color = 0xf2f7f8,
.bg_color = 0xffffff, .bg_color = 0x009900,
.border_color = 0x000000 .border_color = 0x009900
} }
}, },
.textarea = { .textarea = {
.fg_color = 0xffffff, .fg_color = 0xf2f7f8,
.bg_color = 0x616161, .bg_color = 0x002900,
.border_width = 0, .border_width = 1,
.border_color = 0x616161, .border_color = 0x009900,
.corner_radius = 0, .corner_radius = 3,
.pad = 8, .pad = 8,
.placeholder_color = 0xffffff, .placeholder_color = 0x009900,
.cursor = { .cursor = {
.width = 2, .width = 2,
.color = 0x000000, .color = 0x009900,
.period = 700 .period = 700
} }
}, },
.dropdown = { .dropdown = {
.box = { .button = {
.fg_color = 0xffffff, .border_width = 1,
.bg_color = 0x000000, .corner_radius = 3,
.border_width = 0, .pad = 8,
.border_color = 0x000000, .normal = {
.corner_radius = 0, .fg_color = 0xf2f7f8,
.pad = 10 .bg_color = 0x253c41,
.border_color = 0x2c484e
},
.pressed = {
.fg_color = 0xf2f7f8,
.bg_color = 0x009900,
.border_color = 0x009900
}
}, },
.list = { .list = {
.fg_color = 0xffffff, .fg_color = 0xf2f7f8,
.bg_color = 0x000000, .bg_color = 0x162427,
.selection_fg_color = 0xffffff, .selection_fg_color = 0xf2f7f8,
.selection_bg_color = 0x009900, .selection_bg_color = 0x009900,
.border_width = 0, .border_width = 1,
.border_color = 0x000000, .border_color = 0x395e66,
.corner_radius = 0, .corner_radius = 0,
.pad = 0 .pad = 8
} }
}, },
.label = { .label = {
.fg_color = 0xffffff .fg_color = 0xf2f7f8,
}, },
.msgbox = { .msgbox = {
.fg_color = 0xffffff, .fg_color = 0xf2f7f8,
.bg_color = 0x616161, .bg_color = 0x162427,
.border_width = 0, .border_width = 1,
.border_color = 0x616161, .border_color = 0x395e66,
.corner_radius = 0, .corner_radius = 3,
.pad = 20, .pad = 20,
.gap = 20,
.buttons = { .buttons = {
.pad = 20,
.gap = 10 .gap = 10
}, },
.dimming = { .dimming = {
.color = 0x232629, .color = 0x070c0d,
.opacity = 178 .opacity = 225
} }
}, },
.bar = { .bar = {
.border_width = 1, .border_width = 1,
.border_color = 0x009900, .border_color = 0x009900,
.corner_radius = 5, .corner_radius = 3,
.indicator = { .indicator = {
.bg_color = 0x009900 .bg_color = 0x009900
} }

View file

@ -4,7 +4,7 @@ animations=true
#timeout=300 #timeout=300
[keyboard] [keyboard]
autohide=true autohide=false
layout=us layout=us
popovers=true popovers=true
@ -13,8 +13,8 @@ obscured=true
#bullet= #bullet=
[theme] [theme]
default=breezy-dark default=pmos-light
alternate=breezy-light alternate=pmos-dark
#[input] #[input]
#keyboard=false #keyboard=false