Skip to main content

Theme

Struct Theme 

Source
pub struct Theme {
Show 28 fields pub name: String, pub bg: ThemeColor, pub bg_hard: ThemeColor, pub bg_soft: ThemeColor, pub bg_panel: ThemeColor, pub selection_bg: ThemeColor, pub fg: ThemeColor, pub fg_bright: ThemeColor, pub fg_secondary: ThemeColor, pub gray: ThemeColor, pub selection_fg: ThemeColor, pub border_dim: ThemeColor, pub focus_border: ThemeColor, pub accent: ThemeColor, pub cursor: ThemeColor, pub red: ThemeColor, pub green: ThemeColor, pub yellow: ThemeColor, pub blue: ThemeColor, pub purple: ThemeColor, pub aqua: ThemeColor, pub orange: ThemeColor, pub color_directory: ThemeColor, pub color_journal_date: ThemeColor, pub color_search_match: ThemeColor, pub color_tag: ThemeColor, pub blockquote_bar: ThemeColor, pub code_bg: ThemeColor,
}
Expand description

Theme for the TUI application.

Fields are named after the UI roles they fill, making it straightforward to map any popular terminal color scheme (Gruvbox, Catppuccin, Tokyo Night, …) to this struct. Custom themes can be placed as .toml files in the themes config directory and will be loaded automatically at startup.

§Example theme file (~/.config/kimun/themes/mytheme.toml)

name = "My Theme"
bg               = "#1e1e2e"
bg_hard          = "#11111b"
bg_soft          = "#313244"
bg_panel         = "#181825"
selection_bg      = "#313244"
fg               = "#cdd6f4"
fg_bright        = "#f5e0dc"
fg_secondary     = "#a6adc8"
gray         = "#6c7086"
selection_fg      = "#cdd6f4"
border_dim           = "#45475a"
focus_border   = "#89b4fa"
accent           = "#89b4fa"
cursor           = "#f5e0dc"
red              = "#f38ba8"
green            = "#a6e3a1"
yellow           = "#f9e2af"
blue             = "#89b4fa"
purple           = "#cba6f7"
aqua             = "#94e2d5"
orange           = "#fab387"
color_directory  = "#89dceb"
color_journal_date = "#94e2d5"
color_search_match = "#a6e3a1"
color_tag        = "#fab387"
blockquote_bar   = "#cba6f7"
code_bg          = "#181825"

Roles introduced after a theme file was written may be omitted — they are derived from the closest sibling role (see [ThemeToml]).

Fields§

§name: String§bg: ThemeColor

Main/editor background.

§bg_hard: ThemeColor

Hard-contrast background: modals and input fields.

§bg_soft: ThemeColor

Soft background: alternating rows, horizontal rules.

§bg_panel: ThemeColor

Sidebar / panel background (usually slightly offset from bg).

§selection_bg: ThemeColor

Background of the currently selected row in lists.

§fg: ThemeColor

Primary text color.

§fg_bright: ThemeColor

Bright/high-contrast text: titles, headings.

§fg_secondary: ThemeColor

Secondary text: filenames, metadata, subdued hints.

§gray: ThemeColor

Very dim text: placeholders, separators, disabled items.

§selection_fg: ThemeColor

Text color of a selected/highlighted row (often brighter than fg).

§border_dim: ThemeColor

Default (unfocused) border color.

§focus_border: ThemeColor

Border color when the pane has keyboard focus.

§accent: ThemeColor

Primary accent: title bars, active markers, cursor highlights.

§cursor: ThemeColor

Block-cursor color in text fields.

§red: ThemeColor

Errors, destructive actions, query negation.

§green: ThemeColor

Success / OK states.

§yellow: ThemeColor

Warnings, field keys, keycaps.

§blue: ThemeColor

Wikilink targets.

§purple: ThemeColor

Numbers and date literals.

§aqua: ThemeColor

Tags, links, group labels.

§orange: ThemeColor

Operators and strong accents.

§color_directory: ThemeColor

Color used for directory entries in the file list.

§color_journal_date: ThemeColor

Color for the journal-date annotation line in journal entries.

§color_search_match: ThemeColor

Color for highlighted search-match text.

§color_tag: ThemeColor

Color for #hashtag label spans in the editor.

§blockquote_bar: ThemeColor

Color of the blockquote bar drawn in place of > markers.

§code_bg: ThemeColor

Background of fenced and indented code blocks (the “code box”). Inline code uses selection_bg, not this.

Implementations§

Source§

impl Theme

Source

pub fn builtins() -> Vec<Theme>

Every built-in theme, in presentation order.

Source

pub fn gruvbox_dark() -> Self

Source

pub fn gruvbox_light() -> Self

Source

pub fn catppuccin_mocha() -> Self

Source

pub fn catppuccin_latte() -> Self

Source

pub fn tokyo_night() -> Self

Source

pub fn tokyo_night_storm() -> Self

Source

pub fn solarized_dark() -> Self

Source

pub fn solarized_light() -> Self

Source

pub fn nord() -> Self

Source

pub fn dracula() -> Self

Source

pub fn alucard() -> Self

Alucard is Dracula’s official light variant.

Source

pub fn one_dark() -> Self

Source

pub fn one_light() -> Self

Source

pub fn monokai() -> Self

Source

pub fn everforest_dark() -> Self

Source

pub fn everforest_light() -> Self

Source

pub fn rose_pine() -> Self

Source

pub fn rose_pine_dawn() -> Self

Dawn is Rosé Pine’s light variant. Note bg_panel (surface) is lighter than bg (base) — that is the official palette layering.

Source

pub fn kanagawa_wave() -> Self

Source

pub fn kanagawa_lotus() -> Self

Lotus is Kanagawa’s light variant.

Source

pub fn ansi() -> Self

Uses the terminal’s 16 ANSI colors so the theme adapts to whatever palette the user has configured in their terminal emulator. Works for both light and dark terminal palettes because backgrounds and primary foregrounds use Reset (the terminal’s defaults) and accents are chromatic ANSI slots whose hue is stable across palettes.

Source§

impl Theme

Source

pub fn adapt_to_terminal(self) -> Theme

Adapt this theme to the terminal the process is running in.

The one entry point display paths should use — AppSettings::get_theme() and the settings-screen live preview both funnel through it.

Source

pub fn adapt(self, depth: ColorDepth) -> Theme

Return a copy of this theme adapted to the given color depth.

Truecolor terminals get the theme unchanged.

Source§

impl Theme

Source

pub fn border_style(&self, focused: bool) -> Style

Returns the appropriate border style depending on focus state.

Source

pub fn base_style(&self) -> Style

Base style for most surfaces: theme fg on theme bg.

Source

pub fn panel_style(&self) -> Style

Panel style for sidebars and panels: theme fg on bg_panel.

Trait Implementations§

Source§

impl Clone for Theme

Source§

fn clone(&self) -> Theme

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Theme

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Theme

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Theme

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for Theme

Source§

fn eq(&self, other: &Theme) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Theme

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Theme

Auto Trait Implementations§

§

impl Freeze for Theme

§

impl RefUnwindSafe for Theme

§

impl Send for Theme

§

impl Sync for Theme

§

impl Unpin for Theme

§

impl UnsafeUnpin for Theme

§

impl UnwindSafe for Theme

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more