From c6c12d127d9fc08ef76a3a277de79f6ac17ce475 Mon Sep 17 00:00:00 2001 From: Matty G Date: Wed, 26 Aug 2026 23:12:41 +1200 Subject: [PATCH 1/2] feat: Create aerc theme --- Makefile | 36 ++++++++++- aerc/yui_dark | 105 ++++++++++++++++++++++++++++++++ aerc/yui_light | 105 ++++++++++++++++++++++++++++++++ src/main.lua | 3 + src/themes/aerc/template.lua | 115 +++++++++++++++++++++++++++++++++++ src/themes/aerc/theme.lua | 49 +++++++++++++++ 6 files changed, 412 insertions(+), 1 deletion(-) create mode 100644 aerc/yui_dark create mode 100644 aerc/yui_light create mode 100644 src/themes/aerc/template.lua create mode 100644 src/themes/aerc/theme.lua diff --git a/Makefile b/Makefile index 78be673..cfeab2d 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ .PHONY: all -all: colors/yui.vim colors/yui_dark.vim colors/yui_light.vim doc/yui.txt autoload/lightline/colorscheme/yui_dark.vim autoload/lightline/colorscheme/yui.vim alacritty/yui_dark.toml alacritty/yui_dark.yml alacritty/yui_light.yml alacritty/yui_light.toml alacritty/yui_dark_msg.sh alacritty/yui_light_msg.sh fish/yui.fish fish/yui_dark.fish css/yui.css css/yui_light.css css/yui_dark.css html/index.html ghostty/yui_dark ghostty/yui_light +all: colors/yui.vim colors/yui_dark.vim colors/yui_light.vim doc/yui.txt autoload/lightline/colorscheme/yui_dark.vim autoload/lightline/colorscheme/yui.vim alacritty/yui_dark.toml alacritty/yui_dark.yml alacritty/yui_light.yml alacritty/yui_light.toml alacritty/yui_dark_msg.sh alacritty/yui_light_msg.sh fish/yui.fish fish/yui_dark.fish css/yui.css css/yui_light.css css/yui_dark.css html/index.html ghostty/yui_dark ghostty/yui_light aerc/yui_light aerc/yui_dark lua_path = src/?.lua;src/lib/?.lua lua_files = $(shell find src) @@ -84,6 +84,40 @@ ghostty/yui_light: $(lua_files) @mkdir -p ghostty LUA_PATH="$(lua_path)" lua -e 'print(require("main").light.ghostty)' > $@ +<<<<<<< HEAD +||||||| parent of c19702b (feat: Create aerc styleset) +warp/yui_light.yaml: $(lua_files) + @mkdir -p warp + LUA_PATH="$(lua_path)" lua -e 'print(require("main").light.warp)' > $@ + +warp/yui_dark.yaml: $(lua_files) + @mkdir -p warp + LUA_PATH="$(lua_path)" lua -e 'print(require("main").dark.warp)' > $@ + +======= +warp/yui_light.yaml: $(lua_files) + @mkdir -p warp + LUA_PATH="$(lua_path)" lua -e 'print(require("main").light.warp)' > $@ + +warp/yui_dark.yaml: $(lua_files) + @mkdir -p warp + LUA_PATH="$(lua_path)" lua -e 'print(require("main").dark.warp)' > $@ + +aerc/yui_light: $(lua_files) + @mkdir -p aerc + LUA_PATH="$(lua_path)" lua -e 'print(require("main").light.aerc)' > $@ + +aerc/yui_dark: $(lua_files) + @mkdir -p aerc + LUA_PATH="$(lua_path)" lua -e 'print(require("main").dark.aerc)' > $@ + +>>>>>>> c19702b (feat: Create aerc styleset) .PHONY: clean clean: +<<<<<<< HEAD @rm -rf colors/ autoload/lightline/ alacritty/ fish/ ghostty/ doc/ css/ html/ +||||||| parent of c19702b (feat: Create aerc styleset) + @rm -rf colors/ autoload/lightline/ alacritty/ fish/ ghostty/ warp/ doc/ css/ html/ +======= + @rm -rf colors/ autoload/lightline/ alacritty/ fish/ ghostty/ warp/ aerc/ doc/ css/ html/ +>>>>>>> c19702b (feat: Create aerc styleset) diff --git a/aerc/yui_dark b/aerc/yui_dark new file mode 100644 index 0000000..de385b7 --- /dev/null +++ b/aerc/yui_dark @@ -0,0 +1,105 @@ +# vim: ft=dosini + +*.default=true +*.normal=true + +default.fg=#aaaab5 +default.bg=#1F1F29 + +error.fg=#F55661 +error.bold=true +warning.fg=#cfb787 +success.fg=#70cf92 + +title.fg=#c8c8d0 +title.bg=#2e2e3c +title.bold=true +header.fg=#69aafd +header.bold=true +border.fg=#12121d +spinner.fg=#E66F51 + +tab.fg=#5e5e73 +tab.bg=#252531 +tab.selected.fg=#aaaab5 +tab.selected.bg=#1F1F29 +tab.selected.bold=true + +statusline_default.fg=#c8c8d0 +statusline_default.bg=#2e2e3c +statusline_error.fg=#ee5c66 +statusline_error.bg=#2c2737 +statusline_warning.fg=#cfb787 +statusline_warning.bg=#302b38 +statusline_success.fg=#70cf92 +statusline_success.bg=#2a2d35 + +*.selected.fg=#c8c8d0 +*.selected.bg=#2e2e3c + +msglist_unread.fg=#E66F51 +msglist_unread.bold=true +msglist_answered.fg=#70cf92 +msglist_forwarded.fg=#70cf92 +msglist_flagged.fg=#cfb787 +msglist_flagged.bold=true +msglist_deleted.fg=#5f5f72 +msglist_deleted.dim=true +msglist_marked.fg=#69aafd +msglist_marked.bg=#292a3d +msglist_result.fg=#2e2e3c +msglist_result.bg=#c8c8d0 +msglist_thread_folded.fg=#69aafd +msglist_thread_context.fg=#5f5f72 +msglist_thread_orphan.fg=#2b2b37 +msglist_gutter.bg=#252531 +msglist_pill.fg=#c8c8d0 +msglist_pill.bg=#373747 + +dirlist_unread.fg=#E66F51 +dirlist_unread.bold=true +dirlist_recent.fg=#69aafd + +completion_default.fg=#c8c8d0 +completion_default.bg=#2e2e3c +completion_description.fg=#5f5f72 +completion_description.dim=true +completion_gutter.bg=#252531 +completion_pill.fg=#c8c8d0 +completion_pill.bg=#373747 + +selector_focused.fg=#69aafd +selector_focused.bg=#292a3d +selector_focused.bold=true +selector_chooser.bold=true + +part_mimetype.fg=#5f5f72 +part_filename.fg=#69aafd +part_filename.selected.bold=true + +[viewer] +*.default=true +*.normal=true +header.fg=#69aafd +header.bold=true +signature.fg=#5f5f72 +signature.dim=true +url.fg=#69aafd +url.underline=true +diff_meta.fg=#5f5f72 +diff_meta.bold=true +diff_chunk.fg=#18c6ce +diff_chunk_func.fg=#18c6ce +diff_chunk_func.dim=true +diff_add.fg=#70cf92 +diff_del.fg=#F55661 +diff_whitespace.bg=#2c2737 +quote_1.fg=#69aafd +quote_2.fg=#70cf92 +quote_3.fg=#b5a0ff +quote_4.fg=#18c6ce +quote_4.dim=true +quote_x.fg=#5f5f72 +quote_x.dim=true +code.fg=#18c6ce + diff --git a/aerc/yui_light b/aerc/yui_light new file mode 100644 index 0000000..c42fe17 --- /dev/null +++ b/aerc/yui_light @@ -0,0 +1,105 @@ +# vim: ft=dosini + +*.default=true +*.normal=true + +default.fg=#3D3C44 +default.bg=#F1EDED + +error.fg=#B22E32 +error.bold=true +warning.fg=#b17900 +success.fg=#346e27 + +title.fg=#5c4040 +title.bg=#e5dede +title.bold=true +header.fg=#3856d1 +header.bold=true +border.fg=#bca3a3 +spinner.fg=#C43E1C + +tab.fg=#ac9090 +tab.bg=#ebe6e6 +tab.selected.fg=#3D3C44 +tab.selected.bg=#F1EDED +tab.selected.bold=true + +statusline_default.fg=#5c4040 +statusline_default.bg=#e5dede +statusline_error.fg=#B22E32 +statusline_error.bg=#f2d8d8 +statusline_warning.fg=#615413 +statusline_warning.bg=#fde37c +statusline_success.fg=#565633 +statusline_success.bg=#e8e792 + +*.selected.fg=#5c4040 +*.selected.bg=#e5dede + +msglist_unread.fg=#C43E1C +msglist_unread.bold=true +msglist_answered.fg=#346e27 +msglist_forwarded.fg=#346e27 +msglist_flagged.fg=#b17900 +msglist_flagged.bold=true +msglist_deleted.fg=#9f8a99 +msglist_deleted.dim=true +msglist_marked.fg=#42267d +msglist_marked.bg=#ccc2f2 +msglist_result.fg=#e5dede +msglist_result.bg=#5c4040 +msglist_thread_folded.fg=#3856d1 +msglist_thread_context.fg=#9f8a99 +msglist_thread_orphan.fg=#d1c4c8 +msglist_gutter.bg=#ebe6e6 +msglist_pill.fg=#614343 +msglist_pill.bg=#dbd1d1 + +dirlist_unread.fg=#C43E1C +dirlist_unread.bold=true +dirlist_recent.fg=#3856d1 + +completion_default.fg=#5c4040 +completion_default.bg=#e5dede +completion_description.fg=#9f8a99 +completion_description.dim=true +completion_gutter.bg=#ebe6e6 +completion_pill.fg=#614343 +completion_pill.bg=#dbd1d1 + +selector_focused.fg=#42267d +selector_focused.bg=#ccc2f2 +selector_focused.bold=true +selector_chooser.bold=true + +part_mimetype.fg=#9f8a99 +part_filename.fg=#3856d1 +part_filename.selected.bold=true + +[viewer] +*.default=true +*.normal=true +header.fg=#3856d1 +header.bold=true +signature.fg=#9f8a99 +signature.dim=true +url.fg=#3856d1 +url.underline=true +diff_meta.fg=#9f8a99 +diff_meta.bold=true +diff_chunk.fg=#2c6a73 +diff_chunk_func.fg=#2c6a73 +diff_chunk_func.dim=true +diff_add.fg=#346e27 +diff_del.fg=#B22E32 +diff_whitespace.bg=#f2d8d8 +quote_1.fg=#3856d1 +quote_2.fg=#346e27 +quote_3.fg=#8f35bd +quote_4.fg=#2c6a73 +quote_4.dim=true +quote_x.fg=#9f8a99 +quote_x.dim=true +code.fg=#2c6a73 + diff --git a/src/main.lua b/src/main.lua index 299e637..07da34f 100644 --- a/src/main.lua +++ b/src/main.lua @@ -14,6 +14,7 @@ local dsl = require "lib/dsl" local theme_fns = { (require "themes/alacritty/theme"), (require "themes/ghostty/theme"), + (require "themes/aerc/theme"), (require "themes/lightline/theme"), (require "themes/fish/theme"), (require "themes/css/theme"), @@ -97,6 +98,7 @@ return { ), fish = require "themes/fish/template"(kv.light), ghostty = require "themes/ghostty/template"(kv.light), + aerc = require "themes/aerc/template"(kv.light), }, dark = { nvim = require "themes/nvim/template"(kv.dark, context.dark.theme_name), @@ -112,5 +114,6 @@ return { ), fish = require "themes/fish/template"(kv.dark), ghostty = require "themes/ghostty/template"(kv.dark), + aerc = require "themes/aerc/template"(kv.dark), }, } diff --git a/src/themes/aerc/template.lua b/src/themes/aerc/template.lua new file mode 100644 index 0000000..824c095 --- /dev/null +++ b/src/themes/aerc/template.lua @@ -0,0 +1,115 @@ +local interpolate = require("lib/strings").interpolate + +-- The two resets clear aerc's built-in styling so every object below starts +-- from the terminal default rather than inheriting a colour we never set. +return function(colors) + return interpolate( + [[ +# vim: ft=dosini + +*.default=true +*.normal=true + +default.fg=${aerc_fg} +default.bg=${aerc_bg} + +error.fg=${aerc_error_fg} +error.bold=true +warning.fg=${aerc_warning_fg} +success.fg=${aerc_success_fg} + +title.fg=${aerc_status_fg} +title.bg=${aerc_status_bg} +title.bold=true +header.fg=${aerc_info_fg} +header.bold=true +border.fg=${aerc_border} +spinner.fg=${aerc_accent} + +tab.fg=${aerc_tab_fg} +tab.bg=${aerc_tab_bg} +tab.selected.fg=${aerc_fg} +tab.selected.bg=${aerc_bg} +tab.selected.bold=true + +statusline_default.fg=${aerc_status_fg} +statusline_default.bg=${aerc_status_bg} +statusline_error.fg=${aerc_status_error_fg} +statusline_error.bg=${aerc_status_error_bg} +statusline_warning.fg=${aerc_status_warning_fg} +statusline_warning.bg=${aerc_status_warning_bg} +statusline_success.fg=${aerc_status_success_fg} +statusline_success.bg=${aerc_status_success_bg} + +*.selected.fg=${aerc_selected_fg} +*.selected.bg=${aerc_selected_bg} + +msglist_unread.fg=${aerc_accent} +msglist_unread.bold=true +msglist_answered.fg=${aerc_success_fg} +msglist_forwarded.fg=${aerc_success_fg} +msglist_flagged.fg=${aerc_warning_fg} +msglist_flagged.bold=true +msglist_deleted.fg=${aerc_muted} +msglist_deleted.dim=true +msglist_marked.fg=${aerc_marked_fg} +msglist_marked.bg=${aerc_marked_bg} +msglist_result.fg=${aerc_result_fg} +msglist_result.bg=${aerc_result_bg} +msglist_thread_folded.fg=${aerc_info_fg} +msglist_thread_context.fg=${aerc_muted} +msglist_thread_orphan.fg=${aerc_faint} +msglist_gutter.bg=${aerc_gutter_bg} +msglist_pill.fg=${aerc_pill_fg} +msglist_pill.bg=${aerc_pill_bg} + +dirlist_unread.fg=${aerc_accent} +dirlist_unread.bold=true +dirlist_recent.fg=${aerc_info_fg} + +completion_default.fg=${aerc_status_fg} +completion_default.bg=${aerc_status_bg} +completion_description.fg=${aerc_muted} +completion_description.dim=true +completion_gutter.bg=${aerc_gutter_bg} +completion_pill.fg=${aerc_pill_fg} +completion_pill.bg=${aerc_pill_bg} + +selector_focused.fg=${aerc_marked_fg} +selector_focused.bg=${aerc_marked_bg} +selector_focused.bold=true +selector_chooser.bold=true + +part_mimetype.fg=${aerc_muted} +part_filename.fg=${aerc_info_fg} +part_filename.selected.bold=true + +[viewer] +*.default=true +*.normal=true +header.fg=${aerc_info_fg} +header.bold=true +signature.fg=${aerc_muted} +signature.dim=true +url.fg=${aerc_info_fg} +url.underline=true +diff_meta.fg=${aerc_muted} +diff_meta.bold=true +diff_chunk.fg=${aerc_quote4} +diff_chunk_func.fg=${aerc_quote4} +diff_chunk_func.dim=true +diff_add.fg=${aerc_diff_add} +diff_del.fg=${aerc_diff_del} +diff_whitespace.bg=${aerc_diff_whitespace} +quote_1.fg=${aerc_quote1} +quote_2.fg=${aerc_quote2} +quote_3.fg=${aerc_quote3} +quote_4.fg=${aerc_quote4} +quote_4.dim=true +quote_x.fg=${aerc_muted} +quote_x.dim=true +code.fg=${aerc_code} +]], + colors + ) +end diff --git a/src/themes/aerc/theme.lua b/src/themes/aerc/theme.lua new file mode 100644 index 0000000..1988ec0 --- /dev/null +++ b/src/themes/aerc/theme.lua @@ -0,0 +1,49 @@ +local function gen_variant(context, dsl) + local get = dsl.get + return { + aerc_fg = get { "Normal", "guifg" }, + aerc_bg = get { "Normal", "guibg" }, + aerc_muted = context.canvas.fg_muted, + aerc_faint = context.canvas.fg_faint, + aerc_border = context.canvas.border, + aerc_accent = context.accent.fg_normal, + aerc_error_fg = context.error.fg_normal, + aerc_warning_fg = context.warning.fg_normal, + aerc_success_fg = context.success.fg_normal, + aerc_info_fg = context.info.fg_normal, + aerc_marked_fg = context.info.fg, + aerc_marked_bg = context.info.bg, + aerc_status_fg = context.layer2.fg, + aerc_status_bg = context.layer2.bg, + aerc_status_error_fg = context.error.fg, + aerc_status_error_bg = context.error.bg, + aerc_status_warning_fg = context.warning.fg, + aerc_status_warning_bg = context.warning.bg, + aerc_status_success_fg = context.success.fg, + aerc_status_success_bg = context.success.bg, + aerc_tab_fg = context.layer1.fg_muted, + aerc_tab_bg = context.layer1.bg, + aerc_pill_fg = context.layer3.fg, + aerc_pill_bg = context.layer3.bg, + aerc_gutter_bg = context.layer1.bg, + aerc_selected_fg = get { "Visual", "guifg" }, + aerc_selected_bg = get { "Visual", "guibg" }, + aerc_result_fg = get { "CurSearch", "guifg" }, + aerc_result_bg = get { "CurSearch", "guibg" }, + aerc_diff_add = context.success.fg_normal, + aerc_diff_del = context.error.fg_normal, + aerc_diff_whitespace = context.error.bg, + aerc_quote1 = get { "TermBlue" }, + aerc_quote2 = get { "TermGreen" }, + aerc_quote3 = get { "TermPurple" }, + aerc_quote4 = get { "TermCyan" }, + aerc_code = get { "TermCyan" }, + } +end + +return function(context, dsl) + return { + light = gen_variant(context.light, dsl), + dark = gen_variant(context.dark, dsl), + } +end From 0de4ca83fd18b68b295089fbce74f247a72a4e0a Mon Sep 17 00:00:00 2001 From: Matty G Date: Mon, 31 Aug 2026 10:03:37 +1200 Subject: [PATCH 2/2] fix: Remove conflict markers from Makefile Else it'll error out :) --- Makefile | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/Makefile b/Makefile index cfeab2d..8f90124 100644 --- a/Makefile +++ b/Makefile @@ -84,25 +84,6 @@ ghostty/yui_light: $(lua_files) @mkdir -p ghostty LUA_PATH="$(lua_path)" lua -e 'print(require("main").light.ghostty)' > $@ -<<<<<<< HEAD -||||||| parent of c19702b (feat: Create aerc styleset) -warp/yui_light.yaml: $(lua_files) - @mkdir -p warp - LUA_PATH="$(lua_path)" lua -e 'print(require("main").light.warp)' > $@ - -warp/yui_dark.yaml: $(lua_files) - @mkdir -p warp - LUA_PATH="$(lua_path)" lua -e 'print(require("main").dark.warp)' > $@ - -======= -warp/yui_light.yaml: $(lua_files) - @mkdir -p warp - LUA_PATH="$(lua_path)" lua -e 'print(require("main").light.warp)' > $@ - -warp/yui_dark.yaml: $(lua_files) - @mkdir -p warp - LUA_PATH="$(lua_path)" lua -e 'print(require("main").dark.warp)' > $@ - aerc/yui_light: $(lua_files) @mkdir -p aerc LUA_PATH="$(lua_path)" lua -e 'print(require("main").light.aerc)' > $@ @@ -111,13 +92,6 @@ aerc/yui_dark: $(lua_files) @mkdir -p aerc LUA_PATH="$(lua_path)" lua -e 'print(require("main").dark.aerc)' > $@ ->>>>>>> c19702b (feat: Create aerc styleset) .PHONY: clean clean: -<<<<<<< HEAD - @rm -rf colors/ autoload/lightline/ alacritty/ fish/ ghostty/ doc/ css/ html/ -||||||| parent of c19702b (feat: Create aerc styleset) - @rm -rf colors/ autoload/lightline/ alacritty/ fish/ ghostty/ warp/ doc/ css/ html/ -======= - @rm -rf colors/ autoload/lightline/ alacritty/ fish/ ghostty/ warp/ aerc/ doc/ css/ html/ ->>>>>>> c19702b (feat: Create aerc styleset) + @rm -rf colors/ autoload/lightline/ alacritty/ fish/ ghostty/ aerc/ doc/ css/ html/