Luigit
repositories / dotfiles

dotfiles

bugabingas dorkfiles

owned by admin

nugu/aerc.nu

Raw
use palette.nu

# Generate an aerc styleset from Nugu's semantic palette.
# aerc stylesets use flat object.attribute = value entries plus a [viewer]
# section for the built-in colorize filter.
export def theme [mode: string] {
	let nugu = (palette nugu $mode)
	let p = $nugu.palette

	let main = [
		"*.default=true"
		"*.normal=true"
		$"default.fg=($p.content.normal)"
		$"default.bg=($p.content.backdrop)"

		$"error.fg=($p.error)"
		"error.bold=true"
		$"warning.fg=($p.warning)"
		"warning.bold=true"
		$"success.fg=($p.content.focus)"
		"success.bold=true"

		$"title.fg=($p.ui.important_global)"
		$"title.bg=($p.ui.backdrop)"
		"title.bold=true"
		$"header.fg=($p.content.important_local)"
		"header.bold=true"
		$"border.fg=($p.ui.minor)"
		$"border.bg=($p.ui.backdrop)"

		$"tab.fg=($p.ui.minor)"
		$"tab.bg=($p.ui.backdrop)"
		$"tab.selected.fg=($p.content.normal)"
		$"tab.selected.bg=($p.ui.focus)"
		"tab.selected.bold=true"

		$"statusline_default.fg=($p.ui.normal)"
		$"statusline_default.bg=($p.ui.backdrop)"
		$"statusline_error.fg=($p.error)"
		"statusline_error.bold=true"
		$"statusline_success.fg=($p.content.focus)"
		"statusline_success.bold=true"

		$"msglist_default.fg=($p.content.normal)"
		$"msglist_default.bg=($p.content.backdrop)"
		$"msglist_read.fg=($p.content.minor)"
		$"msglist_unread.fg=($p.content.normal)"
		"msglist_unread.bold=true"
		$"msglist_answered.fg=($p.info)"
		$"msglist_forwarded.fg=($p.content.focus)"
		$"msglist_flagged.fg=($p.content.important_local)"
		"msglist_flagged.bold=true"
		$"msglist_deleted.fg=($p.content.unfocus)"
		"msglist_deleted.dim=true"
		$"msglist_result.fg=($p.content.accent)"
		"msglist_result.bold=true"
		$"msglist_marked.fg=($p.ui.backdrop)"
		$"msglist_marked.bg=($p.ui.important_local)"
		$"msglist_thread_folded.fg=($p.content.important_global)"
		"msglist_thread_folded.bold=true"
		$"msglist_thread_context.fg=($p.content.unfocus)"
		$"msglist_thread_orphan.fg=($p.warning)"
		$"msglist_pill.fg=($p.ui.backdrop)"
		$"msglist_pill.bg=($p.ui.accent)"
		$"msglist_*.selected.fg=($p.ui.backdrop)"
		$"msglist_*.selected.bg=($p.ui.focus)"
		"msglist_*.selected.bold=true"

		$"dirlist_default.fg=($p.ui.normal)"
		$"dirlist_default.bg=($p.ui.backdrop)"
		$"dirlist_unread.fg=($p.ui.important_global)"
		"dirlist_unread.bold=true"
		$"dirlist_recent.fg=($p.ui.accent)"
		$"dirlist_*.selected.fg=($p.ui.backdrop)"
		$"dirlist_*.selected.bg=($p.ui.focus)"
		"dirlist_*.selected.bold=true"

		$"completion_default.fg=($p.ui.normal)"
		$"completion_default.bg=($p.ui.backdrop)"
		$"completion_default.selected.fg=($p.ui.backdrop)"
		$"completion_default.selected.bg=($p.ui.focus)"
		$"completion_description.fg=($p.ui.minor)"
		"completion_description.dim=true"
		$"completion_gutter.bg=($p.ui.backdrop)"
		$"completion_pill.fg=($p.ui.backdrop)"
		$"completion_pill.bg=($p.ui.accent)"

		$"part_switcher.fg=($p.ui.normal)"
		$"part_switcher.bg=($p.ui.backdrop)"
		$"part_filename.fg=($p.content.important_local)"
		$"part_mimetype.fg=($p.info)"
		$"part_*.selected.fg=($p.ui.backdrop)"
		$"part_*.selected.bg=($p.ui.focus)"

		$"selector_default.fg=($p.ui.normal)"
		$"selector_default.bg=($p.ui.backdrop)"
		$"selector_chooser.fg=($p.ui.accent)"
		"selector_chooser.bold=true"
		$"selector_focused.fg=($p.ui.backdrop)"
		$"selector_focused.bg=($p.ui.focus)"
		"selector_focused.bold=true"
		$"stack.fg=($p.ui.normal)"
		$"stack.bg=($p.ui.backdrop)"
		$"spinner.fg=($p.ui.accent)"
	]

	let viewer = [
		""
		"[viewer]"
		"*.default=true"
		"*.normal=true"
		$"url.fg=($p.content.accent)"
		"url.underline=true"
		$"header.fg=($p.content.important_local)"
		"header.bold=true"
		$"signature.fg=($p.content.minor)"
		"signature.dim=true"
		$"diff_meta.fg=($p.content.important_global)"
		"diff_meta.bold=true"
		$"diff_chunk.fg=($p.info)"
		$"diff_chunk_func.fg=($p.info)"
		"diff_chunk_func.bold=true"
		$"diff_add.fg=($p.content.focus)"
		$"diff_del.fg=($p.error)"
		$"quote_1.fg=($p.content.minor)"
		$"quote_2.fg=($p.content.unfocus)"
		$"quote_3.fg=($p.content.important_global)"
		"quote_3.dim=true"
		$"quote_4.fg=($p.content.important_local)"
		"quote_4.dim=true"
		$"quote_x.fg=($p.content.accent)"
		"quote_x.dim=true"
	]

	($main ++ $viewer) | str join (char newline)
}