feat(themes): add color derivation and themed app templates
Add script/omarchy-theme-color and expand omarchy-theme-set-templates to derive a full palette from each theme's colors.toml, then render new themed templates (shell, pi, vscode theme, gum, neovim, claude, hermes, t3code) from it. Adds backgrounds and palette updates for existing themes plus new themes (last-horizon, lupine, solitude, tidewater-*, miasma, ...).
@@ -4,19 +4,19 @@ foreground = "{{ foreground }}"
|
|||||||
|
|
||||||
[colors.cursor]
|
[colors.cursor]
|
||||||
text = "{{ background }}"
|
text = "{{ background }}"
|
||||||
cursor = "{{ cursor }}"
|
cursor = "{{ bright_foreground }}"
|
||||||
|
|
||||||
[colors.vi_mode_cursor]
|
[colors.vi_mode_cursor]
|
||||||
text = "{{ background }}"
|
text = "{{ background }}"
|
||||||
cursor = "{{ cursor }}"
|
cursor = "{{ bright_foreground }}"
|
||||||
|
|
||||||
[colors.search.matches]
|
[colors.search.matches]
|
||||||
foreground = "{{ background }}"
|
foreground = "{{ background }}"
|
||||||
background = "{{ color3 }}"
|
background = "{{ yellow }}"
|
||||||
|
|
||||||
[colors.search.focused_match]
|
[colors.search.focused_match]
|
||||||
foreground = "{{ background }}"
|
foreground = "{{ background }}"
|
||||||
background = "{{ color1 }}"
|
background = "{{ red }}"
|
||||||
|
|
||||||
[colors.footer_bar]
|
[colors.footer_bar]
|
||||||
foreground = "{{ background }}"
|
foreground = "{{ background }}"
|
||||||
@@ -27,21 +27,21 @@ text = "{{ selection_foreground }}"
|
|||||||
background = "{{ selection_background }}"
|
background = "{{ selection_background }}"
|
||||||
|
|
||||||
[colors.normal]
|
[colors.normal]
|
||||||
black = "{{ color0 }}"
|
black = "{{ background }}"
|
||||||
red = "{{ color1 }}"
|
red = "{{ red }}"
|
||||||
green = "{{ color2 }}"
|
green = "{{ green }}"
|
||||||
yellow = "{{ color3 }}"
|
yellow = "{{ yellow }}"
|
||||||
blue = "{{ color4 }}"
|
blue = "{{ blue }}"
|
||||||
magenta = "{{ color5 }}"
|
magenta = "{{ magenta }}"
|
||||||
cyan = "{{ color6 }}"
|
cyan = "{{ cyan }}"
|
||||||
white = "{{ color7 }}"
|
white = "{{ foreground }}"
|
||||||
|
|
||||||
[colors.bright]
|
[colors.bright]
|
||||||
black = "{{ color8 }}"
|
black = "{{ muted }}"
|
||||||
red = "{{ color9 }}"
|
red = "{{ bright_red }}"
|
||||||
green = "{{ color10 }}"
|
green = "{{ bright_green }}"
|
||||||
yellow = "{{ color11 }}"
|
yellow = "{{ bright_yellow }}"
|
||||||
blue = "{{ color12 }}"
|
blue = "{{ bright_blue }}"
|
||||||
magenta = "{{ color13 }}"
|
magenta = "{{ bright_magenta }}"
|
||||||
cyan = "{{ color14 }}"
|
cyan = "{{ bright_cyan }}"
|
||||||
white = "{{ color15 }}"
|
white = "{{ bright_foreground }}"
|
||||||
|
|||||||
@@ -11,73 +11,83 @@ theme[title]="{{ foreground }}"
|
|||||||
theme[hi_fg]="{{ accent }}"
|
theme[hi_fg]="{{ accent }}"
|
||||||
|
|
||||||
# Background color of selected item in processes box
|
# Background color of selected item in processes box
|
||||||
theme[selected_bg]="{{ color8 }}"
|
theme[selected_bg]="{{ selection }}"
|
||||||
|
|
||||||
# Foreground color of selected item in processes box
|
# Foreground color of selected item in processes box
|
||||||
theme[selected_fg]="{{ accent }}"
|
theme[selected_fg]="{{ accent }}"
|
||||||
|
|
||||||
# Color of inactive/disabled text
|
# Color of inactive/disabled text
|
||||||
theme[inactive_fg]="{{ color8 }}"
|
theme[inactive_fg]="{{ muted }}"
|
||||||
|
|
||||||
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
||||||
theme[graph_text]="{{ foreground }}"
|
theme[graph_text]="{{ light_foreground }}"
|
||||||
|
|
||||||
# Background color of the percentage meters
|
# Background color of the percentage meters
|
||||||
theme[meter_bg]="{{ color8 }}"
|
theme[meter_bg]="{{ selection }}"
|
||||||
|
|
||||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||||
theme[proc_misc]="{{ foreground }}"
|
theme[proc_misc]="{{ light_foreground }}"
|
||||||
|
|
||||||
# CPU, Memory, Network, Proc box outline colors
|
# CPU, Memory, Network, Proc box outline colors
|
||||||
theme[cpu_box]="{{ color5 }}"
|
theme[cpu_box]="{{ magenta }}"
|
||||||
theme[mem_box]="{{ color2 }}"
|
theme[mem_box]="{{ green }}"
|
||||||
theme[net_box]="{{ color1 }}"
|
theme[net_box]="{{ red }}"
|
||||||
theme[proc_box]="{{ accent }}"
|
theme[proc_box]="{{ accent }}"
|
||||||
|
|
||||||
# Box divider line and small boxes line color
|
# Box divider line and small boxes line color
|
||||||
theme[div_line]="{{ color8 }}"
|
theme[div_line]="{{ muted }}"
|
||||||
|
|
||||||
# Temperature graph color (Green -> Yellow -> Red)
|
# Temperature graph color (Green -> Yellow -> Red)
|
||||||
theme[temp_start]="{{ color2 }}"
|
theme[temp_start]="{{ green }}"
|
||||||
theme[temp_mid]="{{ color3 }}"
|
theme[temp_mid]="{{ yellow }}"
|
||||||
theme[temp_end]="{{ color1 }}"
|
theme[temp_end]="{{ red }}"
|
||||||
|
|
||||||
# CPU graph colors (Teal -> Lavender)
|
# CPU graph colors (Teal -> Blue -> Magenta)
|
||||||
theme[cpu_start]="{{ color6 }}"
|
theme[cpu_start]="{{ cyan }}"
|
||||||
theme[cpu_mid]="{{ color4 }}"
|
theme[cpu_mid]="{{ blue }}"
|
||||||
theme[cpu_end]="{{ color5 }}"
|
theme[cpu_end]="{{ magenta }}"
|
||||||
|
|
||||||
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
# Mem/Disk free meter
|
||||||
theme[free_start]="{{ color5 }}"
|
theme[free_start]="{{ magenta }}"
|
||||||
theme[free_mid]="{{ color4 }}"
|
theme[free_mid]="{{ blue }}"
|
||||||
theme[free_end]="{{ color6 }}"
|
theme[free_end]="{{ cyan }}"
|
||||||
|
|
||||||
# Mem/Disk cached meter (Sapphire -> Lavender)
|
# Mem/Disk cached meter
|
||||||
theme[cached_start]="{{ color4 }}"
|
theme[cached_start]="{{ blue }}"
|
||||||
theme[cached_mid]="{{ color6 }}"
|
theme[cached_mid]="{{ cyan }}"
|
||||||
theme[cached_end]="{{ color5 }}"
|
theme[cached_end]="{{ magenta }}"
|
||||||
|
|
||||||
# Mem/Disk available meter (Peach -> Red)
|
# Mem/Disk available meter
|
||||||
theme[available_start]="{{ color3 }}"
|
theme[available_start]="{{ yellow }}"
|
||||||
theme[available_mid]="{{ color1 }}"
|
theme[available_mid]="{{ red }}"
|
||||||
theme[available_end]="{{ color1 }}"
|
theme[available_end]="{{ red }}"
|
||||||
|
|
||||||
# Mem/Disk used meter (Green -> Sky)
|
# Mem/Disk used meter (Green -> Teal -> Blue)
|
||||||
theme[used_start]="{{ color2 }}"
|
theme[used_start]="{{ green }}"
|
||||||
theme[used_mid]="{{ color6 }}"
|
theme[used_mid]="{{ cyan }}"
|
||||||
theme[used_end]="{{ color4 }}"
|
theme[used_end]="{{ blue }}"
|
||||||
|
|
||||||
# Download graph colors (Peach -> Red)
|
# Download graph colors
|
||||||
theme[download_start]="{{ color3 }}"
|
theme[download_start]="{{ yellow }}"
|
||||||
theme[download_mid]="{{ color1 }}"
|
theme[download_mid]="{{ red }}"
|
||||||
theme[download_end]="{{ color1 }}"
|
theme[download_end]="{{ red }}"
|
||||||
|
|
||||||
# Upload graph colors (Green -> Sky)
|
# Upload graph colors (Green -> Teal -> Blue)
|
||||||
theme[upload_start]="{{ color2 }}"
|
theme[upload_start]="{{ green }}"
|
||||||
theme[upload_mid]="{{ color6 }}"
|
theme[upload_mid]="{{ cyan }}"
|
||||||
theme[upload_end]="{{ color4 }}"
|
theme[upload_end]="{{ blue }}"
|
||||||
|
|
||||||
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
# Process box color gradient for threads, mem and cpu usage
|
||||||
theme[process_start]="{{ color6 }}"
|
theme[process_start]="{{ cyan }}"
|
||||||
theme[process_mid]="{{ color4 }}"
|
theme[process_mid]="{{ blue }}"
|
||||||
theme[process_end]="{{ color5 }}"
|
theme[process_end]="{{ magenta }}"
|
||||||
|
|
||||||
|
# Graph gradient colors (spectrum shades from background to foreground)
|
||||||
|
theme[gradient_color_0]="{{ background }}"
|
||||||
|
theme[gradient_color_1]="{{ lighter_background }}"
|
||||||
|
theme[gradient_color_2]="{{ selection }}"
|
||||||
|
theme[gradient_color_3]="{{ muted }}"
|
||||||
|
theme[gradient_color_4]="{{ dark_foreground }}"
|
||||||
|
theme[gradient_color_5]="{{ foreground }}"
|
||||||
|
theme[gradient_color_6]="{{ light_foreground }}"
|
||||||
|
theme[gradient_color_7]="{{ bright_foreground }}"
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"name": "Omarchy",
|
||||||
|
"base": "{{ theme_type }}",
|
||||||
|
"overrides": {
|
||||||
|
"claude": "{{ accent }}",
|
||||||
|
"claudeShimmer": "{{ mix accent foreground 35% }}",
|
||||||
|
"text": "{{ foreground }}",
|
||||||
|
"inverseText": "{{ background }}",
|
||||||
|
"inactive": "{{ mix foreground background 40% }}",
|
||||||
|
"inactiveShimmer": "{{ mix foreground background 25% }}",
|
||||||
|
"subtle": "{{ muted }}",
|
||||||
|
"suggestion": "{{ cyan }}",
|
||||||
|
"permission": "{{ blue }}",
|
||||||
|
"permissionShimmer": "{{ mix blue foreground 35% }}",
|
||||||
|
"remember": "{{ yellow }}",
|
||||||
|
"success": "{{ green }}",
|
||||||
|
"error": "{{ red }}",
|
||||||
|
"warning": "{{ yellow }}",
|
||||||
|
"warningShimmer": "{{ mix yellow foreground 35% }}",
|
||||||
|
"merged": "{{ magenta }}",
|
||||||
|
"promptBorder": "{{ accent }}",
|
||||||
|
"promptBorderShimmer": "{{ mix accent foreground 35% }}",
|
||||||
|
"planMode": "{{ cyan }}",
|
||||||
|
"autoAccept": "{{ yellow }}",
|
||||||
|
"bashBorder": "{{ bright_yellow }}",
|
||||||
|
"ide": "{{ bright_cyan }}",
|
||||||
|
"diffAdded": "{{ mix background green 15% }}",
|
||||||
|
"diffRemoved": "{{ mix background red 15% }}",
|
||||||
|
"diffAddedDimmed": "{{ mix background green 8% }}",
|
||||||
|
"diffRemovedDimmed": "{{ mix background red 8% }}",
|
||||||
|
"diffAddedWord": "{{ mix background green 32% }}",
|
||||||
|
"diffRemovedWord": "{{ mix background red 32% }}",
|
||||||
|
"userMessageBackground": "{{ mix background foreground 6% }}",
|
||||||
|
"userMessageBackgroundHover": "{{ mix background foreground 10% }}",
|
||||||
|
"bashMessageBackgroundColor": "{{ mix background foreground 6% }}",
|
||||||
|
"memoryBackgroundColor": "{{ mix background foreground 6% }}",
|
||||||
|
"selectionBg": "{{ selection_background }}",
|
||||||
|
"rate_limit_fill": "{{ accent }}",
|
||||||
|
"rate_limit_empty": "{{ mix background foreground 20% }}",
|
||||||
|
"briefLabelYou": "{{ yellow }}",
|
||||||
|
"briefLabelClaude": "{{ accent }}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,22 +4,22 @@ background={{ background_strip }}
|
|||||||
selection-foreground={{ selection_foreground_strip }}
|
selection-foreground={{ selection_foreground_strip }}
|
||||||
selection-background={{ selection_background_strip }}
|
selection-background={{ selection_background_strip }}
|
||||||
|
|
||||||
cursor={{ background_strip }} {{ cursor_strip }}
|
cursor={{ background_strip }} {{ bright_foreground_strip }}
|
||||||
|
|
||||||
regular0={{ color0_strip }}
|
regular0={{ background_strip }}
|
||||||
regular1={{ color1_strip }}
|
regular1={{ red_strip }}
|
||||||
regular2={{ color2_strip }}
|
regular2={{ green_strip }}
|
||||||
regular3={{ color3_strip }}
|
regular3={{ yellow_strip }}
|
||||||
regular4={{ color4_strip }}
|
regular4={{ blue_strip }}
|
||||||
regular5={{ color5_strip }}
|
regular5={{ purple_strip }}
|
||||||
regular6={{ color6_strip }}
|
regular6={{ cyan_strip }}
|
||||||
regular7={{ color7_strip }}
|
regular7={{ foreground_strip }}
|
||||||
|
|
||||||
bright0={{ color8_strip }}
|
bright0={{ muted_strip }}
|
||||||
bright1={{ color9_strip }}
|
bright1={{ bright_red_strip }}
|
||||||
bright2={{ color10_strip }}
|
bright2={{ bright_green_strip }}
|
||||||
bright3={{ color11_strip }}
|
bright3={{ bright_yellow_strip }}
|
||||||
bright4={{ color12_strip }}
|
bright4={{ bright_blue_strip }}
|
||||||
bright5={{ color13_strip }}
|
bright5={{ bright_magenta_strip }}
|
||||||
bright6={{ color14_strip }}
|
bright6={{ bright_cyan_strip }}
|
||||||
bright7={{ color15_strip }}
|
bright7={{ bright_foreground_strip }}
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
background = {{ background }}
|
background = {{ background }}
|
||||||
foreground = {{ foreground }}
|
foreground = {{ foreground }}
|
||||||
cursor-color = {{ cursor }}
|
cursor-color = {{ bright_foreground }}
|
||||||
selection-background = {{ selection_background }}
|
selection-background = {{ selection_background }}
|
||||||
selection-foreground = {{ selection_foreground }}
|
selection-foreground = {{ selection_foreground }}
|
||||||
|
|
||||||
palette = 0={{ color0 }}
|
palette = 0={{ background }}
|
||||||
palette = 1={{ color1 }}
|
palette = 1={{ red }}
|
||||||
palette = 2={{ color2 }}
|
palette = 2={{ green }}
|
||||||
palette = 3={{ color3 }}
|
palette = 3={{ yellow }}
|
||||||
palette = 4={{ color4 }}
|
palette = 4={{ blue }}
|
||||||
palette = 5={{ color5 }}
|
palette = 5={{ magenta }}
|
||||||
palette = 6={{ color6 }}
|
palette = 6={{ cyan }}
|
||||||
palette = 7={{ color7 }}
|
palette = 7={{ foreground }}
|
||||||
palette = 8={{ color8 }}
|
palette = 8={{ muted }}
|
||||||
palette = 9={{ color9 }}
|
palette = 9={{ bright_red }}
|
||||||
palette = 10={{ color10 }}
|
palette = 10={{ bright_green }}
|
||||||
palette = 11={{ color11 }}
|
palette = 11={{ bright_yellow }}
|
||||||
palette = 12={{ color12 }}
|
palette = 12={{ bright_blue }}
|
||||||
palette = 13={{ color13 }}
|
palette = 13={{ bright_magenta }}
|
||||||
palette = 14={{ color14 }}
|
palette = 14={{ bright_cyan }}
|
||||||
palette = 15={{ color15 }}
|
palette = 15={{ bright_foreground }}
|
||||||
|
|||||||
@@ -0,0 +1,137 @@
|
|||||||
|
-- Gum Style (generic) Variables
|
||||||
|
hl.env("FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("BORDER_FOREGROUND", "{{ accent }}")
|
||||||
|
hl.env("BORDER_BACKGROUND", "{{ background }}")
|
||||||
|
|
||||||
|
-- Gum Confirm Style Variables
|
||||||
|
hl.env("GUM_CONFIRM_PROMPT_FOREGROUND", "{{ accent }}")
|
||||||
|
hl.env("GUM_CONFIRM_PROMPT_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_CONFIRM_SELECTED_FOREGROUND", "{{ selection_foreground }}")
|
||||||
|
hl.env("GUM_CONFIRM_SELECTED_BACKGROUND", "{{ selection_background }}")
|
||||||
|
hl.env("GUM_CONFIRM_UNSELECTED_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_CONFIRM_UNSELECTED_BACKGROUND", "{{ background }}")
|
||||||
|
|
||||||
|
-- Gum Input Style Variables
|
||||||
|
hl.env("GUM_INPUT_PROMPT_FOREGROUND", "{{ accent }}")
|
||||||
|
hl.env("GUM_INPUT_PROMPT_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_INPUT_PLACEHOLDER_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_INPUT_PLACEHOLDER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_INPUT_CURSOR_FOREGROUND", "{{ bright_foreground }}")
|
||||||
|
hl.env("GUM_INPUT_CURSOR_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_INPUT_HEADER_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_INPUT_HEADER_BACKGROUND", "{{ background }}")
|
||||||
|
|
||||||
|
-- Gum Choose Style Variables
|
||||||
|
hl.env("GUM_CHOOSE_CURSOR_FOREGROUND", "{{ accent }}")
|
||||||
|
hl.env("GUM_CHOOSE_CURSOR_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_CHOOSE_HEADER_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_CHOOSE_HEADER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_CHOOSE_ITEM_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_CHOOSE_ITEM_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_CHOOSE_SELECTED_FOREGROUND", "{{ selection_foreground }}")
|
||||||
|
hl.env("GUM_CHOOSE_SELECTED_BACKGROUND", "{{ selection_background }}")
|
||||||
|
|
||||||
|
-- Gum Filter Style Variables
|
||||||
|
hl.env("GUM_FILTER_PROMPT_FOREGROUND", "{{ accent }}")
|
||||||
|
hl.env("GUM_FILTER_PROMPT_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILTER_TEXT_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_FILTER_TEXT_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILTER_MATCH_FOREGROUND", "{{ accent }}")
|
||||||
|
hl.env("GUM_FILTER_CURSOR_TEXT_FOREGROUND", "{{ bright_foreground }}")
|
||||||
|
hl.env("GUM_FILTER_CURSOR_TEXT_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILTER_SELECTED_FOREGROUND", "{{ selection_foreground }}")
|
||||||
|
hl.env("GUM_FILTER_SELECTED_BACKGROUND", "{{ selection_background }}")
|
||||||
|
hl.env("GUM_FILTER_INDICATOR_FOREGROUND", "{{ accent }}")
|
||||||
|
hl.env("GUM_FILTER_HEADER_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_FILTER_MATCH_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILTER_HEADER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILTER_PLACEHOLDER_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_FILTER_PLACEHOLDER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILTER_INDICATOR_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILTER_SELECTED_PREFIX_FOREGROUND", "{{ selection_foreground }}")
|
||||||
|
hl.env("GUM_FILTER_SELECTED_PREFIX_BACKGROUND", "{{ selection_background }}")
|
||||||
|
hl.env("GUM_FILTER_UNSELECTED_PREFIX_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_FILTER_UNSELECTED_PREFIX_BACKGROUND", "{{ background }}")
|
||||||
|
|
||||||
|
-- Gum Table Style Variables
|
||||||
|
hl.env("GUM_TABLE_HEADER_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_TABLE_HEADER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_TABLE_CELL_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_TABLE_CELL_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_TABLE_BORDER_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_TABLE_BORDER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_TABLE_SELECTED_FOREGROUND", "{{ selection_foreground }}")
|
||||||
|
hl.env("GUM_TABLE_SELECTED_BACKGROUND", "{{ selection_background }}")
|
||||||
|
|
||||||
|
-- Gum Spin Style Variables
|
||||||
|
hl.env("GUM_SPIN_SPINNER_FOREGROUND", "{{ accent }}")
|
||||||
|
hl.env("GUM_SPIN_SPINNER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_SPIN_TITLE_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_SPIN_TITLE_BACKGROUND", "{{ background }}")
|
||||||
|
|
||||||
|
-- Gum File Style Variables
|
||||||
|
hl.env("GUM_FILE_CURSOR_FOREGROUND", "{{ bright_foreground }}")
|
||||||
|
hl.env("GUM_FILE_CURSOR_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILE_SYMLINK_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_FILE_SYMLINK_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILE_DIRECTORY_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_FILE_DIRECTORY_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILE_FILE_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_FILE_FILE_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILE_PERMISSIONS_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_FILE_PERMISSIONS_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILE_SELECTED_FOREGROUND", "{{ selection_foreground }}")
|
||||||
|
hl.env("GUM_FILE_SELECTED_BACKGROUND", "{{ selection_background }}")
|
||||||
|
hl.env("GUM_FILE_FILE_SIZE_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_FILE_FILE_SIZE_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_FILE_HEADER_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_FILE_HEADER_BACKGROUND", "{{ background }}")
|
||||||
|
|
||||||
|
-- Gum Pager Style Variables
|
||||||
|
hl.env("GUM_PAGER_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_PAGER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_PAGER_LINE_NUMBER_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_PAGER_LINE_NUMBER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_PAGER_MATCH_FOREGROUND", "{{ accent }}")
|
||||||
|
hl.env("GUM_PAGER_MATCH_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_PAGER_MATCH_HIGH_FOREGROUND", "{{ accent }}")
|
||||||
|
hl.env("GUM_PAGER_MATCH_HIGH_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_PAGER_HELP_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_PAGER_HELP_BACKGROUND", "{{ background }}")
|
||||||
|
|
||||||
|
-- Gum Write Style Variables
|
||||||
|
hl.env("GUM_WRITE_BASE_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_WRITE_BASE_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_WRITE_CURSOR_LINE_NUMBER_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_WRITE_CURSOR_LINE_NUMBER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_WRITE_CURSOR_LINE_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_WRITE_CURSOR_LINE_BACKGROUND", "{{ selection_background }}")
|
||||||
|
hl.env("GUM_WRITE_CURSOR_FOREGROUND", "{{ bright_foreground }}")
|
||||||
|
hl.env("GUM_WRITE_CURSOR_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_WRITE_END_OF_BUFFER_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_WRITE_END_OF_BUFFER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_WRITE_LINE_NUMBER_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_WRITE_LINE_NUMBER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_WRITE_HEADER_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_WRITE_HEADER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_WRITE_PLACEHOLDER_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_WRITE_PLACEHOLDER_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_WRITE_PROMPT_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_WRITE_PROMPT_BACKGROUND", "{{ background }}")
|
||||||
|
|
||||||
|
-- Gum Log Style Variables
|
||||||
|
hl.env("GUM_LOG_LEVEL_FOREGROUND", "{{ accent }}")
|
||||||
|
hl.env("GUM_LOG_LEVEL_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_LOG_TIME_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_LOG_TIME_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_LOG_PREFIX_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_LOG_PREFIX_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_LOG_MESSAGE_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_LOG_MESSAGE_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_LOG_KEY_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_LOG_KEY_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_LOG_VALUE_FOREGROUND", "{{ foreground }}")
|
||||||
|
hl.env("GUM_LOG_VALUE_BACKGROUND", "{{ background }}")
|
||||||
|
hl.env("GUM_LOG_SEPARATOR_FOREGROUND", "{{ muted }}")
|
||||||
|
hl.env("GUM_LOG_SEPARATOR_BACKGROUND", "{{ background }}")
|
||||||
@@ -76,12 +76,12 @@
|
|||||||
"ui.bufferline.active" = { fg = "foreground", bg = "background", underline = { color = "color5", style = "line" } }
|
"ui.bufferline.active" = { fg = "foreground", bg = "background", underline = { color = "color5", style = "line" } }
|
||||||
|
|
||||||
"ui.text" = "foreground"
|
"ui.text" = "foreground"
|
||||||
"ui.text.focus" = { fg = "foreground", bg = "color0", modifiers = ["bold"] }
|
"ui.text.focus" = { fg = "foreground", bg = "lighter_background", modifiers = ["bold"] }
|
||||||
"ui.text.inactive" = { fg = "color8" }
|
"ui.text.inactive" = { fg = "color8" }
|
||||||
"ui.text.directory" = { fg = "color4" }
|
"ui.text.directory" = { fg = "color4" }
|
||||||
|
|
||||||
"ui.virtual" = "color8"
|
"ui.virtual" = "color8"
|
||||||
"ui.virtual.ruler" = { bg = "color0" }
|
"ui.virtual.ruler" = { bg = "lighter_background" }
|
||||||
"ui.virtual.indent-guide" = "color8"
|
"ui.virtual.indent-guide" = "color8"
|
||||||
"ui.virtual.inlay-hint" = { fg = "color8" }
|
"ui.virtual.inlay-hint" = { fg = "color8" }
|
||||||
"ui.virtual.jump-label" = { fg = "color1", modifiers = ["bold"] }
|
"ui.virtual.jump-label" = { fg = "color1", modifiers = ["bold"] }
|
||||||
@@ -96,9 +96,9 @@
|
|||||||
"ui.cursor.primary.insert" = { fg = "background", bg = "color2" }
|
"ui.cursor.primary.insert" = { fg = "background", bg = "color2" }
|
||||||
"ui.cursor.primary.select" = { fg = "background", bg = "color5" }
|
"ui.cursor.primary.select" = { fg = "background", bg = "color5" }
|
||||||
|
|
||||||
"ui.cursorline.primary" = { bg = "color0" }
|
"ui.cursorline.primary" = { bg = "lighter_background" }
|
||||||
|
|
||||||
"ui.highlight" = { bg = "color0", modifiers = ["bold"] }
|
"ui.highlight" = { bg = "lighter_background", modifiers = ["bold"] }
|
||||||
|
|
||||||
"ui.menu" = { fg = "foreground", bg = "background" }
|
"ui.menu" = { fg = "foreground", bg = "background" }
|
||||||
"ui.menu.selected" = { fg = "background", bg = "foreground", modifiers = ["bold"] }
|
"ui.menu.selected" = { fg = "background", bg = "foreground", modifiers = ["bold"] }
|
||||||
@@ -118,15 +118,16 @@ hint = "color6"
|
|||||||
[palette]
|
[palette]
|
||||||
background = "{{ background }}"
|
background = "{{ background }}"
|
||||||
foreground = "{{ foreground }}"
|
foreground = "{{ foreground }}"
|
||||||
cursor = "{{ cursor }}"
|
lighter_background = "{{ lighter_background }}"
|
||||||
|
cursor = "{{ bright_foreground }}"
|
||||||
selection_background = "{{ selection_background }}"
|
selection_background = "{{ selection_background }}"
|
||||||
selection_foreground = "{{ selection_foreground }}"
|
selection_foreground = "{{ selection_foreground }}"
|
||||||
color0 = "{{ color0 }}"
|
color0 = "{{ background }}"
|
||||||
color1 = "{{ color1 }}"
|
color1 = "{{ red }}"
|
||||||
color2 = "{{ color2 }}"
|
color2 = "{{ green }}"
|
||||||
color3 = "{{ color3 }}"
|
color3 = "{{ yellow }}"
|
||||||
color4 = "{{ color4 }}"
|
color4 = "{{ blue }}"
|
||||||
color5 = "{{ color5 }}"
|
color5 = "{{ magenta }}"
|
||||||
color6 = "{{ color6 }}"
|
color6 = "{{ cyan }}"
|
||||||
color7 = "{{ color7 }}"
|
color7 = "{{ foreground }}"
|
||||||
color8 = "{{ color8 }}"
|
color8 = "{{ muted }}"
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
name: omarchy
|
||||||
|
description: Omarchy system theme
|
||||||
|
colors:
|
||||||
|
background: "{{ background }}"
|
||||||
|
ui_text: "{{ foreground }}"
|
||||||
|
ui_primary: "{{ accent }}"
|
||||||
|
ui_accent: "{{ accent }}"
|
||||||
|
ui_border: "{{ muted }}"
|
||||||
|
ui_label: "{{ accent }}"
|
||||||
|
ui_ok: "{{ green }}"
|
||||||
|
ui_warn: "{{ yellow }}"
|
||||||
|
ui_error: "{{ red }}"
|
||||||
|
ui_tool: "{{ cyan }}"
|
||||||
|
ui_thinking: "{{ dark_foreground }}"
|
||||||
|
banner_border: "{{ muted }}"
|
||||||
|
banner_title: "{{ accent }}"
|
||||||
|
banner_accent: "{{ accent }}"
|
||||||
|
banner_dim: "{{ dark_foreground }}"
|
||||||
|
banner_text: "{{ foreground }}"
|
||||||
|
prompt: "{{ bright_foreground }}"
|
||||||
|
input_rule: "{{ muted }}"
|
||||||
|
response_border: "{{ accent }}"
|
||||||
|
shell_dollar: "{{ blue }}"
|
||||||
|
selection_bg: "{{ selection }}"
|
||||||
|
session_label: "{{ accent }}"
|
||||||
|
session_border: "{{ muted }}"
|
||||||
|
status_bar_bg: "{{ dark_background }}"
|
||||||
|
status_bar_text: "{{ foreground }}"
|
||||||
|
status_bar_strong: "{{ accent }}"
|
||||||
|
status_bar_dim: "{{ dark_foreground }}"
|
||||||
|
status_bar_good: "{{ green }}"
|
||||||
|
status_bar_warn: "{{ yellow }}"
|
||||||
|
status_bar_bad: "{{ red }}"
|
||||||
|
status_bar_critical: "{{ bright_red }}"
|
||||||
|
voice_status_bg: "{{ dark_background }}"
|
||||||
|
completion_menu_bg: "{{ lighter_background }}"
|
||||||
|
completion_menu_current_bg: "{{ selection }}"
|
||||||
|
completion_menu_meta_bg: "{{ lighter_background }}"
|
||||||
|
completion_menu_meta_current_bg: "{{ selection }}"
|
||||||
|
diff_added: "{{ mix background green 15% }}"
|
||||||
|
diff_removed: "{{ mix background red 15% }}"
|
||||||
|
diff_added_word: "{{ green }}"
|
||||||
|
diff_removed_word: "{{ red }}"
|
||||||
|
syntax_string: "{{ green }}"
|
||||||
|
syntax_number: "{{ yellow }}"
|
||||||
|
syntax_keyword: "{{ magenta }}"
|
||||||
|
syntax_comment: "{{ muted }}"
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
@define-color foreground {{ foreground }};
|
@define-color foreground {{ foreground }};
|
||||||
@define-color background {{ background }};
|
@define-color background {{ background }};
|
||||||
@define-color accent {{ accent }};
|
@define-color accent {{ accent }};
|
||||||
@define-color muted {{ color8 }};
|
@define-color muted {{ muted }};
|
||||||
@define-color card_bg {{ color0 }};
|
@define-color card_bg {{ lighter_background }};
|
||||||
@define-color text_dark {{ background }};
|
@define-color text_dark {{ background }};
|
||||||
@define-color accent_hover {{ color12 }};
|
@define-color accent_hover {{ bright_blue }};
|
||||||
@define-color selected_tab {{ accent }};
|
@define-color selected_tab {{ accent }};
|
||||||
@define-color text {{ foreground }};
|
@define-color text {{ foreground }};
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
$activeBorderColor = rgb({{ accent_strip }})
|
|
||||||
|
|
||||||
general {
|
|
||||||
col.active_border = $activeBorderColor
|
|
||||||
}
|
|
||||||
|
|
||||||
group {
|
|
||||||
col.border_active = $activeBorderColor
|
|
||||||
}
|
|
||||||
@@ -1,14 +1,18 @@
|
|||||||
|
local active_border_color = {{ hypr_gradient hyprland_active_border accent }}
|
||||||
|
local inactive_border_color = {{ hypr_gradient hyprland_inactive_border rgba(595959aa) }}
|
||||||
|
|
||||||
hl.config({
|
hl.config({
|
||||||
general = {
|
general = {
|
||||||
col = {
|
col = {
|
||||||
active_border = { colors = {"rgb({{ accent_strip }})", "rgb({{ color1_strip }})" }, angle = 45 },
|
active_border = active_border_color,
|
||||||
inactive_border = { colors = {"rgb({{ color2_strip }})", "rgb({{ color2_strip }})" }, angle = 45 }
|
inactive_border = inactive_border_color,
|
||||||
}
|
|
||||||
},
|
},
|
||||||
group = {
|
},
|
||||||
col = {
|
|
||||||
border_active = { colors = {"rgb({{ accent_strip }})", "rgb({{ color1_strip }})" }, angle = 45 },
|
group = {
|
||||||
border_inactive = { colors = {"rgb({{ color2_strip }})", "rgb({{ color2_strip }})" }, angle = 45 }
|
col = {
|
||||||
}
|
border_active = active_border_color,
|
||||||
}
|
border_inactive = inactive_border_color,
|
||||||
|
},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -3,25 +3,25 @@ background {{ background }}
|
|||||||
selection_foreground {{ selection_foreground }}
|
selection_foreground {{ selection_foreground }}
|
||||||
selection_background {{ selection_background }}
|
selection_background {{ selection_background }}
|
||||||
|
|
||||||
cursor {{ cursor }}
|
cursor {{ bright_foreground }}
|
||||||
cursor_text_color {{ background }}
|
cursor_text_color {{ background }}
|
||||||
|
|
||||||
active_border_color {{ accent }}
|
active_border_color {{ accent }}
|
||||||
active_tab_background {{ accent }}
|
active_tab_background {{ accent }}
|
||||||
|
|
||||||
color0 {{ color0 }}
|
color0 {{ background }}
|
||||||
color1 {{ color1 }}
|
color1 {{ red }}
|
||||||
color2 {{ color2 }}
|
color2 {{ green }}
|
||||||
color3 {{ color3 }}
|
color3 {{ yellow }}
|
||||||
color4 {{ color4 }}
|
color4 {{ blue }}
|
||||||
color5 {{ color5 }}
|
color5 {{ magenta }}
|
||||||
color6 {{ color6 }}
|
color6 {{ cyan }}
|
||||||
color7 {{ color7 }}
|
color7 {{ foreground }}
|
||||||
color8 {{ color8 }}
|
color8 {{ muted }}
|
||||||
color9 {{ color9 }}
|
color9 {{ bright_red }}
|
||||||
color10 {{ color10 }}
|
color10 {{ bright_green }}
|
||||||
color11 {{ color11 }}
|
color11 {{ bright_yellow }}
|
||||||
color12 {{ color12 }}
|
color12 {{ bright_blue }}
|
||||||
color13 {{ color13 }}
|
color13 {{ bright_magenta }}
|
||||||
color14 {{ color14 }}
|
color14 {{ bright_cyan }}
|
||||||
color15 {{ color15 }}
|
color15 {{ bright_foreground }}
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
vim.pack.add({{ src = "https://github.com/bjarneo/aether.nvim", branch = "v3" }})
|
||||||
|
|
||||||
|
require('aether').setup({
|
||||||
|
colors = {
|
||||||
|
bg = "{{ background }}",
|
||||||
|
dark_bg = "{{ dark_background }}",
|
||||||
|
darker_bg = "{{ darker_background }}",
|
||||||
|
lighter_bg = "{{ lighter_background }}",
|
||||||
|
|
||||||
|
fg = "{{ foreground }}",
|
||||||
|
dark_fg = "{{ dark_foreground }}",
|
||||||
|
light_fg = "{{ light_foreground }}",
|
||||||
|
bright_fg = "{{ bright_foreground }}",
|
||||||
|
muted = "{{ muted }}",
|
||||||
|
|
||||||
|
red = "{{ red }}",
|
||||||
|
yellow = "{{ yellow }}",
|
||||||
|
orange = "{{ orange }}",
|
||||||
|
green = "{{ green }}",
|
||||||
|
cyan = "{{ cyan }}",
|
||||||
|
blue = "{{ blue }}",
|
||||||
|
magenta = "{{ magenta }}",
|
||||||
|
brown = "{{ brown }}",
|
||||||
|
|
||||||
|
bright_red = "{{ bright_red }}",
|
||||||
|
bright_yellow = "{{ bright_yellow }}",
|
||||||
|
bright_green = "{{ bright_green }}",
|
||||||
|
bright_cyan = "{{ bright_cyan }}",
|
||||||
|
bright_blue = "{{ bright_blue }}",
|
||||||
|
bright_magenta = "{{ bright_magenta }}",
|
||||||
|
|
||||||
|
accent = "{{ accent }}",
|
||||||
|
cursor = "{{ bright_foreground }}",
|
||||||
|
foreground = "{{ foreground }}",
|
||||||
|
background = "{{ background }}",
|
||||||
|
selection = "{{ selection }}",
|
||||||
|
selection_foreground = "{{ selection_foreground }}",
|
||||||
|
selection_background = "{{ selection_background }}",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
vim.cmd('colorscheme aether')
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"bjarneo/aether.nvim",
|
||||||
|
branch = "v3",
|
||||||
|
name = "aether",
|
||||||
|
priority = 1000,
|
||||||
|
opts = {
|
||||||
|
colors = {
|
||||||
|
bg = "{{ background }}",
|
||||||
|
dark_bg = "{{ dark_background }}",
|
||||||
|
darker_bg = "{{ darker_background }}",
|
||||||
|
lighter_bg = "{{ lighter_background }}",
|
||||||
|
|
||||||
|
fg = "{{ foreground }}",
|
||||||
|
dark_fg = "{{ dark_foreground }}",
|
||||||
|
light_fg = "{{ light_foreground }}",
|
||||||
|
bright_fg = "{{ bright_foreground }}",
|
||||||
|
muted = "{{ muted }}",
|
||||||
|
|
||||||
|
red = "{{ red }}",
|
||||||
|
yellow = "{{ yellow }}",
|
||||||
|
orange = "{{ orange }}",
|
||||||
|
green = "{{ green }}",
|
||||||
|
cyan = "{{ cyan }}",
|
||||||
|
blue = "{{ blue }}",
|
||||||
|
magenta = "{{ magenta }}",
|
||||||
|
brown = "{{ brown }}",
|
||||||
|
|
||||||
|
bright_red = "{{ bright_red }}",
|
||||||
|
bright_yellow = "{{ bright_yellow }}",
|
||||||
|
bright_green = "{{ bright_green }}",
|
||||||
|
bright_cyan = "{{ bright_cyan }}",
|
||||||
|
bright_blue = "{{ bright_blue }}",
|
||||||
|
bright_magenta = "{{ bright_magenta }}",
|
||||||
|
|
||||||
|
accent = "{{ accent }}",
|
||||||
|
cursor = "{{ bright_foreground }}",
|
||||||
|
foreground = "{{ foreground }}",
|
||||||
|
background = "{{ background }}",
|
||||||
|
selection = "{{ selection }}",
|
||||||
|
selection_foreground = "{{ selection_foreground }}",
|
||||||
|
selection_background = "{{ selection_background }}",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"LazyVim/LazyVim",
|
||||||
|
opts = {
|
||||||
|
colorscheme = "aether",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -12,18 +12,18 @@
|
|||||||
--text-selection: {{ selection_background }};
|
--text-selection: {{ selection_background }};
|
||||||
|
|
||||||
/* Border color */
|
/* Border color */
|
||||||
--background-modifier-border: {{ color8 }};
|
--background-modifier-border: {{ muted }};
|
||||||
|
|
||||||
/* Semantic heading colors */
|
/* Semantic heading colors */
|
||||||
--text-title-h1: {{ color1 }};
|
--text-title-h1: {{ red }};
|
||||||
--text-title-h2: {{ color2 }};
|
--text-title-h2: {{ green }};
|
||||||
--text-title-h3: {{ color3 }};
|
--text-title-h3: {{ yellow }};
|
||||||
--text-title-h4: {{ color4 }};
|
--text-title-h4: {{ blue }};
|
||||||
--text-title-h5: {{ color5 }};
|
--text-title-h5: {{ magenta }};
|
||||||
--text-title-h6: {{ color5 }};
|
--text-title-h6: {{ magenta }};
|
||||||
|
|
||||||
/* Links and accents */
|
/* Links and accents */
|
||||||
--text-link: {{ color4 }};
|
--text-link: {{ blue }};
|
||||||
--text-accent: {{ accent }};
|
--text-accent: {{ accent }};
|
||||||
--text-accent-hover: {{ accent }};
|
--text-accent-hover: {{ accent }};
|
||||||
--interactive-accent: {{ accent }};
|
--interactive-accent: {{ accent }};
|
||||||
@@ -34,23 +34,23 @@
|
|||||||
--text-faint: color-mix(in srgb, {{ foreground }} 55%, transparent);
|
--text-faint: color-mix(in srgb, {{ foreground }} 55%, transparent);
|
||||||
|
|
||||||
/* Code */
|
/* Code */
|
||||||
--code-normal: {{ color6 }};
|
--code-normal: {{ cyan }};
|
||||||
|
|
||||||
/* Errors and success */
|
/* Errors and success */
|
||||||
--text-error: {{ color1 }};
|
--text-error: {{ red }};
|
||||||
--text-error-hover: {{ color1 }};
|
--text-error-hover: {{ red }};
|
||||||
--text-success: {{ color2 }};
|
--text-success: {{ green }};
|
||||||
|
|
||||||
/* Tags */
|
/* Tags */
|
||||||
--tag-color: {{ color6 }};
|
--tag-color: {{ cyan }};
|
||||||
--tag-background: {{ color8 }};
|
--tag-background: {{ muted }};
|
||||||
|
|
||||||
/* Graph */
|
/* Graph */
|
||||||
--graph-line: {{ color8 }};
|
--graph-line: {{ muted }};
|
||||||
--graph-node: {{ accent }};
|
--graph-node: {{ accent }};
|
||||||
--graph-node-focused: {{ color4 }};
|
--graph-node-focused: {{ blue }};
|
||||||
--graph-node-tag: {{ color6 }};
|
--graph-node-tag: {{ cyan }};
|
||||||
--graph-node-attachment: {{ color2 }};
|
--graph-node-attachment: {{ green }};
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Headers */
|
/* Headers */
|
||||||
@@ -63,16 +63,16 @@
|
|||||||
|
|
||||||
/* Code blocks */
|
/* Code blocks */
|
||||||
.markdown-rendered code {
|
.markdown-rendered code {
|
||||||
color: {{ color6 }};
|
color: {{ cyan }};
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Syntax highlighting */
|
/* Syntax highlighting */
|
||||||
.cm-s-obsidian span.cm-keyword { color: {{ color1 }}; }
|
.cm-s-obsidian span.cm-keyword { color: {{ red }}; }
|
||||||
.cm-s-obsidian span.cm-string { color: {{ color2 }}; }
|
.cm-s-obsidian span.cm-string { color: {{ green }}; }
|
||||||
.cm-s-obsidian span.cm-number { color: {{ color3 }}; }
|
.cm-s-obsidian span.cm-number { color: {{ yellow }}; }
|
||||||
.cm-s-obsidian span.cm-comment { color: {{ color8 }}; }
|
.cm-s-obsidian span.cm-comment { color: {{ muted }}; }
|
||||||
.cm-s-obsidian span.cm-operator { color: {{ color4 }}; }
|
.cm-s-obsidian span.cm-operator { color: {{ blue }}; }
|
||||||
.cm-s-obsidian span.cm-def { color: {{ color4 }}; }
|
.cm-s-obsidian span.cm-def { color: {{ blue }}; }
|
||||||
|
|
||||||
/* Links */
|
/* Links */
|
||||||
.markdown-rendered a {
|
.markdown-rendered a {
|
||||||
|
|||||||
@@ -0,0 +1,95 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
||||||
|
"name": "omarchy-system",
|
||||||
|
"vars": {
|
||||||
|
"background": "{{ background }}",
|
||||||
|
"foreground": "{{ foreground }}",
|
||||||
|
"accent": "{{ accent }}",
|
||||||
|
"selectionBackground": "{{ selection_background }}",
|
||||||
|
"selectionForeground": "{{ selection_foreground }}",
|
||||||
|
"selectedBackground": "{{ mix background accent 22% }}",
|
||||||
|
"color0": "{{ background }}",
|
||||||
|
"color1": "{{ red }}",
|
||||||
|
"color2": "{{ green }}",
|
||||||
|
"color3": "{{ yellow }}",
|
||||||
|
"color4": "{{ blue }}",
|
||||||
|
"color5": "{{ magenta }}",
|
||||||
|
"color6": "{{ cyan }}",
|
||||||
|
"color7": "{{ foreground }}",
|
||||||
|
"color8": "{{ muted }}",
|
||||||
|
"color9": "{{ bright_red }}",
|
||||||
|
"color10": "{{ bright_green }}",
|
||||||
|
"color11": "{{ bright_yellow }}",
|
||||||
|
"color12": "{{ bright_blue }}",
|
||||||
|
"color13": "{{ bright_magenta }}",
|
||||||
|
"color14": "{{ bright_cyan }}",
|
||||||
|
"color15": "{{ bright_foreground }}",
|
||||||
|
"panel": "{{ mix background foreground 6% }}",
|
||||||
|
"panelAlt": "{{ mix background foreground 10% }}",
|
||||||
|
"panelPending": "{{ mix background accent 12% }}",
|
||||||
|
"panelSuccess": "{{ mix background green 12% }}",
|
||||||
|
"panelError": "{{ mix background red 12% }}",
|
||||||
|
"border": "{{ mix background foreground 30% }}",
|
||||||
|
"borderMuted": "{{ mix background foreground 20% }}",
|
||||||
|
"mutedText": "{{ mix foreground background 34% }}",
|
||||||
|
"dimText": "{{ mix foreground background 52% }}"
|
||||||
|
},
|
||||||
|
"colors": {
|
||||||
|
"accent": "accent",
|
||||||
|
"border": "border",
|
||||||
|
"borderAccent": "accent",
|
||||||
|
"borderMuted": "borderMuted",
|
||||||
|
"success": "color2",
|
||||||
|
"error": "color1",
|
||||||
|
"warning": "color3",
|
||||||
|
"muted": "mutedText",
|
||||||
|
"dim": "dimText",
|
||||||
|
"text": "foreground",
|
||||||
|
"thinkingText": "dimText",
|
||||||
|
"selectedBg": "selectedBackground",
|
||||||
|
"userMessageBg": "panel",
|
||||||
|
"userMessageText": "foreground",
|
||||||
|
"customMessageBg": "panel",
|
||||||
|
"customMessageText": "foreground",
|
||||||
|
"customMessageLabel": "accent",
|
||||||
|
"toolPendingBg": "panelPending",
|
||||||
|
"toolSuccessBg": "panelSuccess",
|
||||||
|
"toolErrorBg": "panelError",
|
||||||
|
"toolTitle": "accent",
|
||||||
|
"toolOutput": "foreground",
|
||||||
|
"mdHeading": "color5",
|
||||||
|
"mdLink": "accent",
|
||||||
|
"mdLinkUrl": "color6",
|
||||||
|
"mdCode": "color6",
|
||||||
|
"mdCodeBlock": "foreground",
|
||||||
|
"mdCodeBlockBorder": "borderMuted",
|
||||||
|
"mdQuote": "mutedText",
|
||||||
|
"mdQuoteBorder": "borderMuted",
|
||||||
|
"mdHr": "borderMuted",
|
||||||
|
"mdListBullet": "color5",
|
||||||
|
"toolDiffAdded": "color2",
|
||||||
|
"toolDiffRemoved": "color1",
|
||||||
|
"toolDiffContext": "mutedText",
|
||||||
|
"syntaxComment": "dimText",
|
||||||
|
"syntaxKeyword": "color5",
|
||||||
|
"syntaxFunction": "color4",
|
||||||
|
"syntaxVariable": "accent",
|
||||||
|
"syntaxString": "color2",
|
||||||
|
"syntaxNumber": "color3",
|
||||||
|
"syntaxType": "color4",
|
||||||
|
"syntaxOperator": "color5",
|
||||||
|
"syntaxPunctuation": "mutedText",
|
||||||
|
"thinkingOff": "borderMuted",
|
||||||
|
"thinkingMinimal": "accent",
|
||||||
|
"thinkingLow": "color4",
|
||||||
|
"thinkingMedium": "color5",
|
||||||
|
"thinkingHigh": "color3",
|
||||||
|
"thinkingXhigh": "color1",
|
||||||
|
"bashMode": "color3"
|
||||||
|
},
|
||||||
|
"export": {
|
||||||
|
"pageBg": "{{ background }}",
|
||||||
|
"cardBg": "{{ mix background foreground 6% }}",
|
||||||
|
"infoBg": "{{ mix background foreground 10% }}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,56 +1,56 @@
|
|||||||
[colors]
|
[colors]
|
||||||
# Regular colors
|
# Regular colors
|
||||||
background = '{{ background }}'
|
background = '{{ background }}'
|
||||||
black = '{{ color0 }}'
|
black = '{{ background }}'
|
||||||
blue = '{{ color4 }}'
|
blue = '{{ blue }}'
|
||||||
cyan = '{{ color6 }}'
|
cyan = '{{ cyan }}'
|
||||||
foreground = '{{ foreground }}'
|
foreground = '{{ foreground }}'
|
||||||
green = '{{ color2 }}'
|
green = '{{ green }}'
|
||||||
magenta = '{{ color5 }}'
|
magenta = '{{ magenta }}'
|
||||||
red = '{{ color1 }}'
|
red = '{{ red }}'
|
||||||
white = '{{ color15 }}'
|
white = '{{ foreground }}'
|
||||||
yellow = '{{ color11 }}'
|
yellow = '{{ yellow }}'
|
||||||
|
|
||||||
# Cursor
|
# Cursor
|
||||||
cursor = '{{ cursor }}'
|
cursor = '{{ bright_foreground }}'
|
||||||
vi-cursor = '{{ accent }}'
|
vi-cursor = '{{ accent }}'
|
||||||
|
|
||||||
# Navigation
|
# Navigation
|
||||||
# tabs and tabs-active set the inactive/active tab title colors.
|
# tabs and tabs-active set the inactive/active tab title colors.
|
||||||
# Tab island backgrounds are derived from the window background color.
|
# Tab island backgrounds are derived from the window background color.
|
||||||
tabs = '{{ color8 }}'
|
tabs = '{{ muted }}'
|
||||||
tabs-active = '{{ color15 }}'
|
tabs-active = '{{ selection }}'
|
||||||
split = '{{ color8 }}'
|
split = '{{ muted }}'
|
||||||
split-active = '{{ color15 }}'
|
split-active = '{{ selection }}'
|
||||||
|
|
||||||
# Search
|
# Search
|
||||||
search-match-background = '{{ color12 }}'
|
search-match-background = '{{ light_background }}'
|
||||||
search-match-foreground = '{{ color15 }}'
|
search-match-foreground = '{{ dark_foreground }}'
|
||||||
search-focused-match-background = '{{ color3 }}'
|
search-focused-match-background = '{{ lighter_background }}'
|
||||||
search-focused-match-foreground = '{{ color15 }}'
|
search-focused-match-foreground = '{{ dark_foreground }}'
|
||||||
|
|
||||||
# Selection
|
# Selection
|
||||||
selection-foreground = '{{ selection_foreground }}'
|
selection-foreground = '{{ selection_foreground }}'
|
||||||
selection-background = '{{ selection_background }}'
|
selection-background = '{{ selection_background }}'
|
||||||
|
|
||||||
# Dim colors
|
# Dim colors
|
||||||
dim-black = '{{ color0 }}'
|
dim-black = '{{ background }}'
|
||||||
dim-blue = '{{ color4 }}'
|
dim-blue = '{{ blue }}'
|
||||||
dim-cyan = '{{ color6 }}'
|
dim-cyan = '{{ cyan }}'
|
||||||
dim-foreground = '{{ foreground }}'
|
dim-foreground = '{{ foreground }}'
|
||||||
dim-green = '{{ color2 }}'
|
dim-green = '{{ green }}'
|
||||||
dim-magenta = '{{ color5 }}'
|
dim-magenta = '{{ magenta }}'
|
||||||
dim-red = '{{ color1 }}'
|
dim-red = '{{ red }}'
|
||||||
dim-white = '{{ color15 }}'
|
dim-white = '{{ foreground }}'
|
||||||
dim-yellow = '{{ color11 }}'
|
dim-yellow = '{{ yellow }}'
|
||||||
|
|
||||||
# Light colors
|
# Light colors
|
||||||
light-black = '{{ color8 }}'
|
light-black = '{{ lighter_background }}'
|
||||||
light-blue = '{{ color12 }}'
|
light-blue = '{{ bright_blue }}'
|
||||||
light-cyan = '{{ color14 }}'
|
light-cyan = '{{ bridht_cyan }}'
|
||||||
light-foreground = '{{ foreground }}'
|
light-foreground = '{{ bright_foreground }}'
|
||||||
light-green = '{{ color10 }}'
|
light-green = '{{ bright_green }}'
|
||||||
light-magenta = '{{ color13 }}'
|
light-magenta = '{{ bright_magenta }}'
|
||||||
light-red = '{{ color9 }}'
|
light-red = '{{ bright_red}}'
|
||||||
light-white = '{{ color15 }}'
|
light-white = '{{ bright_foreground }}'
|
||||||
light-yellow = '{{ color11 }}'
|
light-yellow = '{{ bright_yellow }}'
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
* {
|
* {
|
||||||
background: {{ background }};
|
background: {{ background }};
|
||||||
foreground: {{ foreground }};
|
foreground: {{ foreground }};
|
||||||
active-background: {{ color2 }};
|
active-background: {{ lighter_background }};
|
||||||
urgent-background: {{ color1 }};
|
urgent-background: {{ accent }};
|
||||||
|
|
||||||
normal-foreground: {{ color3 }};
|
normal-foreground: {{ dark_foreground }};
|
||||||
normal-background: {{ background }};
|
normal-background: {{ dark_background }};
|
||||||
|
|
||||||
selected-foreground: {{ selection_foreground }};
|
selected-foreground: {{ selection_foreground }};
|
||||||
selected-background: {{ selection_background }};
|
selected-background: {{ selection_background }};
|
||||||
|
|
||||||
seperator-color: {{ background }};
|
seperator-color: {{ background }};
|
||||||
border-color: {{ color0 }};
|
border-color: {{ accent }};
|
||||||
|
|
||||||
prompt-color: {{ color4 }};
|
prompt-color: {{ light_foreground }};
|
||||||
prompt-background-color: {{ color0 }};
|
prompt-background-color: {{ darker_background }};
|
||||||
|
|
||||||
window-border-size: 1px;
|
window-border-size: 1px;
|
||||||
window-border-radius: 8px;
|
window-border-radius: 8px;
|
||||||
|
|||||||
@@ -0,0 +1,237 @@
|
|||||||
|
# Omarchy shell surfaces. Colors derive from colors.toml; sizes and the
|
||||||
|
# typographic scale come from the keys below. Themes can ship
|
||||||
|
# themes/<name>/shell.toml to replace this generated file.
|
||||||
|
|
||||||
|
[bar]
|
||||||
|
# Alpha companions (where present) range from 0 (invisible) to 1 (opaque).
|
||||||
|
background = "{{ background }}"
|
||||||
|
background-alpha = 1.0
|
||||||
|
text = "{{ foreground }}"
|
||||||
|
# Modules calling attention to themselves (recording, voxtype, alerts, updates)
|
||||||
|
active = "{{ red }}"
|
||||||
|
# Cross-axis size at font base-size 12. size-horizontal is the height of
|
||||||
|
# top/bottom bars; size-vertical is the width of left/right bars. With
|
||||||
|
# scale-with-font enabled, these grow/shrink with [font] base-size.
|
||||||
|
scale-with-font = true
|
||||||
|
size-horizontal = 26
|
||||||
|
size-vertical = 28
|
||||||
|
|
||||||
|
[hyprland]
|
||||||
|
# Shared Hyprland-derived border tokens. Surface sections reference these so
|
||||||
|
# lock, notifications, popups, and menu-style cards stay aligned with the
|
||||||
|
# current Hyprland active-border gradient.
|
||||||
|
active-border = "{{ shell_gradient hyprland_active_border accent }}"
|
||||||
|
active-border-foreground = "{{ shell_gradient hyprland_active_border foreground }}"
|
||||||
|
|
||||||
|
[controls]
|
||||||
|
# Shared state tokens for interactive control chrome (buttons, dropdowns,
|
||||||
|
# tab strips, etc).
|
||||||
|
|
||||||
|
# Normal: idle control chrome. Border widths accept one CSS-style scalar/list:
|
||||||
|
# N, "Y X", "T X B", or "T R B L". Per-side keys like
|
||||||
|
# normal-border-width-left override the list. Each *-border accepts either a
|
||||||
|
# solid color or a Hyprland-style gradient, e.g. "rgba(...) rgba(...) 45deg".
|
||||||
|
normal-color = "{{ foreground }}"
|
||||||
|
normal-fill-alpha = 0.04
|
||||||
|
normal-border = "{{ foreground }}"
|
||||||
|
normal-border-width = 1
|
||||||
|
normal-border-alpha = 0.4
|
||||||
|
|
||||||
|
# Hover-cursor: mouse hover and the panel keyboard cursor.
|
||||||
|
hover-cursor-color = "{{ foreground }}"
|
||||||
|
hover-cursor-fill-alpha = 0.08
|
||||||
|
hover-cursor-border = "{{ foreground }}"
|
||||||
|
hover-cursor-border-width = 1
|
||||||
|
hover-cursor-border-alpha = 0.25
|
||||||
|
|
||||||
|
# Focus: Qt activeFocus. Mirror the hover-cursor values by default so
|
||||||
|
# mouse hover, keyboard cursor, and tab focus all read as the same state
|
||||||
|
# — themes that want focus to stand out override these four lines.
|
||||||
|
focus-color = "{{ foreground }}"
|
||||||
|
focus-fill-alpha = 0.08
|
||||||
|
focus-border = "{{ foreground }}"
|
||||||
|
focus-border-width = 1
|
||||||
|
focus-border-alpha = 0.25
|
||||||
|
|
||||||
|
# Selected: persistent chosen/current state.
|
||||||
|
selected-color = "{{ foreground }}"
|
||||||
|
selected-fill-alpha = 0.18
|
||||||
|
selected-border = "{{ foreground }}"
|
||||||
|
selected-border-width = 0
|
||||||
|
selected-border-alpha = 1.0
|
||||||
|
|
||||||
|
# Momentary fills.
|
||||||
|
pressed-fill-alpha = 0.22
|
||||||
|
selection-fill-alpha = 0.35
|
||||||
|
|
||||||
|
[spacing]
|
||||||
|
# `scale` multiplies shared margins, gaps, padding, controls, and panel
|
||||||
|
# dimensions; components keep their proportions. With scale-with-font
|
||||||
|
# enabled, those dimensions grow/shrink with [font] base-size too. Per-token
|
||||||
|
# overrides (in px) below pin individual values without affecting the rest
|
||||||
|
# of the scale. Uncomment any to tune a specific surface.
|
||||||
|
scale = 1.0
|
||||||
|
scale-with-font = true
|
||||||
|
# xxs = 2
|
||||||
|
# xs = 3
|
||||||
|
# sm = 4
|
||||||
|
# md = 6
|
||||||
|
# lg = 8
|
||||||
|
# xl = 10
|
||||||
|
# xxl = 12
|
||||||
|
# xxxl = 14
|
||||||
|
# huge = 18
|
||||||
|
# control-gap = 8
|
||||||
|
# control-padding-x = 10
|
||||||
|
# control-padding-y = 6
|
||||||
|
# input-padding-y = 7
|
||||||
|
# control-height = 28
|
||||||
|
# popup-row-height = 28
|
||||||
|
# row-gap = 8
|
||||||
|
# row-padding-x = 12
|
||||||
|
# label-gap = 4
|
||||||
|
# panel-gap = 14
|
||||||
|
# panel-padding = 18
|
||||||
|
# popup-padding = 14
|
||||||
|
# dropdown-width = 240
|
||||||
|
# searchable-dropdown-width = 260
|
||||||
|
# number-field-width = 120
|
||||||
|
# searchable-popup-min-height = 220
|
||||||
|
|
||||||
|
[font]
|
||||||
|
# base-size is the rem root for the type scale. Every Style.font.<token>
|
||||||
|
# derives from it (e.g. body = base, subtitle ≈ base * 1.083,
|
||||||
|
# heading ≈ base * 1.333). The shell only floors this at 1px; increase it
|
||||||
|
# as much as you want.
|
||||||
|
base-size = 12
|
||||||
|
# Per-token overrides, in px. Uncomment any to pin a specific size without
|
||||||
|
# affecting the rest of the scale. Useful for stylistic emphasis (a
|
||||||
|
# minimalist theme that wants a bigger heading without scaling everything).
|
||||||
|
# caption = 10
|
||||||
|
# body-small = 11
|
||||||
|
# body = 12
|
||||||
|
# subtitle = 13
|
||||||
|
# title = 14
|
||||||
|
# heading = 16
|
||||||
|
# display = 24
|
||||||
|
# display-large = 28
|
||||||
|
# icon-small = 11
|
||||||
|
# icon = 14
|
||||||
|
# icon-large = 18
|
||||||
|
|
||||||
|
[popups]
|
||||||
|
# Shared by every bar flyout (dropdowns, OSD, popup cards).
|
||||||
|
# Border accepts either a solid color or a Hyprland-style gradient. Border
|
||||||
|
# widths accept one CSS-style scalar/list: N, "Y X", "T X B", or "T R B L";
|
||||||
|
# individual border-width-top/right/bottom/left keys override the list.
|
||||||
|
background = "{{ background }}"
|
||||||
|
background-alpha = 1.0
|
||||||
|
text = "{{ foreground }}"
|
||||||
|
border = "hyprland.active-border"
|
||||||
|
border-alpha = 1.0
|
||||||
|
# border-width = 2
|
||||||
|
|
||||||
|
[tooltip]
|
||||||
|
# Hover tooltips across the bar, panels, and buttons. background-alpha of
|
||||||
|
# 0.97 mirrors the legacy hard-coded tooltip opacity.
|
||||||
|
background = "{{ background }}"
|
||||||
|
background-alpha = 0.97
|
||||||
|
text = "{{ foreground }}"
|
||||||
|
border = "hyprland.active-border-foreground"
|
||||||
|
border-alpha = 1.0
|
||||||
|
|
||||||
|
[notifications]
|
||||||
|
background = "{{ background }}"
|
||||||
|
background-alpha = 1.0
|
||||||
|
text = "{{ foreground }}"
|
||||||
|
# Conventionally matches the Hyprland active-window border. Border accepts
|
||||||
|
# either a solid color or the full active-border gradient.
|
||||||
|
border = "hyprland.active-border"
|
||||||
|
border-alpha = 1.0
|
||||||
|
# border-width = 2
|
||||||
|
countdown = "{{ accent }}"
|
||||||
|
|
||||||
|
[launcher]
|
||||||
|
# Same six tokens as [menu], applied to the launcher overlay. Alpha
|
||||||
|
# companions go from 0 (invisible) to 1 (opaque). scrim is the full-screen
|
||||||
|
# dim layer behind the card; background is the card itself. Defaults
|
||||||
|
# mirror [menu] with the card at 0.95 to preserve the legacy translucency.
|
||||||
|
background = "{{ background }}"
|
||||||
|
background-alpha = 0.95
|
||||||
|
text = "{{ foreground }}"
|
||||||
|
border = "hyprland.active-border-foreground"
|
||||||
|
border-alpha = 1.0
|
||||||
|
scrim = "{{ background }}"
|
||||||
|
scrim-alpha = 0.5
|
||||||
|
selected-background = "{{ foreground }}"
|
||||||
|
selected-background-alpha = 0.08
|
||||||
|
selected-text = "{{ accent }}"
|
||||||
|
selected-border = "hyprland.active-border-foreground"
|
||||||
|
selected-border-alpha = 0.25
|
||||||
|
|
||||||
|
[menu]
|
||||||
|
# Cards, rows, and selected-row treatment. Alpha companions (where present)
|
||||||
|
# go from 0 (invisible) to 1 (opaque). scrim is the full-screen dim layer
|
||||||
|
# behind the card. Clipboard and emojis inherit these tokens.
|
||||||
|
background = "{{ background }}"
|
||||||
|
background-alpha = 1.0
|
||||||
|
text = "{{ foreground }}"
|
||||||
|
border = "hyprland.active-border-foreground"
|
||||||
|
border-alpha = 1.0
|
||||||
|
scrim = "{{ background }}"
|
||||||
|
scrim-alpha = 0.5
|
||||||
|
selected-background = "{{ foreground }}"
|
||||||
|
selected-background-alpha = 0.08
|
||||||
|
selected-text = "{{ accent }}"
|
||||||
|
selected-border = "hyprland.active-border-foreground"
|
||||||
|
selected-border-alpha = 0.25
|
||||||
|
|
||||||
|
[polkit]
|
||||||
|
# Polkit authentication prompt (sudo/password dialogs). scrim is the
|
||||||
|
# darkening layer behind the card; background is the card itself.
|
||||||
|
# text-error tints the lock icon, password text, and placeholder when
|
||||||
|
# authentication fails. border-alpha applies to both border and
|
||||||
|
# border-error (the two states are mutually exclusive in time).
|
||||||
|
background = "{{ background }}"
|
||||||
|
background-alpha = 1.0
|
||||||
|
text = "{{ foreground }}"
|
||||||
|
text-error = "{{ red }}"
|
||||||
|
border = "hyprland.active-border"
|
||||||
|
border-error = "{{ red }}"
|
||||||
|
border-alpha = 1.0
|
||||||
|
scrim = "{{ background }}"
|
||||||
|
scrim-alpha = 0.5
|
||||||
|
# accent is the lock-icon glyph color + text-selection tint.
|
||||||
|
accent = "{{ accent }}"
|
||||||
|
|
||||||
|
[lock]
|
||||||
|
# Lock screen password input. background/background-alpha control the
|
||||||
|
# centered input field card; border/border-active/border-error cycle
|
||||||
|
# through idle, typing/authenticating, and wrong-password states.
|
||||||
|
# border-alpha applies to all three border states (they are mutually
|
||||||
|
# exclusive in time).
|
||||||
|
background = "{{ background }}"
|
||||||
|
background-alpha = 0.8
|
||||||
|
text = "{{ foreground }}"
|
||||||
|
placeholder = "{{ mix foreground background 34% }}"
|
||||||
|
text-error = "{{ red }}"
|
||||||
|
border = "hyprland.active-border"
|
||||||
|
border-active = "hyprland.active-border"
|
||||||
|
border-error = "{{ red }}"
|
||||||
|
border-alpha = 1.0
|
||||||
|
# selection is the text-selection tint inside the input field.
|
||||||
|
selection = "{{ accent }}"
|
||||||
|
selection-alpha = 0.45
|
||||||
|
|
||||||
|
[image-picker]
|
||||||
|
# Carousel-style picker. The picker has no card surface, so `scrim` is
|
||||||
|
# the full-screen wash. Per-slice dim overlays and text outlines on top
|
||||||
|
# of the scrim track the foundational background color directly.
|
||||||
|
# unselected-border-alpha softens carousel slices that aren't selected.
|
||||||
|
scrim = "{{ background }}"
|
||||||
|
scrim-alpha = 0.5
|
||||||
|
text = "{{ foreground }}"
|
||||||
|
selected-border = "{{ accent }}"
|
||||||
|
selected-border-alpha = 1.0
|
||||||
|
unselected-border = "{{ foreground }}"
|
||||||
|
unselected-border-alpha = 0.28
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
name = "omarchy"
|
name = "omarchy"
|
||||||
background = "{{ background }}"
|
background = "{{ background }}"
|
||||||
surface = "{{ color0 }}"
|
surface = "{{ darker_background }}"
|
||||||
text = "{{ foreground }}"
|
text = "{{ foreground }}"
|
||||||
accent = "{{ color7 }}"
|
accent = "{{ accent }}"
|
||||||
danger = "{{ color1 }}"
|
danger = "{{ red }}"
|
||||||
muted = "{{ color8 }}"
|
muted = "{{ muted }}"
|
||||||
highlight = "{{ color4 }}"
|
highlight = "{{ selection }}"
|
||||||
border = "{{ color2 }}"
|
border = "{{ light_foreground }}"
|
||||||
dim_text = "{{ color3 }}"
|
dim_text = "{{ dark_foreground }}"
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"name": "Omarchy",
|
||||||
|
"appearance": "{{ mode }}",
|
||||||
|
"canvas": "{{ background }}",
|
||||||
|
"accent": "{{ accent }}",
|
||||||
|
"colors": {
|
||||||
|
"chrome": "{{ background }}",
|
||||||
|
"toolbar": "{{ background }}",
|
||||||
|
"toolbarForeground": "{{ foreground }}",
|
||||||
|
"toolbarBorder": "{{ muted }}",
|
||||||
|
|
||||||
|
"text": "{{ foreground }}",
|
||||||
|
"border": "{{ muted }}",
|
||||||
|
"focus": "{{ accent }}",
|
||||||
|
|
||||||
|
"sidebar": "{{ dark_background }}",
|
||||||
|
"sidebarForeground": "{{ foreground }}",
|
||||||
|
"sidebarBorder": "{{ muted }}",
|
||||||
|
"sidebarRowHover": "{{ mix dark_background foreground 6% }}",
|
||||||
|
"sidebarRowActive": "{{ mix dark_background accent 18% }}",
|
||||||
|
"sidebarRowSelected": "{{ selection }}",
|
||||||
|
|
||||||
|
"error": "{{ mix red foreground 35% }}",
|
||||||
|
"warning": "{{ mix yellow foreground 35% }}",
|
||||||
|
|
||||||
|
"codeBackground": "{{ dark_background }}",
|
||||||
|
"codeForeground": "{{ foreground }}",
|
||||||
|
|
||||||
|
"terminalBackground": "{{ background }}",
|
||||||
|
"terminalForeground": "{{ foreground }}",
|
||||||
|
"terminalCursor": "{{ bright_foreground }}",
|
||||||
|
"terminalSelection": "{{ selection }}",
|
||||||
|
"terminalScrollbar": "{{ muted }}",
|
||||||
|
"terminalScrollbarHover": "{{ dark_foreground }}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,25 +1,25 @@
|
|||||||
color_bg0="{{ background }}"
|
color_bg0="{{ background }}"
|
||||||
color_bg1="{{ color0 }}"
|
color_bg1="{{ dark_background }}"
|
||||||
color_bg2="{{ color7 }}"
|
color_bg2="{{ darker_background }}"
|
||||||
color_fg0="{{ foreground }}"
|
color_fg0="{{ foreground }}"
|
||||||
color_fg1="{{ color3 }}"
|
color_fg1="{{ light_foreground }}"
|
||||||
|
|
||||||
color_status_fg="{{ color4 }}"
|
color_status_fg="{{ light_foreground }}"
|
||||||
color_status_bg="{{ color0 }}"
|
color_status_bg="{{ muted }}"
|
||||||
|
|
||||||
color_selected_fg="{{ selection_foreground }}"
|
color_selected_fg="{{ selection_foreground }}"
|
||||||
color_selected_bg="{{ selection_background }}"
|
color_selected_bg="{{ selection_background }}"
|
||||||
|
|
||||||
color_highlight_fg="{{ color2 }}"
|
color_highlight_fg="{{ yellow }}"
|
||||||
color_highlight_bg="{{ background }}"
|
color_highlight_bg="{{ background }}"
|
||||||
|
|
||||||
color_current_fg="{{ color1 }}"
|
color_current_fg="{{ orange }}"
|
||||||
color_current_bg="{{ background }}"
|
color_current_bg="{{ background }}"
|
||||||
|
|
||||||
color_check_fg="{{ color5 }}"
|
color_check_fg="{{ green }}"
|
||||||
|
|
||||||
pane_border_fg="{{ foreground }}"
|
pane_border_fg="{{ foreground }}"
|
||||||
pane_border_selected_fg="{{ color2 }}"
|
pane_border_selected_fg="{{ bright_foreground }}"
|
||||||
|
|
||||||
set -g @prefix_highlight_fg "${color_highlight_fg}"
|
set -g @prefix_highlight_fg "${color_highlight_fg}"
|
||||||
set -g @prefix_highlight_bg "${color_highlight_bg}"
|
set -g @prefix_highlight_bg "${color_highlight_bg}"
|
||||||
|
|||||||
@@ -115,6 +115,7 @@ dotfiles.default_mode = "symlink-each"
|
|||||||
"~/.local/bin/omarchy-theme-bg-next" = { source = "script/omarchy-theme-bg-next", mode = "symlink" }
|
"~/.local/bin/omarchy-theme-bg-next" = { source = "script/omarchy-theme-bg-next", mode = "symlink" }
|
||||||
"~/.local/bin/omarchy-theme-bg-set" = { source = "script/omarchy-theme-bg-set", mode = "symlink" }
|
"~/.local/bin/omarchy-theme-bg-set" = { source = "script/omarchy-theme-bg-set", mode = "symlink" }
|
||||||
"~/.local/bin/omarchy-theme-colors-from-alacritty" = { source = "script/omarchy-theme-colors-from-alacritty", mode = "symlink" }
|
"~/.local/bin/omarchy-theme-colors-from-alacritty" = { source = "script/omarchy-theme-colors-from-alacritty", mode = "symlink" }
|
||||||
|
"~/.local/bin/omarchy-theme-color" = { source = "script/omarchy-theme-color", mode = "symlink" }
|
||||||
"~/.local/bin/omarchy-theme-current" = { source = "script/omarchy-theme-current", mode = "symlink" }
|
"~/.local/bin/omarchy-theme-current" = { source = "script/omarchy-theme-current", mode = "symlink" }
|
||||||
"~/.local/bin/omarchy-theme-install" = { source = "script/omarchy-theme-install", mode = "symlink" }
|
"~/.local/bin/omarchy-theme-install" = { source = "script/omarchy-theme-install", mode = "symlink" }
|
||||||
"~/.local/bin/omarchy-theme-list" = { source = "script/omarchy-theme-list", mode = "symlink" }
|
"~/.local/bin/omarchy-theme-list" = { source = "script/omarchy-theme-list", mode = "symlink" }
|
||||||
|
|||||||
@@ -0,0 +1,304 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# omarchy:summary=Resolve semantic colors from an Omarchy theme colors.toml
|
||||||
|
# omarchy:args=[--file <colors.toml>] (--all | --raw | <key> [fallback])
|
||||||
|
# omarchy:hidden=true
|
||||||
|
|
||||||
|
# Shared colors.toml parser/resolver. The alias/fallback cascade mirrors what
|
||||||
|
# omarchy-theme-set-templates bakes into the generated configs at theme-set
|
||||||
|
# time, so every consumer (templates, OSC sequences, tmux, GNOME, previews)
|
||||||
|
# resolves the exact same palette.
|
||||||
|
#
|
||||||
|
# --all print every resolved key<TAB>value pair (sorted by key)
|
||||||
|
# --raw print only the key<TAB>value pairs defined in the file
|
||||||
|
# <key> [fallback] print one resolved value; the fallback is tried as
|
||||||
|
# another palette key first, then used verbatim
|
||||||
|
#
|
||||||
|
# Theme mode precedence: `mode` key, legacy `theme_type` key, a light.mode
|
||||||
|
# file beside the colors.toml, background luminance auto-detect, dark.
|
||||||
|
|
||||||
|
COLORS_FILE="$HOME/.local/state/omarchy/current/theme/colors.toml"
|
||||||
|
OUTPUT=""
|
||||||
|
QUERY_KEY=""
|
||||||
|
QUERY_FALLBACK=""
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: omarchy-theme-color [--file <colors.toml>] (--all | --raw | <key> [fallback])"
|
||||||
|
}
|
||||||
|
|
||||||
|
while (( $# > 0 )); do
|
||||||
|
case "$1" in
|
||||||
|
--file)
|
||||||
|
COLORS_FILE="${2:-}"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--all)
|
||||||
|
OUTPUT="all"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--raw)
|
||||||
|
OUTPUT="raw"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-h | --help)
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [[ -z $QUERY_KEY ]]; then
|
||||||
|
QUERY_KEY="$1"
|
||||||
|
elif [[ -z $QUERY_FALLBACK ]]; then
|
||||||
|
QUERY_FALLBACK="$1"
|
||||||
|
else
|
||||||
|
usage >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -z $OUTPUT && -z $QUERY_KEY ]] || [[ -n $OUTPUT && -n $QUERY_KEY ]]; then
|
||||||
|
usage >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
COLORS_DIR=$(dirname "$COLORS_FILE")
|
||||||
|
|
||||||
|
declare -A THEME_COLORS
|
||||||
|
|
||||||
|
# Mix two hex colors. Amount may be a fraction (0.30) or percentage (30%).
|
||||||
|
mix_color() {
|
||||||
|
local start="${1#\#}"
|
||||||
|
local end="${2#\#}"
|
||||||
|
local amount="$3"
|
||||||
|
|
||||||
|
awk -v start="$start" -v end="$end" -v amount="$amount" '
|
||||||
|
function hex_value(char) {
|
||||||
|
return index("0123456789abcdef", tolower(char)) - 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function hex_pair_to_int(hex, idx) {
|
||||||
|
return hex_value(substr(hex, idx, 1)) * 16 + hex_value(substr(hex, idx + 1, 1))
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
if (amount ~ /%$/) {
|
||||||
|
sub(/%$/, "", amount)
|
||||||
|
amount = amount / 100
|
||||||
|
} else {
|
||||||
|
amount += 0
|
||||||
|
if (amount > 1) amount = amount / 100
|
||||||
|
}
|
||||||
|
|
||||||
|
if (amount < 0) amount = 0
|
||||||
|
if (amount > 1) amount = 1
|
||||||
|
|
||||||
|
start_r = hex_pair_to_int(start, 1)
|
||||||
|
start_g = hex_pair_to_int(start, 3)
|
||||||
|
start_b = hex_pair_to_int(start, 5)
|
||||||
|
end_r = hex_pair_to_int(end, 1)
|
||||||
|
end_g = hex_pair_to_int(end, 3)
|
||||||
|
end_b = hex_pair_to_int(end, 5)
|
||||||
|
|
||||||
|
red = int(start_r * (1 - amount) + end_r * amount + 0.5)
|
||||||
|
green = int(start_g * (1 - amount) + end_g * amount + 0.5)
|
||||||
|
blue = int(start_b * (1 - amount) + end_b * amount + 0.5)
|
||||||
|
|
||||||
|
printf "#%02x%02x%02x\n", red, green, blue
|
||||||
|
}
|
||||||
|
'
|
||||||
|
}
|
||||||
|
|
||||||
|
alias_theme_color() {
|
||||||
|
local key="$1"
|
||||||
|
local fallback="$2"
|
||||||
|
|
||||||
|
[[ ${THEME_COLORS[$key]} ]] || THEME_COLORS[$key]="${THEME_COLORS[$fallback]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
resolve_theme_mode() {
|
||||||
|
local bg_hex lum
|
||||||
|
|
||||||
|
[[ ${THEME_COLORS[mode]} ]] || THEME_COLORS[mode]="${THEME_COLORS[theme_type]}"
|
||||||
|
[[ ${THEME_COLORS[mode]} ]] && return
|
||||||
|
|
||||||
|
if [[ -f $COLORS_DIR/light.mode ]]; then
|
||||||
|
THEME_COLORS[mode]="light"
|
||||||
|
elif [[ ${THEME_COLORS[background]} =~ ^#[0-9A-Fa-f]{6}$ ]]; then
|
||||||
|
bg_hex="${THEME_COLORS[background]#\#}"
|
||||||
|
lum=$(( $(printf "%d" "0x${bg_hex:0:2}") + $(printf "%d" "0x${bg_hex:2:2}") + $(printf "%d" "0x${bg_hex:4:2}") ))
|
||||||
|
(( lum > 382 )) && THEME_COLORS[mode]="light" || THEME_COLORS[mode]="dark"
|
||||||
|
else
|
||||||
|
THEME_COLORS[mode]="dark"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_colors_file() {
|
||||||
|
local key value
|
||||||
|
|
||||||
|
[[ -f $COLORS_FILE ]] || return 0
|
||||||
|
|
||||||
|
while IFS='=' read -r key value; do
|
||||||
|
key="${key//[\"\' ]/}" # strip quotes and spaces from key
|
||||||
|
[[ $key && $key != \#* ]] || continue # skip empty lines and comments
|
||||||
|
|
||||||
|
if [[ $value == *[\"\']* ]]; then
|
||||||
|
value="${value#*[\"\']}"
|
||||||
|
value="${value%%[\"\']*}" # extract value between quotes (ignores inline comments)
|
||||||
|
else
|
||||||
|
value="${value#"${value%%[![:space:]]*}"}"
|
||||||
|
value="${value%"${value##*[![:space:]]}"}" # trim unquoted values
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Values reach consumers as sed replacement text, so the charset excludes
|
||||||
|
# the delimiter, backslash, and & while still covering everything a real
|
||||||
|
# palette holds: hex, rgb()/rgba() lists, gradient angles like -45deg,
|
||||||
|
# decimals, and bare words. Rejections are announced so a third-party theme
|
||||||
|
# doesn't lose a key silently and leave a raw {{ placeholder }} behind.
|
||||||
|
if [[ ! $key =~ ^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-]+$ ]]; then
|
||||||
|
printf 'omarchy-theme-color: skipping key with unsupported characters\n' >&2
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! $value =~ ^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#(),._+/%\ -]*$ ]]; then
|
||||||
|
printf 'omarchy-theme-color: skipping %s: unsupported characters in value\n' "$key" >&2
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
THEME_COLORS[$key]="$value"
|
||||||
|
[[ $OUTPUT == "raw" ]] && printf '%s\t%s\n' "$key" "$value"
|
||||||
|
done <"$COLORS_FILE"
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
resolve_theme_colors() {
|
||||||
|
local key
|
||||||
|
|
||||||
|
# Accept the complete legacy short-name palette before applying ANSI
|
||||||
|
# fallbacks or deriving shades. Canonical names take precedence when a theme
|
||||||
|
# defines both forms.
|
||||||
|
declare -A legacy_palette_alias=(
|
||||||
|
[background]=bg
|
||||||
|
[dark_background]=dark_bg
|
||||||
|
[darker_background]=darker_bg
|
||||||
|
[lighter_background]=lighter_bg
|
||||||
|
[foreground]=fg
|
||||||
|
[dark_foreground]=dark_fg
|
||||||
|
[light_foreground]=light_fg
|
||||||
|
[bright_foreground]=bright_fg
|
||||||
|
)
|
||||||
|
for key in "${!legacy_palette_alias[@]}"; do
|
||||||
|
alias_theme_color "$key" "${legacy_palette_alias[$key]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Themes generated before the semantic palette may only define ANSI names.
|
||||||
|
[[ ${THEME_COLORS[background]} ]] || THEME_COLORS[background]="${THEME_COLORS[color0]}"
|
||||||
|
[[ ${THEME_COLORS[foreground]} ]] || THEME_COLORS[foreground]="${THEME_COLORS[color7]}"
|
||||||
|
[[ ${THEME_COLORS[background]} ]] && THEME_COLORS[color0]="${THEME_COLORS[background]}"
|
||||||
|
[[ ${THEME_COLORS[foreground]} ]] && THEME_COLORS[color7]="${THEME_COLORS[foreground]}"
|
||||||
|
|
||||||
|
# Legacy compatibility: map ANSI color0..color15 to semantic names.
|
||||||
|
declare -A legacy_alias=(
|
||||||
|
[red]=color1
|
||||||
|
[green]=color2
|
||||||
|
[yellow]=color3
|
||||||
|
[blue]=color4
|
||||||
|
[magenta]=color5
|
||||||
|
[cyan]=color6
|
||||||
|
[bright_red]=color9
|
||||||
|
[bright_green]=color10
|
||||||
|
[bright_yellow]=color11
|
||||||
|
[bright_blue]=color12
|
||||||
|
[bright_magenta]=color13
|
||||||
|
[bright_cyan]=color14
|
||||||
|
)
|
||||||
|
for key in "${!legacy_alias[@]}"; do
|
||||||
|
alias_theme_color "$key" "${legacy_alias[$key]}"
|
||||||
|
done
|
||||||
|
alias_theme_color magenta purple
|
||||||
|
alias_theme_color bright_magenta bright_purple
|
||||||
|
|
||||||
|
[[ ${THEME_COLORS[light_foreground]} ]] || THEME_COLORS[light_foreground]="${THEME_COLORS[color7]:-${THEME_COLORS[foreground]}}"
|
||||||
|
[[ ${THEME_COLORS[bright_foreground]} ]] || THEME_COLORS[bright_foreground]="${THEME_COLORS[color15]:-${THEME_COLORS[foreground]}}"
|
||||||
|
THEME_COLORS[cursor]="${THEME_COLORS[bright_foreground]}"
|
||||||
|
[[ ${THEME_COLORS[lighter_background]} ]] || THEME_COLORS[lighter_background]="${THEME_COLORS[color0]:-${THEME_COLORS[background]}}"
|
||||||
|
[[ ${THEME_COLORS[dark_foreground]} ]] || THEME_COLORS[dark_foreground]="${THEME_COLORS[color8]:-${THEME_COLORS[foreground]}}"
|
||||||
|
[[ ${THEME_COLORS[muted]} ]] || THEME_COLORS[muted]="${THEME_COLORS[color8]:-${THEME_COLORS[dark_foreground]}}"
|
||||||
|
[[ ${THEME_COLORS[selection]} ]] || THEME_COLORS[selection]="${THEME_COLORS[selection_background]:-${THEME_COLORS[color8]:-${THEME_COLORS[color0]:-${THEME_COLORS[background]}}}}"
|
||||||
|
[[ ${THEME_COLORS[selection_background]} ]] || THEME_COLORS[selection_background]="${THEME_COLORS[selection]}"
|
||||||
|
[[ ${THEME_COLORS[selection_foreground]} ]] || THEME_COLORS[selection_foreground]="${THEME_COLORS[bright_foreground]}"
|
||||||
|
[[ ${THEME_COLORS[orange]} ]] || THEME_COLORS[orange]="${THEME_COLORS[yellow]}"
|
||||||
|
[[ ${THEME_COLORS[brown]} ]] || THEME_COLORS[brown]=$(mix_color "${THEME_COLORS[orange]}" "#000000" 50%)
|
||||||
|
|
||||||
|
# Auto-derive shades from base accents when not defined and not aliased from colorN
|
||||||
|
[[ ${THEME_COLORS[dark_background]} ]] || THEME_COLORS[dark_background]=$(mix_color "${THEME_COLORS[background]}" "#000000" 25%)
|
||||||
|
[[ ${THEME_COLORS[darker_background]} ]] || THEME_COLORS[darker_background]=$(mix_color "${THEME_COLORS[background]}" "#000000" 50%)
|
||||||
|
[[ ${THEME_COLORS[bright_red]} ]] || THEME_COLORS[bright_red]=$(mix_color "${THEME_COLORS[red]}" "#ffffff" 20%)
|
||||||
|
[[ ${THEME_COLORS[bright_yellow]} ]] || THEME_COLORS[bright_yellow]=$(mix_color "${THEME_COLORS[yellow]}" "#ffffff" 20%)
|
||||||
|
[[ ${THEME_COLORS[bright_green]} ]] || THEME_COLORS[bright_green]=$(mix_color "${THEME_COLORS[green]}" "#ffffff" 20%)
|
||||||
|
[[ ${THEME_COLORS[bright_cyan]} ]] || THEME_COLORS[bright_cyan]=$(mix_color "${THEME_COLORS[cyan]}" "#ffffff" 20%)
|
||||||
|
[[ ${THEME_COLORS[bright_blue]} ]] || THEME_COLORS[bright_blue]=$(mix_color "${THEME_COLORS[blue]}" "#ffffff" 20%)
|
||||||
|
[[ ${THEME_COLORS[bright_magenta]} ]] || THEME_COLORS[bright_magenta]=$(mix_color "${THEME_COLORS[magenta]}" "#ffffff" 20%)
|
||||||
|
alias_theme_color purple magenta
|
||||||
|
alias_theme_color bright_purple bright_magenta
|
||||||
|
|
||||||
|
# Keep semantic themes compatible with consumers that still reference the
|
||||||
|
# legacy ANSI names directly.
|
||||||
|
declare -A ansi_alias=(
|
||||||
|
[color0]=background
|
||||||
|
[color1]=red
|
||||||
|
[color2]=green
|
||||||
|
[color3]=yellow
|
||||||
|
[color4]=blue
|
||||||
|
[color5]=magenta
|
||||||
|
[color6]=cyan
|
||||||
|
[color7]=foreground
|
||||||
|
[color8]=muted
|
||||||
|
[color9]=bright_red
|
||||||
|
[color10]=bright_green
|
||||||
|
[color11]=bright_yellow
|
||||||
|
[color12]=bright_blue
|
||||||
|
[color13]=bright_magenta
|
||||||
|
[color14]=bright_cyan
|
||||||
|
[color15]=bright_foreground
|
||||||
|
)
|
||||||
|
for key in "${!ansi_alias[@]}"; do
|
||||||
|
alias_theme_color "$key" "${ansi_alias[$key]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Keep canonical themes compatible with old user templates and consumers
|
||||||
|
# that still query the short palette names directly.
|
||||||
|
for key in "${!legacy_palette_alias[@]}"; do
|
||||||
|
if [[ ${THEME_COLORS[$key]} ]]; then
|
||||||
|
THEME_COLORS["${legacy_palette_alias[$key]}"]="${THEME_COLORS[$key]}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
resolve_theme_mode
|
||||||
|
THEME_COLORS[theme_type]="${THEME_COLORS[mode]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_colors_file
|
||||||
|
|
||||||
|
if [[ $OUTPUT == "raw" ]]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
resolve_theme_colors
|
||||||
|
|
||||||
|
if [[ $OUTPUT == "all" ]]; then
|
||||||
|
while IFS= read -r key; do
|
||||||
|
printf '%s\t%s\n' "$key" "${THEME_COLORS[$key]}"
|
||||||
|
done < <(printf '%s\n' "${!THEME_COLORS[@]}" | LC_ALL=C sort)
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
value="${THEME_COLORS[$QUERY_KEY]:-}"
|
||||||
|
if [[ -z $value && -n $QUERY_FALLBACK ]]; then
|
||||||
|
value="${THEME_COLORS[$QUERY_FALLBACK]:-$QUERY_FALLBACK}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ -n $value ]] || exit 1
|
||||||
|
printf '%s\n' "$value"
|
||||||
@@ -7,7 +7,8 @@ TEMPLATES_DIR="$DOTFILES_DIR/default/themed"
|
|||||||
USER_TEMPLATES_DIR="$HOME/.config/omarchy/themed"
|
USER_TEMPLATES_DIR="$HOME/.config/omarchy/themed"
|
||||||
NEXT_THEME_DIR="$HOME/.local/state/omarchy/current/next-theme"
|
NEXT_THEME_DIR="$HOME/.local/state/omarchy/current/next-theme"
|
||||||
COLORS_FILE="$NEXT_THEME_DIR/colors.toml"
|
COLORS_FILE="$NEXT_THEME_DIR/colors.toml"
|
||||||
THEME_MODE="$NEXT_THEME_DIR/light.mode"
|
|
||||||
|
declare -A THEME_COLORS
|
||||||
|
|
||||||
# Convert hex color to decimal RGB (e.g., "#1e1e2e" -> "30,30,46")
|
# Convert hex color to decimal RGB (e.g., "#1e1e2e" -> "30,30,46")
|
||||||
hex_to_rgb() {
|
hex_to_rgb() {
|
||||||
@@ -15,35 +16,379 @@ hex_to_rgb() {
|
|||||||
printf "%d,%d,%d" "0x${hex:0:2}" "0x${hex:2:2}" "0x${hex:4:2}"
|
printf "%d,%d,%d" "0x${hex:0:2}" "0x${hex:2:2}" "0x${hex:4:2}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Mix two hex colors. Amount may be a fraction (0.30) or percentage (30%).
|
||||||
|
mix_color() {
|
||||||
|
local start="${1#\#}"
|
||||||
|
local end="${2#\#}"
|
||||||
|
local amount="$3"
|
||||||
|
|
||||||
|
awk -v start="$start" -v end="$end" -v amount="$amount" '
|
||||||
|
function hex_value(char) {
|
||||||
|
return index("0123456789abcdef", tolower(char)) - 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function hex_pair_to_int(hex, idx) {
|
||||||
|
return hex_value(substr(hex, idx, 1)) * 16 + hex_value(substr(hex, idx + 1, 1))
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
if (amount ~ /%$/) {
|
||||||
|
sub(/%$/, "", amount)
|
||||||
|
amount = amount / 100
|
||||||
|
} else {
|
||||||
|
amount += 0
|
||||||
|
if (amount > 1) amount = amount / 100
|
||||||
|
}
|
||||||
|
|
||||||
|
if (amount < 0) amount = 0
|
||||||
|
if (amount > 1) amount = 1
|
||||||
|
|
||||||
|
start_r = hex_pair_to_int(start, 1)
|
||||||
|
start_g = hex_pair_to_int(start, 3)
|
||||||
|
start_b = hex_pair_to_int(start, 5)
|
||||||
|
end_r = hex_pair_to_int(end, 1)
|
||||||
|
end_g = hex_pair_to_int(end, 3)
|
||||||
|
end_b = hex_pair_to_int(end, 5)
|
||||||
|
|
||||||
|
red = int(start_r * (1 - amount) + end_r * amount + 0.5)
|
||||||
|
green = int(start_g * (1 - amount) + end_g * amount + 0.5)
|
||||||
|
blue = int(start_b * (1 - amount) + end_b * amount + 0.5)
|
||||||
|
|
||||||
|
printf "#%02x%02x%02x\n", red, green, blue
|
||||||
|
}
|
||||||
|
'
|
||||||
|
}
|
||||||
|
|
||||||
|
trim() {
|
||||||
|
local value="$1"
|
||||||
|
|
||||||
|
value="${value#"${value%%[![:space:]]*}"}"
|
||||||
|
value="${value%"${value##*[![:space:]]}"}"
|
||||||
|
printf "%s" "$value"
|
||||||
|
}
|
||||||
|
|
||||||
|
resolve_theme_ref() {
|
||||||
|
local ref="$1"
|
||||||
|
local fallback="${2:-}"
|
||||||
|
|
||||||
|
if [[ -n ${THEME_COLORS[$ref]+_} ]]; then
|
||||||
|
printf "%s" "${THEME_COLORS[$ref]}"
|
||||||
|
elif [[ -n $fallback && -n ${THEME_COLORS[$fallback]+_} ]]; then
|
||||||
|
printf "%s" "${THEME_COLORS[$fallback]}"
|
||||||
|
elif [[ -n $fallback ]]; then
|
||||||
|
printf "%s" "$fallback"
|
||||||
|
else
|
||||||
|
printf "%s" "$ref"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
resolve_gradient_color() {
|
||||||
|
local color
|
||||||
|
|
||||||
|
color=$(trim "$1")
|
||||||
|
if [[ -n ${THEME_COLORS[$color]+_} ]]; then
|
||||||
|
color="${THEME_COLORS[$color]}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "%s" "$color"
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_gradient() {
|
||||||
|
local spec="$1"
|
||||||
|
local part color
|
||||||
|
local -a parts
|
||||||
|
|
||||||
|
GRADIENT_COLORS=()
|
||||||
|
GRADIENT_ANGLE=""
|
||||||
|
|
||||||
|
read -ra parts <<<"$spec"
|
||||||
|
for part in "${parts[@]}"; do
|
||||||
|
[[ -n $part ]] || continue
|
||||||
|
|
||||||
|
if [[ $part =~ ^-?[0-9]+([.][0-9]+)?deg$ ]]; then
|
||||||
|
GRADIENT_ANGLE="${part%deg}"
|
||||||
|
else
|
||||||
|
color=$(resolve_gradient_color "$part")
|
||||||
|
GRADIENT_COLORS+=("$color")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
color_to_shell_hex() {
|
||||||
|
local color r g b
|
||||||
|
|
||||||
|
color=$(resolve_gradient_color "$1")
|
||||||
|
|
||||||
|
if [[ $color =~ ^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$ ]]; then
|
||||||
|
printf "#%s" "${color:1:6}"
|
||||||
|
elif [[ $color =~ ^[Rr][Gg][Bb][Aa]?\(([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?\)$ ]]; then
|
||||||
|
printf "#%s" "${BASH_REMATCH[1]}"
|
||||||
|
elif [[ $color =~ ^[Rr][Gg][Bb][Aa]?\(([0-9]+),([0-9]+),([0-9]+)(,[0-9.]+)?\)$ ]]; then
|
||||||
|
r=${BASH_REMATCH[1]}
|
||||||
|
g=${BASH_REMATCH[2]}
|
||||||
|
b=${BASH_REMATCH[3]}
|
||||||
|
(( r > 255 )) && r=255
|
||||||
|
(( g > 255 )) && g=255
|
||||||
|
(( b > 255 )) && b=255
|
||||||
|
printf "#%02x%02x%02x" "$r" "$g" "$b"
|
||||||
|
elif [[ $color =~ ^0x[0-9A-Fa-f]{8}$ ]]; then
|
||||||
|
printf "#%s" "${color:4:6}"
|
||||||
|
else
|
||||||
|
printf "%s" "$color"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
hypr_gradient_value() {
|
||||||
|
local spec color index
|
||||||
|
|
||||||
|
spec=$(resolve_theme_ref "$1" "${2:-}")
|
||||||
|
parse_gradient "$spec"
|
||||||
|
|
||||||
|
if (( ${#GRADIENT_COLORS[@]} == 0 )); then
|
||||||
|
printf '"%s"' "$spec"
|
||||||
|
elif (( ${#GRADIENT_COLORS[@]} == 1 )); then
|
||||||
|
printf '"%s"' "${GRADIENT_COLORS[0]}"
|
||||||
|
else
|
||||||
|
printf '{ colors = {'
|
||||||
|
for index in "${!GRADIENT_COLORS[@]}"; do
|
||||||
|
(( index > 0 )) && printf ','
|
||||||
|
printf ' "%s"' "${GRADIENT_COLORS[$index]}"
|
||||||
|
done
|
||||||
|
printf ' }'
|
||||||
|
[[ -n $GRADIENT_ANGLE ]] && printf ', angle = %s' "$GRADIENT_ANGLE"
|
||||||
|
printf ' }'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
gradient_start_value() {
|
||||||
|
local spec
|
||||||
|
|
||||||
|
spec=$(resolve_theme_ref "$1" "${2:-}")
|
||||||
|
parse_gradient "$spec"
|
||||||
|
|
||||||
|
if (( ${#GRADIENT_COLORS[@]} == 0 )); then
|
||||||
|
color_to_shell_hex "$spec"
|
||||||
|
else
|
||||||
|
color_to_shell_hex "${GRADIENT_COLORS[0]}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
shell_gradient_value() {
|
||||||
|
local spec index
|
||||||
|
|
||||||
|
spec=$(resolve_theme_ref "$1" "${2:-}")
|
||||||
|
parse_gradient "$spec"
|
||||||
|
|
||||||
|
if (( ${#GRADIENT_COLORS[@]} == 0 )); then
|
||||||
|
printf "%s" "$spec"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
for index in "${!GRADIENT_COLORS[@]}"; do
|
||||||
|
(( index > 0 )) && printf " "
|
||||||
|
printf "%s" "${GRADIENT_COLORS[$index]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
[[ -n $GRADIENT_ANGLE ]] && printf " %sdeg" "$GRADIENT_ANGLE"
|
||||||
|
}
|
||||||
|
|
||||||
|
add_template_value() {
|
||||||
|
local key="$1"
|
||||||
|
local value="$2"
|
||||||
|
local rgb
|
||||||
|
|
||||||
|
printf 's|{{ %s }}|%s|g\n' "$key" "$value" >>"$sed_script"
|
||||||
|
printf 's|{{ %s_strip }}|%s|g\n' "$key" "${value#\#}" >>"$sed_script"
|
||||||
|
|
||||||
|
if [[ $value =~ ^#[0-9A-Fa-f]{6}$ ]]; then
|
||||||
|
rgb=$(hex_to_rgb "$value")
|
||||||
|
printf 's|{{ %s_rgb }}|%s|g\n' "$key" "$rgb" >>"$sed_script"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
add_mix_value() {
|
||||||
|
local token="$1"
|
||||||
|
local content fn start_key end_key amount start end value
|
||||||
|
|
||||||
|
content="${token#\{\{}"
|
||||||
|
content="${content%\}\}}"
|
||||||
|
read -r fn start_key end_key amount <<<"$content"
|
||||||
|
|
||||||
|
start="${THEME_COLORS[$start_key]:-}"
|
||||||
|
end="${THEME_COLORS[$end_key]:-}"
|
||||||
|
|
||||||
|
[[ $start =~ ^#[0-9A-Fa-f]{6}$ && $end =~ ^#[0-9A-Fa-f]{6}$ ]] || return
|
||||||
|
|
||||||
|
value=$(mix_color "$start" "$end" "$amount")
|
||||||
|
|
||||||
|
case "$fn" in
|
||||||
|
mix)
|
||||||
|
;;
|
||||||
|
mix_strip)
|
||||||
|
value="${value#\#}"
|
||||||
|
;;
|
||||||
|
mix_rgb)
|
||||||
|
value=$(hex_to_rgb "$value")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
printf 's|%s|%s|g\n' "$token" "$value" >>"$sed_script"
|
||||||
|
}
|
||||||
|
|
||||||
|
add_mix_values() {
|
||||||
|
local tpl token
|
||||||
|
local -A seen=()
|
||||||
|
|
||||||
|
for tpl in "${template_files[@]}"; do
|
||||||
|
while IFS= read -r token; do
|
||||||
|
[[ -n ${seen[$token]:-} ]] && continue
|
||||||
|
seen[$token]=1
|
||||||
|
add_mix_value "$token"
|
||||||
|
done < <(grep -hEo '\{\{[[:space:]]*mix(_strip|_rgb)?[[:space:]]+[A-Za-z0-9_]+[[:space:]]+[A-Za-z0-9_]+[[:space:]]+[0-9]+([.][0-9]+)?%?[[:space:]]*\}\}' "$tpl" 2>/dev/null || true)
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
add_gradient_function_value() {
|
||||||
|
local token="$1"
|
||||||
|
local content fn key fallback value
|
||||||
|
|
||||||
|
content="${token#\{\{}"
|
||||||
|
content="${content%\}\}}"
|
||||||
|
read -r fn key fallback <<<"$content"
|
||||||
|
|
||||||
|
case "$fn" in
|
||||||
|
hypr_gradient)
|
||||||
|
value=$(hypr_gradient_value "$key" "$fallback")
|
||||||
|
;;
|
||||||
|
gradient_start)
|
||||||
|
value=$(gradient_start_value "$key" "$fallback")
|
||||||
|
;;
|
||||||
|
shell_gradient)
|
||||||
|
value=$(shell_gradient_value "$key" "$fallback")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
printf 's|%s|%s|g\n' "$token" "$value" >>"$sed_script"
|
||||||
|
}
|
||||||
|
|
||||||
|
add_gradient_function_values() {
|
||||||
|
local tpl token
|
||||||
|
local -A seen=()
|
||||||
|
|
||||||
|
for tpl in "${template_files[@]}"; do
|
||||||
|
while IFS= read -r token; do
|
||||||
|
[[ -n ${seen[$token]:-} ]] && continue
|
||||||
|
seen[$token]=1
|
||||||
|
add_gradient_function_value "$token"
|
||||||
|
done < <(grep -hEo '\{\{[[:space:]]*(hypr_gradient|gradient_start|shell_gradient)[[:space:]]+[^}]+[[:space:]]*\}\}' "$tpl" 2>/dev/null || true)
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
strip_shell_section_header() {
|
||||||
|
local section="$1"
|
||||||
|
local file="$2"
|
||||||
|
|
||||||
|
awk -v section="$section" '
|
||||||
|
BEGIN { skipping_header = 0 }
|
||||||
|
/^[[:space:]]*\[[^]]+\][[:space:]]*($|#)/ {
|
||||||
|
if ($0 ~ "^[[:space:]]*\\[" section "\\][[:space:]]*($|#)") {
|
||||||
|
skipping_header = 1
|
||||||
|
next
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{ print }
|
||||||
|
' "$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
apply_shell_section_override() {
|
||||||
|
local override="$1"
|
||||||
|
local section tmp body
|
||||||
|
|
||||||
|
[[ -f $NEXT_THEME_DIR/shell.toml ]] || return
|
||||||
|
[[ -f $override ]] || return
|
||||||
|
|
||||||
|
section=$(basename "$override")
|
||||||
|
section="${section#shell.}"
|
||||||
|
section="${section%.toml}"
|
||||||
|
[[ $section =~ ^[A-Za-z0-9_-]+$ ]] || return
|
||||||
|
|
||||||
|
tmp=$(mktemp)
|
||||||
|
body=$(mktemp)
|
||||||
|
|
||||||
|
strip_shell_section_header "$section" "$override" >"$body"
|
||||||
|
|
||||||
|
awk -v section="$section" -v body="$body" '
|
||||||
|
function emit_override() {
|
||||||
|
if (emitted) return
|
||||||
|
print "[" section "]"
|
||||||
|
while ((getline line < body) > 0) print line
|
||||||
|
close(body)
|
||||||
|
emitted = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
/^[[:space:]]*\[[^]]+\][[:space:]]*($|#)/ {
|
||||||
|
if (in_section) {
|
||||||
|
emit_override()
|
||||||
|
in_section = 0
|
||||||
|
}
|
||||||
|
if ($0 ~ "^[[:space:]]*\\[" section "\\][[:space:]]*($|#)") {
|
||||||
|
in_section = 1
|
||||||
|
next
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
!in_section { print }
|
||||||
|
|
||||||
|
END {
|
||||||
|
if (in_section || !emitted) {
|
||||||
|
if (NR > 0) print ""
|
||||||
|
emit_override()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' "$NEXT_THEME_DIR/shell.toml" >"$tmp"
|
||||||
|
|
||||||
|
mv "$tmp" "$NEXT_THEME_DIR/shell.toml"
|
||||||
|
rm "$body"
|
||||||
|
}
|
||||||
|
|
||||||
|
apply_shell_section_overrides() {
|
||||||
|
local override
|
||||||
|
|
||||||
|
shopt -s nullglob
|
||||||
|
for override in "$NEXT_THEME_DIR"/shell.*.toml; do
|
||||||
|
[[ $(basename "$override") != "shell.toml" ]] || continue
|
||||||
|
apply_shell_section_override "$override"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# Only generate dynamic templates for themes with a colors.toml definition
|
# Only generate dynamic templates for themes with a colors.toml definition
|
||||||
if [[ -f $COLORS_FILE ]]; then
|
if [[ -f $COLORS_FILE ]]; then
|
||||||
sed_script=$(mktemp)
|
sed_script=$(mktemp)
|
||||||
|
|
||||||
key="theme_mode";
|
|
||||||
if [[ -f $THEME_MODE ]]; then
|
|
||||||
printf 's|{{ %s }}|%s|g\n' "$key" "light" # {{ key }} -> value
|
|
||||||
else
|
|
||||||
printf 's|{{ %s }}|%s|g\n' "$key" "dark" # {{ key }} -> value
|
|
||||||
fi >"$sed_script"
|
|
||||||
|
|
||||||
while IFS='=' read -r key value; do
|
|
||||||
key="${key//[\"\' ]/}" # strip quotes and spaces from key
|
|
||||||
[[ $key && $key != \#* ]] || continue # skip empty lines and comments
|
|
||||||
value="${value#*[\"\']}"
|
|
||||||
value="${value%%[\"\']*}" # extract value between quotes (ignores inline comments)
|
|
||||||
|
|
||||||
printf 's|{{ %s }}|%s|g\n' "$key" "$value" # {{ key }} -> value
|
|
||||||
printf 's|{{ %s_strip }}|%s|g\n' "$key" "${value#\#}" # {{ key_strip }} -> value without leading #
|
|
||||||
if [[ $value =~ ^# ]]; then
|
|
||||||
rgb=$(hex_to_rgb "$value")
|
|
||||||
echo "s|{{ ${key}_rgb }}|${rgb}|g"
|
|
||||||
fi
|
|
||||||
done <"$COLORS_FILE" >>"$sed_script"
|
|
||||||
|
|
||||||
shopt -s nullglob
|
shopt -s nullglob
|
||||||
|
template_files=("$USER_TEMPLATES_DIR"/*.tpl "$TEMPLATES_DIR"/*.tpl)
|
||||||
|
|
||||||
|
# Parsing and alias/fallback resolution (legacy colorN names, derived
|
||||||
|
# shades, mode/theme_type) is shared with every other colors.toml consumer.
|
||||||
|
while IFS=$'\t' read -r key value; do
|
||||||
|
THEME_COLORS[$key]="$value"
|
||||||
|
done < <(omarchy-theme-color --file "$COLORS_FILE" --all)
|
||||||
|
|
||||||
|
for key in "${!THEME_COLORS[@]}"; do
|
||||||
|
add_template_value "$key" "${THEME_COLORS[$key]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
add_mix_values
|
||||||
|
add_gradient_function_values
|
||||||
|
|
||||||
# Process user templates first, then built-in templates (user overrides built-in)
|
# Process user templates first, then built-in templates (user overrides built-in)
|
||||||
for tpl in "$USER_TEMPLATES_DIR"/*.tpl "$TEMPLATES_DIR"/*.tpl; do
|
for tpl in "${template_files[@]}"; do
|
||||||
filename=$(basename "$tpl" .tpl)
|
filename=$(basename "$tpl" .tpl)
|
||||||
output_path="$NEXT_THEME_DIR/$filename"
|
output_path="$NEXT_THEME_DIR/$filename"
|
||||||
|
|
||||||
@@ -55,3 +400,5 @@ if [[ -f $COLORS_FILE ]]; then
|
|||||||
|
|
||||||
rm "$sed_script"
|
rm "$sed_script"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
apply_shell_section_overrides
|
||||||
|
|||||||
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 714 B |
@@ -1,23 +1,31 @@
|
|||||||
accent = "#1e66f5"
|
mode = "light"
|
||||||
cursor = "#dc8a78"
|
|
||||||
foreground = "#4c4f69"
|
|
||||||
background = "#eff1f5"
|
|
||||||
selection_foreground = "#eff1f5"
|
|
||||||
selection_background = "#dc8a78"
|
|
||||||
|
|
||||||
color0 = "#bcc0cc"
|
accent = "#1e66f5"
|
||||||
color1 = "#d20f39"
|
selection = "#ccd0da"
|
||||||
color2 = "#40a02b"
|
muted = "#acb0be"
|
||||||
color3 = "#df8e1d"
|
|
||||||
color4 = "#1e66f5"
|
background = "#eff1f5"
|
||||||
color5 = "#ea76cb"
|
dark_background = "#e3e4e8"
|
||||||
color6 = "#179299"
|
darker_background = "#d7d8dc"
|
||||||
color7 = "#5c5f77"
|
lighter_background = "#dce0e8"
|
||||||
color8 = "#acb0be"
|
|
||||||
color9 = "#d20f39"
|
foreground = "#4c4f69"
|
||||||
color10 = "#40a02b"
|
dark_foreground = "#9ca0b0"
|
||||||
color11 = "#df8e1d"
|
light_foreground = "#5c5f77"
|
||||||
color12 = "#1e66f5"
|
bright_foreground = "#4c4f69"
|
||||||
color13 = "#ea76cb"
|
|
||||||
color14 = "#179299"
|
red = "#d20f39"
|
||||||
color15 = "#6c6f85"
|
yellow = "#df8e1d"
|
||||||
|
orange = "#d84e2b"
|
||||||
|
green = "#40a02b"
|
||||||
|
cyan = "#179299"
|
||||||
|
blue = "#1e66f5"
|
||||||
|
magenta = "#ea76cb"
|
||||||
|
brown = "#6c2715"
|
||||||
|
|
||||||
|
bright_red = "#d20f39"
|
||||||
|
bright_yellow = "#df8e1d"
|
||||||
|
bright_green = "#40a02b"
|
||||||
|
bright_cyan = "#179299"
|
||||||
|
bright_blue = "#1e66f5"
|
||||||
|
bright_magenta = "#ea76cb"
|
||||||
|
|||||||
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 624 KiB |
|
After Width: | Height: | Size: 212 KiB |
|
After Width: | Height: | Size: 716 B |
@@ -1,23 +1,31 @@
|
|||||||
accent = "#89b4fa"
|
mode = "dark"
|
||||||
cursor = "#f5e0dc"
|
|
||||||
foreground = "#cdd6f4"
|
|
||||||
background = "#1e1e2e"
|
|
||||||
selection_foreground = "#1e1e2e"
|
|
||||||
selection_background = "#f5e0dc"
|
|
||||||
|
|
||||||
color0 = "#45475a"
|
accent = "#89b4fa"
|
||||||
color1 = "#f38ba8"
|
selection = "#45475a"
|
||||||
color2 = "#a6e3a1"
|
muted = "#585b70"
|
||||||
color3 = "#f9e2af"
|
|
||||||
color4 = "#89b4fa"
|
background = "#1e1e2e"
|
||||||
color5 = "#f5c2e7"
|
dark_background = "#161622"
|
||||||
color6 = "#94e2d5"
|
darker_background = "#101019"
|
||||||
color7 = "#bac2de"
|
lighter_background = "#313244"
|
||||||
color8 = "#585b70"
|
|
||||||
color9 = "#f38ba8"
|
foreground = "#cdd6f4"
|
||||||
color10 = "#a6e3a1"
|
dark_foreground = "#6c7086"
|
||||||
color11 = "#f9e2af"
|
light_foreground = "#bac2de"
|
||||||
color12 = "#89b4fa"
|
bright_foreground = "#cdd6f4"
|
||||||
color13 = "#f5c2e7"
|
|
||||||
color14 = "#94e2d5"
|
red = "#f38ba8"
|
||||||
color15 = "#a6adc8"
|
yellow = "#f9e2af"
|
||||||
|
orange = "#f6b6ab"
|
||||||
|
green = "#a6e3a1"
|
||||||
|
cyan = "#94e2d5"
|
||||||
|
blue = "#89b4fa"
|
||||||
|
magenta = "#f5c2e7"
|
||||||
|
brown = "#7b5b55"
|
||||||
|
|
||||||
|
bright_red = "#f38ba8"
|
||||||
|
bright_yellow = "#f9e2af"
|
||||||
|
bright_green = "#a6e3a1"
|
||||||
|
bright_cyan = "#94e2d5"
|
||||||
|
bright_blue = "#89b4fa"
|
||||||
|
bright_magenta = "#f5c2e7"
|
||||||
|
|||||||
|
After Width: | Height: | Size: 320 KiB |
|
After Width: | Height: | Size: 844 KiB |
|
After Width: | Height: | Size: 716 B |
@@ -1,23 +1,31 @@
|
|||||||
accent = "#7d82d9"
|
mode = "dark"
|
||||||
cursor = "#ffcead"
|
|
||||||
foreground = "#ffcead"
|
|
||||||
background = "#060B1E"
|
|
||||||
selection_foreground = "#060B1E"
|
|
||||||
selection_background = "#ffcead"
|
|
||||||
|
|
||||||
color0 = "#3C486D"
|
accent = "#7d82d9"
|
||||||
color1 = "#ED5B5A"
|
selection = "#252e56"
|
||||||
color2 = "#92a593"
|
muted = "#6d7db6"
|
||||||
color3 = "#E9BB4F"
|
|
||||||
color4 = "#7d82d9"
|
background = "#060B1E"
|
||||||
color5 = "#c89dc1"
|
dark_background = "#040816"
|
||||||
color6 = "#a3bfd1"
|
darker_background = "#030610"
|
||||||
color7 = "#F99957"
|
lighter_background = "#131a3a"
|
||||||
color8 = "#6d7db6"
|
|
||||||
color9 = "#faaaa9"
|
foreground = "#ffcead"
|
||||||
color10 = "#c4cfc4"
|
dark_foreground = "#6d7db6"
|
||||||
color11 = "#f7dc9c"
|
light_foreground = "#c9b8a6"
|
||||||
color12 = "#c2c4f0"
|
bright_foreground = "#ffcead"
|
||||||
color13 = "#ead7e7"
|
|
||||||
color14 = "#dfeaf0"
|
red = "#ED5B5A"
|
||||||
color15 = "#ffcead"
|
yellow = "#E9BB4F"
|
||||||
|
orange = "#eb8b54"
|
||||||
|
green = "#92a593"
|
||||||
|
cyan = "#a3bfd1"
|
||||||
|
blue = "#7d82d9"
|
||||||
|
magenta = "#c89dc1"
|
||||||
|
brown = "#75452a"
|
||||||
|
|
||||||
|
bright_red = "#faaaa9"
|
||||||
|
bright_yellow = "#f7dc9c"
|
||||||
|
bright_green = "#c4cfc4"
|
||||||
|
bright_cyan = "#dfeaf0"
|
||||||
|
bright_blue = "#c2c4f0"
|
||||||
|
bright_magenta = "#ead7e7"
|
||||||
|
|||||||
|
After Width: | Height: | Size: 216 KiB |
|
After Width: | Height: | Size: 716 B |
@@ -1,23 +1,31 @@
|
|||||||
accent = "#7fbbb3"
|
mode = "dark"
|
||||||
cursor = "#d3c6aa"
|
|
||||||
foreground = "#d3c6aa"
|
|
||||||
background = "#2d353b"
|
|
||||||
selection_foreground = "#2d353b"
|
|
||||||
selection_background = "#d3c6aa"
|
|
||||||
|
|
||||||
color0 = "#475258"
|
accent = "#7fbbb3"
|
||||||
color1 = "#e67e80"
|
selection = "#3d484d"
|
||||||
color2 = "#a7c080"
|
muted = "#475258"
|
||||||
color3 = "#dbbc7f"
|
|
||||||
color4 = "#7fbbb3"
|
background = "#2d353b"
|
||||||
color5 = "#d699b6"
|
dark_background = "#21272c"
|
||||||
color6 = "#83c092"
|
darker_background = "#181d20"
|
||||||
color7 = "#d3c6aa"
|
lighter_background = "#343f44"
|
||||||
color8 = "#475258"
|
|
||||||
color9 = "#e67e80"
|
foreground = "#d3c6aa"
|
||||||
color10 = "#a7c080"
|
dark_foreground = "#4f585e"
|
||||||
color11 = "#dbbc7f"
|
light_foreground = "#9da9a0"
|
||||||
color12 = "#7fbbb3"
|
bright_foreground = "#d3c6aa"
|
||||||
color13 = "#d699b6"
|
|
||||||
color14 = "#83c092"
|
red = "#e67e80"
|
||||||
color15 = "#d3c6aa"
|
yellow = "#dbbc7f"
|
||||||
|
orange = "#e09d7f"
|
||||||
|
green = "#a7c080"
|
||||||
|
cyan = "#83c092"
|
||||||
|
blue = "#7fbbb3"
|
||||||
|
magenta = "#d699b6"
|
||||||
|
brown = "#704e3f"
|
||||||
|
|
||||||
|
bright_red = "#e67e80"
|
||||||
|
bright_yellow = "#dbbc7f"
|
||||||
|
bright_green = "#a7c080"
|
||||||
|
bright_cyan = "#83c092"
|
||||||
|
bright_blue = "#7fbbb3"
|
||||||
|
bright_magenta = "#d699b6"
|
||||||
|
|||||||
|
After Width: | Height: | Size: 95 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
@@ -1,23 +1,31 @@
|
|||||||
accent = "#205EA6"
|
mode = "light"
|
||||||
cursor = "#100F0F"
|
|
||||||
foreground = "#100F0F"
|
|
||||||
background = "#FFFCF0"
|
|
||||||
selection_foreground = "#100F0F"
|
|
||||||
selection_background = "#CECDC3"
|
|
||||||
|
|
||||||
color0 = "#DAD8CE"
|
accent = "#205EA6"
|
||||||
color1 = "#D14D41"
|
selection = "#CECDC3"
|
||||||
color2 = "#879A39"
|
muted = "#B7B5AC"
|
||||||
color3 = "#D0A215"
|
|
||||||
color4 = "#205EA6"
|
background = "#FFFCF0"
|
||||||
color5 = "#CE5D97"
|
dark_background = "#f2efe4"
|
||||||
color6 = "#3AA99F"
|
darker_background = "#e5e2d8"
|
||||||
color7 = "#B7B5AC"
|
lighter_background = "#E6E4D9"
|
||||||
color8 = "#100F0F"
|
|
||||||
color9 = "#D14D41"
|
foreground = "#100F0F"
|
||||||
color10 = "#879A39"
|
dark_foreground = "#878580"
|
||||||
color11 = "#D0A215"
|
light_foreground = "#403E3C"
|
||||||
color12 = "#4385BE"
|
bright_foreground = "#100F0F"
|
||||||
color13 = "#CE5D97"
|
|
||||||
color14 = "#3AA99F"
|
red = "#D14D41"
|
||||||
color15 = "#CECDC3"
|
yellow = "#D0A215"
|
||||||
|
orange = "#d0772b"
|
||||||
|
green = "#879A39"
|
||||||
|
cyan = "#3AA99F"
|
||||||
|
blue = "#205EA6"
|
||||||
|
magenta = "#CE5D97"
|
||||||
|
brown = "#683b15"
|
||||||
|
|
||||||
|
bright_red = "#D14D41"
|
||||||
|
bright_yellow = "#D0A215"
|
||||||
|
bright_green = "#879A39"
|
||||||
|
bright_cyan = "#3AA99F"
|
||||||
|
bright_blue = "#4385BE"
|
||||||
|
bright_magenta = "#CE5D97"
|
||||||
|
|||||||
|
After Width: | Height: | Size: 1014 KiB |
|
After Width: | Height: | Size: 716 B |
@@ -1,23 +1,31 @@
|
|||||||
accent = "#7daea3"
|
mode = "dark"
|
||||||
cursor = "#bdae93"
|
|
||||||
foreground = "#d4be98"
|
|
||||||
background = "#282828"
|
|
||||||
selection_foreground = "#ebdbb2"
|
|
||||||
selection_background = "#d65d0e"
|
|
||||||
|
|
||||||
color0 = "#3c3836"
|
accent = "#7daea3"
|
||||||
color1 = "#ea6962"
|
selection = "#504945"
|
||||||
color2 = "#a9b665"
|
muted = "#665c54"
|
||||||
color3 = "#d8a657"
|
|
||||||
color4 = "#7daea3"
|
background = "#282828"
|
||||||
color5 = "#d3869b"
|
dark_background = "#1e1e1e"
|
||||||
color6 = "#89b482"
|
darker_background = "#161616"
|
||||||
color7 = "#d4be98"
|
lighter_background = "#3c3836"
|
||||||
color8 = "#3c3836"
|
|
||||||
color9 = "#ea6962"
|
foreground = "#d4be98"
|
||||||
color10 = "#a9b665"
|
dark_foreground = "#7c6f64"
|
||||||
color11 = "#d8a657"
|
light_foreground = "#bdae93"
|
||||||
color12 = "#7daea3"
|
bright_foreground = "#d4be98"
|
||||||
color13 = "#d3869b"
|
|
||||||
color14 = "#89b482"
|
red = "#ea6962"
|
||||||
color15 = "#d4be98"
|
yellow = "#d8a657"
|
||||||
|
orange = "#e1875c"
|
||||||
|
green = "#a9b665"
|
||||||
|
cyan = "#89b482"
|
||||||
|
blue = "#7daea3"
|
||||||
|
magenta = "#d3869b"
|
||||||
|
brown = "#70432e"
|
||||||
|
|
||||||
|
bright_red = "#ea6962"
|
||||||
|
bright_yellow = "#d8a657"
|
||||||
|
bright_green = "#a9b665"
|
||||||
|
bright_cyan = "#89b482"
|
||||||
|
bright_blue = "#7daea3"
|
||||||
|
bright_magenta = "#d3869b"
|
||||||
|
|||||||
|
After Width: | Height: | Size: 669 KiB |
|
After Width: | Height: | Size: 716 B |
@@ -1,23 +1,33 @@
|
|||||||
accent = "#82FB9C"
|
mode = "dark"
|
||||||
cursor = "#ddf7ff"
|
|
||||||
foreground = "#ddf7ff"
|
|
||||||
background = "#0B0C16"
|
|
||||||
selection_foreground = "#0B0C16"
|
|
||||||
selection_background = "#ddf7ff"
|
|
||||||
|
|
||||||
color0 = "#3E4058"
|
accent = "#82FB9C"
|
||||||
color1 = "#50f872"
|
selection = "#1f253a"
|
||||||
color2 = "#4fe88f"
|
muted = "#2d3450"
|
||||||
color3 = "#50f7d4"
|
|
||||||
color4 = "#829dd4"
|
background = "#0B0C16"
|
||||||
color5 = "#86a7df"
|
dark_background = "#080910"
|
||||||
color6 = "#7cf8f7"
|
darker_background = "#06060c"
|
||||||
color7 = "#85E1FB"
|
lighter_background = "#151828"
|
||||||
color8 = "#6a6e95"
|
|
||||||
color9 = "#85ff9d"
|
foreground = "#ddf7ff"
|
||||||
color10 = "#9cf7c2"
|
dark_foreground = "#6a6e95"
|
||||||
color11 = "#a4ffec"
|
light_foreground = "#b5c5db"
|
||||||
color12 = "#c4d2ed"
|
bright_foreground = "#ddf7ff"
|
||||||
color13 = "#cddbf4"
|
|
||||||
color14 = "#d1fffe"
|
hyprland_active_border = "rgba(26a269ee) rgba(2ec27eee) 45deg"
|
||||||
color15 = "#ddf7ff"
|
|
||||||
|
red = "#50f872"
|
||||||
|
yellow = "#50f7d4"
|
||||||
|
orange = "#50f7a3"
|
||||||
|
green = "#4fe88f"
|
||||||
|
cyan = "#7cf8f7"
|
||||||
|
blue = "#829dd4"
|
||||||
|
magenta = "#86a7df"
|
||||||
|
brown = "#287b51"
|
||||||
|
|
||||||
|
bright_red = "#85ff9d"
|
||||||
|
bright_yellow = "#a4ffec"
|
||||||
|
bright_green = "#9cf7c2"
|
||||||
|
bright_cyan = "#d1fffe"
|
||||||
|
bright_blue = "#c4d2ed"
|
||||||
|
bright_magenta = "#cddbf4"
|
||||||
|
|||||||
|
After Width: | Height: | Size: 716 B |
@@ -1,23 +1,31 @@
|
|||||||
accent = "#7e9cd8"
|
mode = "dark"
|
||||||
cursor = "#c8c093"
|
|
||||||
foreground = "#dcd7ba"
|
|
||||||
background = "#1f1f28"
|
|
||||||
selection_foreground = "#c8c093"
|
|
||||||
selection_background = "#2d4f67"
|
|
||||||
|
|
||||||
color0 = "#090618"
|
accent = "#dcd7ba"
|
||||||
color1 = "#c34043"
|
selection = "#363646"
|
||||||
color2 = "#76946a"
|
muted = "#54546D"
|
||||||
color3 = "#c0a36e"
|
|
||||||
color4 = "#7e9cd8"
|
background = "#1f1f28"
|
||||||
color5 = "#957fb8"
|
dark_background = "#17171e"
|
||||||
color6 = "#6a9589"
|
darker_background = "#111116"
|
||||||
color7 = "#c8c093"
|
lighter_background = "#223249"
|
||||||
color8 = "#727169"
|
|
||||||
color9 = "#e82424"
|
foreground = "#dcd7ba"
|
||||||
color10 = "#98bb6c"
|
dark_foreground = "#727169"
|
||||||
color11 = "#e6c384"
|
light_foreground = "#c8c093"
|
||||||
color12 = "#7fb4ca"
|
bright_foreground = "#dcd7ba"
|
||||||
color13 = "#938aa9"
|
|
||||||
color14 = "#7aa89f"
|
red = "#c34043"
|
||||||
color15 = "#dcd7ba"
|
yellow = "#c0a36e"
|
||||||
|
orange = "#c17158"
|
||||||
|
green = "#76946a"
|
||||||
|
cyan = "#6a9589"
|
||||||
|
blue = "#7e9cd8"
|
||||||
|
magenta = "#957fb8"
|
||||||
|
brown = "#60382c"
|
||||||
|
|
||||||
|
bright_red = "#e82424"
|
||||||
|
bright_yellow = "#e6c384"
|
||||||
|
bright_green = "#98bb6c"
|
||||||
|
bright_cyan = "#7aa89f"
|
||||||
|
bright_blue = "#7fb4ca"
|
||||||
|
bright_magenta = "#938aa9"
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
local active_border_color = "rgb(dcd7ba)"
|
||||||
|
|
||||||
|
hl.config({
|
||||||
|
general = {
|
||||||
|
col = {
|
||||||
|
active_border = active_border_color,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
group = {
|
||||||
|
col = {
|
||||||
|
border_active = active_border_color,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Kanagawa backdrop is too strong for default opacity.
|
||||||
|
o.window({ tag = "terminal" }, { opacity = "0.99 0.985" })
|
||||||
|
After Width: | Height: | Size: 197 KiB |
|
After Width: | Height: | Size: 326 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 1.2 MiB |
@@ -0,0 +1,93 @@
|
|||||||
|
# Main background
|
||||||
|
theme[main_bg]="#0c0b0c"
|
||||||
|
|
||||||
|
# Main text color
|
||||||
|
theme[main_fg]="#e2dddc"
|
||||||
|
|
||||||
|
# Title color for boxes
|
||||||
|
theme[title]="#b59790"
|
||||||
|
|
||||||
|
# Highlight color for keyboard shortcuts
|
||||||
|
theme[hi_fg]="#c4d8e2"
|
||||||
|
|
||||||
|
# Background color of selected item in processes box
|
||||||
|
theme[selected_bg]="#e2dddc"
|
||||||
|
|
||||||
|
# Foreground color of selected item in processes box
|
||||||
|
theme[selected_fg]="#0c0b0c"
|
||||||
|
|
||||||
|
# Color of inactive/disabled text
|
||||||
|
theme[inactive_fg]="#584e51"
|
||||||
|
|
||||||
|
# Color of text appearing on top of graphs
|
||||||
|
theme[graph_text]="#e2dddc"
|
||||||
|
|
||||||
|
# Background color of the percentage meters
|
||||||
|
theme[meter_bg]="#1e1d1e"
|
||||||
|
|
||||||
|
# Misc colors for processes box
|
||||||
|
theme[proc_misc]="#e2dddc"
|
||||||
|
|
||||||
|
# CPU, Memory, Network, Proc box outline colors
|
||||||
|
theme[cpu_box]="#584e51"
|
||||||
|
theme[mem_box]="#584e51"
|
||||||
|
theme[net_box]="#584e51"
|
||||||
|
theme[proc_box]="#584e51"
|
||||||
|
|
||||||
|
# Box divider line and small boxes line color
|
||||||
|
theme[div_line]="#6B5E73"
|
||||||
|
|
||||||
|
# Temperature graph color (Green -> Yellow -> Red)
|
||||||
|
theme[temp_start]="#87a9b0"
|
||||||
|
theme[temp_mid]="#6B5E73"
|
||||||
|
theme[temp_end]="#c38b7b"
|
||||||
|
|
||||||
|
# CPU graph colors (Blue -> Cyan -> Magenta)
|
||||||
|
theme[cpu_start]="#b59790"
|
||||||
|
theme[cpu_mid]="#a5a0b6"
|
||||||
|
theme[cpu_end]="#c4d8e2"
|
||||||
|
|
||||||
|
# Mem/Disk free meter (Reversed "Available" colors: Cyan -> Blue -> Purple)
|
||||||
|
theme[free_start]="#c4d8e2"
|
||||||
|
theme[free_mid]="#b59790"
|
||||||
|
theme[free_end]="#6B5E73"
|
||||||
|
|
||||||
|
# Mem/Disk cached meter
|
||||||
|
theme[cached_start]="#b59790"
|
||||||
|
theme[cached_mid]="#c4d8e2"
|
||||||
|
theme[cached_end]="#e2dddc"
|
||||||
|
|
||||||
|
# Mem/Disk available meter (Purple -> Blue -> Cyan)
|
||||||
|
theme[available_start]="#6B5E73"
|
||||||
|
theme[available_mid]="#b59790"
|
||||||
|
theme[available_end]="#a5a0b6"
|
||||||
|
|
||||||
|
# Mem/Disk used meter
|
||||||
|
theme[used_start]="#c38b7b"
|
||||||
|
theme[used_mid]="#6B5E73"
|
||||||
|
theme[used_end]="#584e51"
|
||||||
|
|
||||||
|
# Download graph colors
|
||||||
|
theme[download_start]="#87a9b0"
|
||||||
|
theme[download_mid]="#a5a0b6"
|
||||||
|
theme[download_end]="#cfd3cd"
|
||||||
|
|
||||||
|
# Upload graph colors
|
||||||
|
theme[upload_start]="#b59790"
|
||||||
|
theme[upload_mid]="#c4d8e2"
|
||||||
|
theme[upload_end]="#e2dddc"
|
||||||
|
|
||||||
|
# Process box color gradient
|
||||||
|
theme[process_start]="#c4d8e2"
|
||||||
|
theme[process_mid]="#a5a0b6"
|
||||||
|
theme[process_end]="#c38b7b"
|
||||||
|
|
||||||
|
# Graph gradient colors
|
||||||
|
theme[gradient_color_0]="#0c0b0c"
|
||||||
|
theme[gradient_color_1]="#584e51"
|
||||||
|
theme[gradient_color_2]="#6B5E73"
|
||||||
|
theme[gradient_color_3]="#c38b7b"
|
||||||
|
theme[gradient_color_4]="#87a9b0"
|
||||||
|
theme[gradient_color_5]="#b59790"
|
||||||
|
theme[gradient_color_6]="#a5a0b6"
|
||||||
|
theme[gradient_color_7]="#FAFCFB"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
12,11,12
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
mode = "dark"
|
||||||
|
|
||||||
|
accent = "#b59790"
|
||||||
|
selection = "#584e51"
|
||||||
|
muted = "#584e51"
|
||||||
|
|
||||||
|
background = "#0c0b0c"
|
||||||
|
dark_background = "#090809"
|
||||||
|
darker_background = "#060606"
|
||||||
|
lighter_background = "#0c0b0c"
|
||||||
|
|
||||||
|
foreground = "#FAFCFB"
|
||||||
|
dark_foreground = "#584e51"
|
||||||
|
light_foreground = "#cfd3cd"
|
||||||
|
bright_foreground = "#e2dddc"
|
||||||
|
|
||||||
|
hyprland_active_border = "rgba(8a8588ee) rgba(e2dddcee)"
|
||||||
|
hyprland_inactive_border = "rgba(584e51aa)"
|
||||||
|
active_border_color = "#d6d3de"
|
||||||
|
active_tab_background = "#a5a0b6"
|
||||||
|
|
||||||
|
red = "#c38b7b"
|
||||||
|
yellow = "#6B5E73"
|
||||||
|
green = "#87a9b0"
|
||||||
|
cyan = "#a5a0b6"
|
||||||
|
blue = "#b59790"
|
||||||
|
magenta = "#c4d8e2"
|
||||||
|
|
||||||
|
bright_red = "#c38b7b"
|
||||||
|
bright_yellow = "#6B5E73"
|
||||||
|
bright_green = "#87a9b0"
|
||||||
|
bright_cyan = "#a5a0b6"
|
||||||
|
bright_blue = "#b59790"
|
||||||
|
bright_magenta = "#c4d8e2"
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
local active_border_color = { colors = { "rgba(8a8588ee)", "rgba(e2dddcee)" }, angle = 45 }
|
||||||
|
local inactive_border_color = "rgba(584e51aa)"
|
||||||
|
|
||||||
|
hl.config({
|
||||||
|
general = {
|
||||||
|
col = {
|
||||||
|
active_border = active_border_color,
|
||||||
|
inactive_border = inactive_border_color,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
group = {
|
||||||
|
col = {
|
||||||
|
border_active = active_border_color,
|
||||||
|
border_inactive = inactive_border_color,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
Yaru-purple
|
||||||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 652 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"name": "Ship at Sea",
|
||||||
|
"extension": "rikkarth.ship-at-sea"
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 248 KiB |
|
After Width: | Height: | Size: 716 B |
@@ -1,35 +1,34 @@
|
|||||||
# Accent and UI colors
|
mode = "dark"
|
||||||
|
|
||||||
accent = "#8bc9eb"
|
accent = "#8bc9eb"
|
||||||
|
selection = "#243d56"
|
||||||
|
muted = "#304860"
|
||||||
|
|
||||||
|
background = "#16242d"
|
||||||
|
dark_background = "#101b21"
|
||||||
|
darker_background = "#0b1216"
|
||||||
|
lighter_background = "#1b2d40"
|
||||||
|
|
||||||
|
foreground = "#d6e2ee"
|
||||||
|
dark_foreground = "#4d86b0"
|
||||||
|
light_foreground = "#d6e2ee"
|
||||||
|
bright_foreground = "#f2fcff"
|
||||||
|
|
||||||
active_border_color = "#f2fcff"
|
active_border_color = "#f2fcff"
|
||||||
active_tab_background = "#6fb8e3"
|
active_tab_background = "#6fb8e3"
|
||||||
|
|
||||||
# Cursor colors
|
red = "#4d86b0"
|
||||||
cursor = "#f2fcff"
|
yellow = "#6fa4c9"
|
||||||
|
orange = "#8bc9eb"
|
||||||
|
green = "#5e95bc"
|
||||||
|
cyan = "#b4e4f6"
|
||||||
|
blue = "#6fb8e3"
|
||||||
|
magenta = "#8bc9eb"
|
||||||
|
brown = "#456475"
|
||||||
|
|
||||||
# Primary colors
|
bright_red = "#73a6cb"
|
||||||
foreground = "#d6e2ee"
|
bright_yellow = "#9dcae5"
|
||||||
background = "#16242d"
|
bright_green = "#86b7d8"
|
||||||
|
bright_cyan = "#d1eef8"
|
||||||
# Selection colors
|
bright_blue = "#f2fcff"
|
||||||
selection_foreground = "#1b2d40"
|
bright_magenta = "#b1d8ee"
|
||||||
selection_background = "#4d9ed3"
|
|
||||||
|
|
||||||
# Normal colors (ANSI 0-7)
|
|
||||||
color0 = "#1b2d40"
|
|
||||||
color1 = "#4d86b0"
|
|
||||||
color2 = "#5e95bc"
|
|
||||||
color3 = "#6fa4c9"
|
|
||||||
color4 = "#6fb8e3"
|
|
||||||
color5 = "#8bc9eb"
|
|
||||||
color6 = "#b4e4f6"
|
|
||||||
color7 = "#d6e2ee"
|
|
||||||
|
|
||||||
# Bright colors (ANSI 8-15)
|
|
||||||
color8 = "#304860"
|
|
||||||
color9 = "#73a6cb"
|
|
||||||
color10 = "#86b7d8"
|
|
||||||
color11 = "#9dcae5"
|
|
||||||
color12 = "#f2fcff"
|
|
||||||
color13 = "#b1d8ee"
|
|
||||||
color14 = "#d1eef8"
|
|
||||||
color15 = "#ffffff"
|
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
local active_border_color = "rgb(f2fcff)"
|
||||||
|
local active_shadow_color = "rgb(6fb8e3)"
|
||||||
|
local inactive_border_color = "rgba(30486099)"
|
||||||
|
local inactive_shadow_color = "rgba(30486077)"
|
||||||
|
|
||||||
|
hl.config({
|
||||||
|
general = {
|
||||||
|
col = {
|
||||||
|
active_border = active_border_color,
|
||||||
|
inactive_border = inactive_border_color,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
group = {
|
||||||
|
col = {
|
||||||
|
border_active = active_border_color,
|
||||||
|
border_inactive = inactive_border_color,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
shadow = {
|
||||||
|
enabled = true,
|
||||||
|
range = 6,
|
||||||
|
render_power = 4,
|
||||||
|
color = active_shadow_color,
|
||||||
|
color_inactive = inactive_shadow_color,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
After Width: | Height: | Size: 606 KiB |
|
After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 736 KiB |
|
After Width: | Height: | Size: 204 KiB |
|
After Width: | Height: | Size: 143 KiB |
|
After Width: | Height: | Size: 716 B |
@@ -0,0 +1,31 @@
|
|||||||
|
mode = "light"
|
||||||
|
|
||||||
|
accent = "#3264eb"
|
||||||
|
selection = "#d0d0d0"
|
||||||
|
muted = "#9e9e9e"
|
||||||
|
|
||||||
|
background = "#fafafa"
|
||||||
|
dark_background = "#ececec"
|
||||||
|
darker_background = "#dedede"
|
||||||
|
lighter_background = "#f5f5f5"
|
||||||
|
|
||||||
|
foreground = "#212121"
|
||||||
|
dark_foreground = "#757575"
|
||||||
|
light_foreground = "#424242"
|
||||||
|
bright_foreground = "#000000"
|
||||||
|
|
||||||
|
red = "#c900c4"
|
||||||
|
yellow = "#026fde"
|
||||||
|
orange = "#026fde"
|
||||||
|
green = "#4a2fd0"
|
||||||
|
cyan = "#0c67de"
|
||||||
|
blue = "#3264eb"
|
||||||
|
magenta = "#8a4ad7"
|
||||||
|
brown = "#013a6f"
|
||||||
|
|
||||||
|
bright_red = "#f930fb"
|
||||||
|
bright_yellow = "#358fff"
|
||||||
|
bright_green = "#9f85e0"
|
||||||
|
bright_cyan = "#3986ff"
|
||||||
|
bright_blue = "#5482ff"
|
||||||
|
bright_magenta = "#b363ff"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
Yaru-purple
|
||||||
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 922 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 325 KiB |
|
After Width: | Height: | Size: 231 KiB |
|
After Width: | Height: | Size: 716 B |
@@ -1,23 +1,31 @@
|
|||||||
accent = "#e68e0d"
|
mode = "dark"
|
||||||
cursor = "#eaeaea"
|
|
||||||
foreground = "#bebebe"
|
|
||||||
background = "#121212"
|
|
||||||
selection_foreground = "#bebebe"
|
|
||||||
selection_background = "#515151"
|
|
||||||
|
|
||||||
color0 = "#333333"
|
accent = "#e68e0d"
|
||||||
color1 = "#D35F5F"
|
selection = "#2a2a2a"
|
||||||
color2 = "#FFC107"
|
muted = "#333333"
|
||||||
color3 = "#b91c1c"
|
|
||||||
color4 = "#e68e0d"
|
background = "#121212"
|
||||||
color5 = "#D35F5F"
|
dark_background = "#0d0d0d"
|
||||||
color6 = "#bebebe"
|
darker_background = "#090909"
|
||||||
color7 = "#bebebe"
|
lighter_background = "#1e1e1e"
|
||||||
color8 = "#8a8a8d"
|
|
||||||
color9 = "#B91C1C"
|
foreground = "#bebebe"
|
||||||
color10 = "#FFC107"
|
dark_foreground = "#555555"
|
||||||
color11 = "#b90a0a"
|
light_foreground = "#8a8a8d"
|
||||||
color12 = "#f59e0b"
|
bright_foreground = "#bebebe"
|
||||||
color13 = "#B91C1C"
|
|
||||||
color14 = "#eaeaea"
|
red = "#D35F5F"
|
||||||
color15 = "#ffffff"
|
yellow = "#b91c1c"
|
||||||
|
orange = "#c63d3d"
|
||||||
|
green = "#FFC107"
|
||||||
|
cyan = "#bebebe"
|
||||||
|
blue = "#e68e0d"
|
||||||
|
magenta = "#D35F5F"
|
||||||
|
brown = "#631e1e"
|
||||||
|
|
||||||
|
bright_red = "#B91C1C"
|
||||||
|
bright_yellow = "#b90a0a"
|
||||||
|
bright_green = "#FFC107"
|
||||||
|
bright_cyan = "#eaeaea"
|
||||||
|
bright_blue = "#f59e0b"
|
||||||
|
bright_magenta = "#B91C1C"
|
||||||
|
|||||||
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
After Width: | Height: | Size: 716 B |
@@ -1,23 +1,31 @@
|
|||||||
accent = "#78824b"
|
mode = "dark"
|
||||||
cursor = "#c7c7c7"
|
|
||||||
foreground = "#c2c2b0"
|
|
||||||
background = "#222222"
|
|
||||||
selection_foreground = "#c2c2b0"
|
|
||||||
selection_background = "#78824b"
|
|
||||||
|
|
||||||
color0 = "#000000"
|
accent = "#78824b"
|
||||||
color1 = "#685742"
|
selection = "#383838"
|
||||||
color2 = "#5f875f"
|
muted = "#666666"
|
||||||
color3 = "#b36d43"
|
|
||||||
color4 = "#78824b"
|
background = "#222222"
|
||||||
color5 = "#bb7744"
|
dark_background = "#191919"
|
||||||
color6 = "#c9a554"
|
darker_background = "#121212"
|
||||||
color7 = "#d7c483"
|
lighter_background = "#2c2c2c"
|
||||||
color8 = "#666666"
|
|
||||||
color9 = "#685742"
|
foreground = "#c2c2b0"
|
||||||
color10 = "#5f875f"
|
dark_foreground = "#555555"
|
||||||
color11 = "#b36d43"
|
light_foreground = "#8a8a7e"
|
||||||
color12 = "#78824b"
|
bright_foreground = "#c2c2b0"
|
||||||
color13 = "#bb7744"
|
|
||||||
color14 = "#c9a554"
|
red = "#685742"
|
||||||
color15 = "#d7c483"
|
yellow = "#b36d43"
|
||||||
|
orange = "#8d6242"
|
||||||
|
green = "#5f875f"
|
||||||
|
cyan = "#c9a554"
|
||||||
|
blue = "#78824b"
|
||||||
|
magenta = "#bb7744"
|
||||||
|
brown = "#463121"
|
||||||
|
|
||||||
|
bright_red = "#685742"
|
||||||
|
bright_yellow = "#b36d43"
|
||||||
|
bright_green = "#5f875f"
|
||||||
|
bright_cyan = "#c9a554"
|
||||||
|
bright_blue = "#78824b"
|
||||||
|
bright_magenta = "#bb7744"
|
||||||
|
|||||||
|
After Width: | Height: | Size: 347 KiB |
|
After Width: | Height: | Size: 682 KiB |
|
After Width: | Height: | Size: 716 B |
@@ -1,23 +1,31 @@
|
|||||||
accent = "#81a1c1"
|
mode = "dark"
|
||||||
cursor = "#d8dee9"
|
|
||||||
foreground = "#d8dee9"
|
|
||||||
background = "#2e3440"
|
|
||||||
selection_foreground = "#d8dee9"
|
|
||||||
selection_background = "#4c566a"
|
|
||||||
|
|
||||||
color0 = "#3b4252"
|
accent = "#81a1c1"
|
||||||
color1 = "#bf616a"
|
selection = "#434c5e"
|
||||||
color2 = "#a3be8c"
|
muted = "#4c566a"
|
||||||
color3 = "#ebcb8b"
|
|
||||||
color4 = "#81a1c1"
|
background = "#2e3440"
|
||||||
color5 = "#b48ead"
|
dark_background = "#222730"
|
||||||
color6 = "#88c0d0"
|
darker_background = "#191c23"
|
||||||
color7 = "#e5e9f0"
|
lighter_background = "#3b4252"
|
||||||
color8 = "#4c566a"
|
|
||||||
color9 = "#bf616a"
|
foreground = "#d8dee9"
|
||||||
color10 = "#a3be8c"
|
dark_foreground = "#667080"
|
||||||
color11 = "#ebcb8b"
|
light_foreground = "#adb5c4"
|
||||||
color12 = "#81a1c1"
|
bright_foreground = "#d8dee9"
|
||||||
color13 = "#b48ead"
|
|
||||||
color14 = "#8fbcbb"
|
red = "#bf616a"
|
||||||
color15 = "#eceff4"
|
yellow = "#ebcb8b"
|
||||||
|
orange = "#d5967a"
|
||||||
|
green = "#a3be8c"
|
||||||
|
cyan = "#88c0d0"
|
||||||
|
blue = "#81a1c1"
|
||||||
|
magenta = "#b48ead"
|
||||||
|
brown = "#6a4b3d"
|
||||||
|
|
||||||
|
bright_red = "#bf616a"
|
||||||
|
bright_yellow = "#ebcb8b"
|
||||||
|
bright_green = "#a3be8c"
|
||||||
|
bright_cyan = "#8fbcbb"
|
||||||
|
bright_blue = "#81a1c1"
|
||||||
|
bright_magenta = "#b48ead"
|
||||||
|
|||||||
|
After Width: | Height: | Size: 306 KiB |
|
After Width: | Height: | Size: 492 KiB |
|
After Width: | Height: | Size: 319 KiB |
|
After Width: | Height: | Size: 716 B |
@@ -1,23 +1,31 @@
|
|||||||
accent = "#509475"
|
mode = "dark"
|
||||||
cursor = "#D7C995"
|
|
||||||
foreground = "#C1C497"
|
|
||||||
background = "#111c18"
|
|
||||||
selection_foreground = "#111C18"
|
|
||||||
selection_background = "#C1C497"
|
|
||||||
|
|
||||||
color0 = "#23372B"
|
accent = "#509475"
|
||||||
color1 = "#FF5345"
|
selection = "#32473B"
|
||||||
color2 = "#549e6a"
|
muted = "#53685B"
|
||||||
color3 = "#459451"
|
|
||||||
color4 = "#509475"
|
background = "#111c18"
|
||||||
color5 = "#D2689C"
|
dark_background = "#0c1512"
|
||||||
color6 = "#2DD5B7"
|
darker_background = "#090f0d"
|
||||||
color7 = "#F6F5DD"
|
lighter_background = "#23372B"
|
||||||
color8 = "#53685B"
|
|
||||||
color9 = "#db9f9c"
|
foreground = "#C1C497"
|
||||||
color10 = "#63b07a"
|
dark_foreground = "#81B8A8"
|
||||||
color11 = "#E5C736"
|
light_foreground = "#D6D5BC"
|
||||||
color12 = "#ACD4CF"
|
bright_foreground = "#F7E8B2"
|
||||||
color13 = "#75bbb3"
|
|
||||||
color14 = "#8CD3CB"
|
red = "#FF5345"
|
||||||
color15 = "#9eebb3"
|
yellow = "#459451"
|
||||||
|
orange = "#a2734b"
|
||||||
|
green = "#549e6a"
|
||||||
|
cyan = "#2DD5B7"
|
||||||
|
blue = "#509475"
|
||||||
|
magenta = "#D2689C"
|
||||||
|
brown = "#513925"
|
||||||
|
|
||||||
|
bright_red = "#db9f9c"
|
||||||
|
bright_yellow = "#E5C736"
|
||||||
|
bright_green = "#63b07a"
|
||||||
|
bright_cyan = "#8CD3CB"
|
||||||
|
bright_blue = "#ACD4CF"
|
||||||
|
bright_magenta = "#75bbb3"
|
||||||
|
|||||||
|
After Width: | Height: | Size: 835 KiB |