Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b9997088c8 | ||
|
|
869991df4b | ||
|
|
788914abdc | ||
|
|
9c353f257b |
@@ -5,7 +5,7 @@ if vim.fn.isdirectory(vim.fn.expand "~" .. "/Documents/sjb-brain/") == 1 then
|
||||
require("obsidian").setup({
|
||||
legacy_commands = false,
|
||||
picker = {
|
||||
name = "snacks.pick",
|
||||
name = "snacks.picker",
|
||||
},
|
||||
ui = {
|
||||
enable = true,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Host alcazar
|
||||
Host rascar
|
||||
User sjb
|
||||
Hostname 172.25.11.135
|
||||
Hostname 172.25.11.131
|
||||
ForwardAgent yes
|
||||
RemoteForward /run/user/1000/gnupg/S.gpg-agent /run/user/1000/gnupg/S.gpg-agent.extra
|
||||
StreamLocalBindUnlink yes
|
||||
|
||||
@@ -4,19 +4,19 @@ foreground = "{{ foreground }}"
|
||||
|
||||
[colors.cursor]
|
||||
text = "{{ background }}"
|
||||
cursor = "{{ cursor }}"
|
||||
cursor = "{{ bright_foreground }}"
|
||||
|
||||
[colors.vi_mode_cursor]
|
||||
text = "{{ background }}"
|
||||
cursor = "{{ cursor }}"
|
||||
cursor = "{{ bright_foreground }}"
|
||||
|
||||
[colors.search.matches]
|
||||
foreground = "{{ background }}"
|
||||
background = "{{ color3 }}"
|
||||
background = "{{ yellow }}"
|
||||
|
||||
[colors.search.focused_match]
|
||||
foreground = "{{ background }}"
|
||||
background = "{{ color1 }}"
|
||||
background = "{{ red }}"
|
||||
|
||||
[colors.footer_bar]
|
||||
foreground = "{{ background }}"
|
||||
@@ -27,21 +27,21 @@ text = "{{ selection_foreground }}"
|
||||
background = "{{ selection_background }}"
|
||||
|
||||
[colors.normal]
|
||||
black = "{{ color0 }}"
|
||||
red = "{{ color1 }}"
|
||||
green = "{{ color2 }}"
|
||||
yellow = "{{ color3 }}"
|
||||
blue = "{{ color4 }}"
|
||||
magenta = "{{ color5 }}"
|
||||
cyan = "{{ color6 }}"
|
||||
white = "{{ color7 }}"
|
||||
black = "{{ background }}"
|
||||
red = "{{ red }}"
|
||||
green = "{{ green }}"
|
||||
yellow = "{{ yellow }}"
|
||||
blue = "{{ blue }}"
|
||||
magenta = "{{ magenta }}"
|
||||
cyan = "{{ cyan }}"
|
||||
white = "{{ foreground }}"
|
||||
|
||||
[colors.bright]
|
||||
black = "{{ color8 }}"
|
||||
red = "{{ color9 }}"
|
||||
green = "{{ color10 }}"
|
||||
yellow = "{{ color11 }}"
|
||||
blue = "{{ color12 }}"
|
||||
magenta = "{{ color13 }}"
|
||||
cyan = "{{ color14 }}"
|
||||
white = "{{ color15 }}"
|
||||
black = "{{ muted }}"
|
||||
red = "{{ bright_red }}"
|
||||
green = "{{ bright_green }}"
|
||||
yellow = "{{ bright_yellow }}"
|
||||
blue = "{{ bright_blue }}"
|
||||
magenta = "{{ bright_magenta }}"
|
||||
cyan = "{{ bright_cyan }}"
|
||||
white = "{{ bright_foreground }}"
|
||||
|
||||
@@ -11,73 +11,83 @@ theme[title]="{{ foreground }}"
|
||||
theme[hi_fg]="{{ accent }}"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="{{ color8 }}"
|
||||
theme[selected_bg]="{{ selection }}"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="{{ accent }}"
|
||||
|
||||
# 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
|
||||
theme[graph_text]="{{ foreground }}"
|
||||
theme[graph_text]="{{ light_foreground }}"
|
||||
|
||||
# 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
|
||||
theme[proc_misc]="{{ foreground }}"
|
||||
theme[proc_misc]="{{ light_foreground }}"
|
||||
|
||||
# CPU, Memory, Network, Proc box outline colors
|
||||
theme[cpu_box]="{{ color5 }}"
|
||||
theme[mem_box]="{{ color2 }}"
|
||||
theme[net_box]="{{ color1 }}"
|
||||
theme[cpu_box]="{{ magenta }}"
|
||||
theme[mem_box]="{{ green }}"
|
||||
theme[net_box]="{{ red }}"
|
||||
theme[proc_box]="{{ accent }}"
|
||||
|
||||
# Box divider line and small boxes line color
|
||||
theme[div_line]="{{ color8 }}"
|
||||
theme[div_line]="{{ muted }}"
|
||||
|
||||
# Temperature graph color (Green -> Yellow -> Red)
|
||||
theme[temp_start]="{{ color2 }}"
|
||||
theme[temp_mid]="{{ color3 }}"
|
||||
theme[temp_end]="{{ color1 }}"
|
||||
theme[temp_start]="{{ green }}"
|
||||
theme[temp_mid]="{{ yellow }}"
|
||||
theme[temp_end]="{{ red }}"
|
||||
|
||||
# CPU graph colors (Teal -> Lavender)
|
||||
theme[cpu_start]="{{ color6 }}"
|
||||
theme[cpu_mid]="{{ color4 }}"
|
||||
theme[cpu_end]="{{ color5 }}"
|
||||
# CPU graph colors (Teal -> Blue -> Magenta)
|
||||
theme[cpu_start]="{{ cyan }}"
|
||||
theme[cpu_mid]="{{ blue }}"
|
||||
theme[cpu_end]="{{ magenta }}"
|
||||
|
||||
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
||||
theme[free_start]="{{ color5 }}"
|
||||
theme[free_mid]="{{ color4 }}"
|
||||
theme[free_end]="{{ color6 }}"
|
||||
# Mem/Disk free meter
|
||||
theme[free_start]="{{ magenta }}"
|
||||
theme[free_mid]="{{ blue }}"
|
||||
theme[free_end]="{{ cyan }}"
|
||||
|
||||
# Mem/Disk cached meter (Sapphire -> Lavender)
|
||||
theme[cached_start]="{{ color4 }}"
|
||||
theme[cached_mid]="{{ color6 }}"
|
||||
theme[cached_end]="{{ color5 }}"
|
||||
# Mem/Disk cached meter
|
||||
theme[cached_start]="{{ blue }}"
|
||||
theme[cached_mid]="{{ cyan }}"
|
||||
theme[cached_end]="{{ magenta }}"
|
||||
|
||||
# Mem/Disk available meter (Peach -> Red)
|
||||
theme[available_start]="{{ color3 }}"
|
||||
theme[available_mid]="{{ color1 }}"
|
||||
theme[available_end]="{{ color1 }}"
|
||||
# Mem/Disk available meter
|
||||
theme[available_start]="{{ yellow }}"
|
||||
theme[available_mid]="{{ red }}"
|
||||
theme[available_end]="{{ red }}"
|
||||
|
||||
# Mem/Disk used meter (Green -> Sky)
|
||||
theme[used_start]="{{ color2 }}"
|
||||
theme[used_mid]="{{ color6 }}"
|
||||
theme[used_end]="{{ color4 }}"
|
||||
# Mem/Disk used meter (Green -> Teal -> Blue)
|
||||
theme[used_start]="{{ green }}"
|
||||
theme[used_mid]="{{ cyan }}"
|
||||
theme[used_end]="{{ blue }}"
|
||||
|
||||
# Download graph colors (Peach -> Red)
|
||||
theme[download_start]="{{ color3 }}"
|
||||
theme[download_mid]="{{ color1 }}"
|
||||
theme[download_end]="{{ color1 }}"
|
||||
# Download graph colors
|
||||
theme[download_start]="{{ yellow }}"
|
||||
theme[download_mid]="{{ red }}"
|
||||
theme[download_end]="{{ red }}"
|
||||
|
||||
# Upload graph colors (Green -> Sky)
|
||||
theme[upload_start]="{{ color2 }}"
|
||||
theme[upload_mid]="{{ color6 }}"
|
||||
theme[upload_end]="{{ color4 }}"
|
||||
# Upload graph colors (Green -> Teal -> Blue)
|
||||
theme[upload_start]="{{ green }}"
|
||||
theme[upload_mid]="{{ cyan }}"
|
||||
theme[upload_end]="{{ blue }}"
|
||||
|
||||
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
||||
theme[process_start]="{{ color6 }}"
|
||||
theme[process_mid]="{{ color4 }}"
|
||||
theme[process_end]="{{ color5 }}"
|
||||
# Process box color gradient for threads, mem and cpu usage
|
||||
theme[process_start]="{{ cyan }}"
|
||||
theme[process_mid]="{{ blue }}"
|
||||
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-background={{ selection_background_strip }}
|
||||
|
||||
cursor={{ background_strip }} {{ cursor_strip }}
|
||||
cursor={{ background_strip }} {{ bright_foreground_strip }}
|
||||
|
||||
regular0={{ color0_strip }}
|
||||
regular1={{ color1_strip }}
|
||||
regular2={{ color2_strip }}
|
||||
regular3={{ color3_strip }}
|
||||
regular4={{ color4_strip }}
|
||||
regular5={{ color5_strip }}
|
||||
regular6={{ color6_strip }}
|
||||
regular7={{ color7_strip }}
|
||||
regular0={{ background_strip }}
|
||||
regular1={{ red_strip }}
|
||||
regular2={{ green_strip }}
|
||||
regular3={{ yellow_strip }}
|
||||
regular4={{ blue_strip }}
|
||||
regular5={{ purple_strip }}
|
||||
regular6={{ cyan_strip }}
|
||||
regular7={{ foreground_strip }}
|
||||
|
||||
bright0={{ color8_strip }}
|
||||
bright1={{ color9_strip }}
|
||||
bright2={{ color10_strip }}
|
||||
bright3={{ color11_strip }}
|
||||
bright4={{ color12_strip }}
|
||||
bright5={{ color13_strip }}
|
||||
bright6={{ color14_strip }}
|
||||
bright7={{ color15_strip }}
|
||||
bright0={{ muted_strip }}
|
||||
bright1={{ bright_red_strip }}
|
||||
bright2={{ bright_green_strip }}
|
||||
bright3={{ bright_yellow_strip }}
|
||||
bright4={{ bright_blue_strip }}
|
||||
bright5={{ bright_magenta_strip }}
|
||||
bright6={{ bright_cyan_strip }}
|
||||
bright7={{ bright_foreground_strip }}
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
background = {{ background }}
|
||||
foreground = {{ foreground }}
|
||||
cursor-color = {{ cursor }}
|
||||
cursor-color = {{ bright_foreground }}
|
||||
selection-background = {{ selection_background }}
|
||||
selection-foreground = {{ selection_foreground }}
|
||||
|
||||
palette = 0={{ color0 }}
|
||||
palette = 1={{ color1 }}
|
||||
palette = 2={{ color2 }}
|
||||
palette = 3={{ color3 }}
|
||||
palette = 4={{ color4 }}
|
||||
palette = 5={{ color5 }}
|
||||
palette = 6={{ color6 }}
|
||||
palette = 7={{ color7 }}
|
||||
palette = 8={{ color8 }}
|
||||
palette = 9={{ color9 }}
|
||||
palette = 10={{ color10 }}
|
||||
palette = 11={{ color11 }}
|
||||
palette = 12={{ color12 }}
|
||||
palette = 13={{ color13 }}
|
||||
palette = 14={{ color14 }}
|
||||
palette = 15={{ color15 }}
|
||||
palette = 0={{ background }}
|
||||
palette = 1={{ red }}
|
||||
palette = 2={{ green }}
|
||||
palette = 3={{ yellow }}
|
||||
palette = 4={{ blue }}
|
||||
palette = 5={{ magenta }}
|
||||
palette = 6={{ cyan }}
|
||||
palette = 7={{ foreground }}
|
||||
palette = 8={{ muted }}
|
||||
palette = 9={{ bright_red }}
|
||||
palette = 10={{ bright_green }}
|
||||
palette = 11={{ bright_yellow }}
|
||||
palette = 12={{ bright_blue }}
|
||||
palette = 13={{ bright_magenta }}
|
||||
palette = 14={{ bright_cyan }}
|
||||
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.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.directory" = { fg = "color4" }
|
||||
|
||||
"ui.virtual" = "color8"
|
||||
"ui.virtual.ruler" = { bg = "color0" }
|
||||
"ui.virtual.ruler" = { bg = "lighter_background" }
|
||||
"ui.virtual.indent-guide" = "color8"
|
||||
"ui.virtual.inlay-hint" = { fg = "color8" }
|
||||
"ui.virtual.jump-label" = { fg = "color1", modifiers = ["bold"] }
|
||||
@@ -96,9 +96,9 @@
|
||||
"ui.cursor.primary.insert" = { fg = "background", bg = "color2" }
|
||||
"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.selected" = { fg = "background", bg = "foreground", modifiers = ["bold"] }
|
||||
@@ -118,15 +118,16 @@ hint = "color6"
|
||||
[palette]
|
||||
background = "{{ background }}"
|
||||
foreground = "{{ foreground }}"
|
||||
cursor = "{{ cursor }}"
|
||||
lighter_background = "{{ lighter_background }}"
|
||||
cursor = "{{ bright_foreground }}"
|
||||
selection_background = "{{ selection_background }}"
|
||||
selection_foreground = "{{ selection_foreground }}"
|
||||
color0 = "{{ color0 }}"
|
||||
color1 = "{{ color1 }}"
|
||||
color2 = "{{ color2 }}"
|
||||
color3 = "{{ color3 }}"
|
||||
color4 = "{{ color4 }}"
|
||||
color5 = "{{ color5 }}"
|
||||
color6 = "{{ color6 }}"
|
||||
color7 = "{{ color7 }}"
|
||||
color8 = "{{ color8 }}"
|
||||
color0 = "{{ background }}"
|
||||
color1 = "{{ red }}"
|
||||
color2 = "{{ green }}"
|
||||
color3 = "{{ yellow }}"
|
||||
color4 = "{{ blue }}"
|
||||
color5 = "{{ magenta }}"
|
||||
color6 = "{{ cyan }}"
|
||||
color7 = "{{ foreground }}"
|
||||
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 background {{ background }};
|
||||
@define-color accent {{ accent }};
|
||||
@define-color muted {{ color8 }};
|
||||
@define-color card_bg {{ color0 }};
|
||||
@define-color muted {{ muted }};
|
||||
@define-color card_bg {{ lighter_background }};
|
||||
@define-color text_dark {{ background }};
|
||||
@define-color accent_hover {{ color12 }};
|
||||
@define-color accent_hover {{ bright_blue }};
|
||||
@define-color selected_tab {{ accent }};
|
||||
@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({
|
||||
general = {
|
||||
col = {
|
||||
active_border = { colors = {"rgb({{ accent_strip }})", "rgb({{ color1_strip }})" }, angle = 45 },
|
||||
inactive_border = { colors = {"rgb({{ color2_strip }})", "rgb({{ color2_strip }})" }, angle = 45 }
|
||||
}
|
||||
active_border = active_border_color,
|
||||
inactive_border = inactive_border_color,
|
||||
},
|
||||
},
|
||||
|
||||
group = {
|
||||
col = {
|
||||
border_active = { colors = {"rgb({{ accent_strip }})", "rgb({{ color1_strip }})" }, angle = 45 },
|
||||
border_inactive = { colors = {"rgb({{ color2_strip }})", "rgb({{ color2_strip }})" }, angle = 45 }
|
||||
}
|
||||
}
|
||||
border_active = active_border_color,
|
||||
border_inactive = inactive_border_color,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
@@ -3,25 +3,25 @@ background {{ background }}
|
||||
selection_foreground {{ selection_foreground }}
|
||||
selection_background {{ selection_background }}
|
||||
|
||||
cursor {{ cursor }}
|
||||
cursor {{ bright_foreground }}
|
||||
cursor_text_color {{ background }}
|
||||
|
||||
active_border_color {{ accent }}
|
||||
active_tab_background {{ accent }}
|
||||
|
||||
color0 {{ color0 }}
|
||||
color1 {{ color1 }}
|
||||
color2 {{ color2 }}
|
||||
color3 {{ color3 }}
|
||||
color4 {{ color4 }}
|
||||
color5 {{ color5 }}
|
||||
color6 {{ color6 }}
|
||||
color7 {{ color7 }}
|
||||
color8 {{ color8 }}
|
||||
color9 {{ color9 }}
|
||||
color10 {{ color10 }}
|
||||
color11 {{ color11 }}
|
||||
color12 {{ color12 }}
|
||||
color13 {{ color13 }}
|
||||
color14 {{ color14 }}
|
||||
color15 {{ color15 }}
|
||||
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 }}
|
||||
|
||||
@@ -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 }};
|
||||
|
||||
/* Border color */
|
||||
--background-modifier-border: {{ color8 }};
|
||||
--background-modifier-border: {{ muted }};
|
||||
|
||||
/* Semantic heading colors */
|
||||
--text-title-h1: {{ color1 }};
|
||||
--text-title-h2: {{ color2 }};
|
||||
--text-title-h3: {{ color3 }};
|
||||
--text-title-h4: {{ color4 }};
|
||||
--text-title-h5: {{ color5 }};
|
||||
--text-title-h6: {{ color5 }};
|
||||
--text-title-h1: {{ red }};
|
||||
--text-title-h2: {{ green }};
|
||||
--text-title-h3: {{ yellow }};
|
||||
--text-title-h4: {{ blue }};
|
||||
--text-title-h5: {{ magenta }};
|
||||
--text-title-h6: {{ magenta }};
|
||||
|
||||
/* Links and accents */
|
||||
--text-link: {{ color4 }};
|
||||
--text-link: {{ blue }};
|
||||
--text-accent: {{ accent }};
|
||||
--text-accent-hover: {{ accent }};
|
||||
--interactive-accent: {{ accent }};
|
||||
@@ -34,23 +34,23 @@
|
||||
--text-faint: color-mix(in srgb, {{ foreground }} 55%, transparent);
|
||||
|
||||
/* Code */
|
||||
--code-normal: {{ color6 }};
|
||||
--code-normal: {{ cyan }};
|
||||
|
||||
/* Errors and success */
|
||||
--text-error: {{ color1 }};
|
||||
--text-error-hover: {{ color1 }};
|
||||
--text-success: {{ color2 }};
|
||||
--text-error: {{ red }};
|
||||
--text-error-hover: {{ red }};
|
||||
--text-success: {{ green }};
|
||||
|
||||
/* Tags */
|
||||
--tag-color: {{ color6 }};
|
||||
--tag-background: {{ color8 }};
|
||||
--tag-color: {{ cyan }};
|
||||
--tag-background: {{ muted }};
|
||||
|
||||
/* Graph */
|
||||
--graph-line: {{ color8 }};
|
||||
--graph-line: {{ muted }};
|
||||
--graph-node: {{ accent }};
|
||||
--graph-node-focused: {{ color4 }};
|
||||
--graph-node-tag: {{ color6 }};
|
||||
--graph-node-attachment: {{ color2 }};
|
||||
--graph-node-focused: {{ blue }};
|
||||
--graph-node-tag: {{ cyan }};
|
||||
--graph-node-attachment: {{ green }};
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
@@ -63,16 +63,16 @@
|
||||
|
||||
/* Code blocks */
|
||||
.markdown-rendered code {
|
||||
color: {{ color6 }};
|
||||
color: {{ cyan }};
|
||||
}
|
||||
|
||||
/* Syntax highlighting */
|
||||
.cm-s-obsidian span.cm-keyword { color: {{ color1 }}; }
|
||||
.cm-s-obsidian span.cm-string { color: {{ color2 }}; }
|
||||
.cm-s-obsidian span.cm-number { color: {{ color3 }}; }
|
||||
.cm-s-obsidian span.cm-comment { color: {{ color8 }}; }
|
||||
.cm-s-obsidian span.cm-operator { color: {{ color4 }}; }
|
||||
.cm-s-obsidian span.cm-def { color: {{ color4 }}; }
|
||||
.cm-s-obsidian span.cm-keyword { color: {{ red }}; }
|
||||
.cm-s-obsidian span.cm-string { color: {{ green }}; }
|
||||
.cm-s-obsidian span.cm-number { color: {{ yellow }}; }
|
||||
.cm-s-obsidian span.cm-comment { color: {{ muted }}; }
|
||||
.cm-s-obsidian span.cm-operator { color: {{ blue }}; }
|
||||
.cm-s-obsidian span.cm-def { color: {{ blue }}; }
|
||||
|
||||
/* Links */
|
||||
.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]
|
||||
# Regular colors
|
||||
background = '{{ background }}'
|
||||
black = '{{ color0 }}'
|
||||
blue = '{{ color4 }}'
|
||||
cyan = '{{ color6 }}'
|
||||
black = '{{ background }}'
|
||||
blue = '{{ blue }}'
|
||||
cyan = '{{ cyan }}'
|
||||
foreground = '{{ foreground }}'
|
||||
green = '{{ color2 }}'
|
||||
magenta = '{{ color5 }}'
|
||||
red = '{{ color1 }}'
|
||||
white = '{{ color15 }}'
|
||||
yellow = '{{ color11 }}'
|
||||
green = '{{ green }}'
|
||||
magenta = '{{ magenta }}'
|
||||
red = '{{ red }}'
|
||||
white = '{{ foreground }}'
|
||||
yellow = '{{ yellow }}'
|
||||
|
||||
# Cursor
|
||||
cursor = '{{ cursor }}'
|
||||
cursor = '{{ bright_foreground }}'
|
||||
vi-cursor = '{{ accent }}'
|
||||
|
||||
# Navigation
|
||||
# tabs and tabs-active set the inactive/active tab title colors.
|
||||
# Tab island backgrounds are derived from the window background color.
|
||||
tabs = '{{ color8 }}'
|
||||
tabs-active = '{{ color15 }}'
|
||||
split = '{{ color8 }}'
|
||||
split-active = '{{ color15 }}'
|
||||
tabs = '{{ muted }}'
|
||||
tabs-active = '{{ selection }}'
|
||||
split = '{{ muted }}'
|
||||
split-active = '{{ selection }}'
|
||||
|
||||
# Search
|
||||
search-match-background = '{{ color12 }}'
|
||||
search-match-foreground = '{{ color15 }}'
|
||||
search-focused-match-background = '{{ color3 }}'
|
||||
search-focused-match-foreground = '{{ color15 }}'
|
||||
search-match-background = '{{ light_background }}'
|
||||
search-match-foreground = '{{ dark_foreground }}'
|
||||
search-focused-match-background = '{{ lighter_background }}'
|
||||
search-focused-match-foreground = '{{ dark_foreground }}'
|
||||
|
||||
# Selection
|
||||
selection-foreground = '{{ selection_foreground }}'
|
||||
selection-background = '{{ selection_background }}'
|
||||
|
||||
# Dim colors
|
||||
dim-black = '{{ color0 }}'
|
||||
dim-blue = '{{ color4 }}'
|
||||
dim-cyan = '{{ color6 }}'
|
||||
dim-black = '{{ background }}'
|
||||
dim-blue = '{{ blue }}'
|
||||
dim-cyan = '{{ cyan }}'
|
||||
dim-foreground = '{{ foreground }}'
|
||||
dim-green = '{{ color2 }}'
|
||||
dim-magenta = '{{ color5 }}'
|
||||
dim-red = '{{ color1 }}'
|
||||
dim-white = '{{ color15 }}'
|
||||
dim-yellow = '{{ color11 }}'
|
||||
dim-green = '{{ green }}'
|
||||
dim-magenta = '{{ magenta }}'
|
||||
dim-red = '{{ red }}'
|
||||
dim-white = '{{ foreground }}'
|
||||
dim-yellow = '{{ yellow }}'
|
||||
|
||||
# Light colors
|
||||
light-black = '{{ color8 }}'
|
||||
light-blue = '{{ color12 }}'
|
||||
light-cyan = '{{ color14 }}'
|
||||
light-foreground = '{{ foreground }}'
|
||||
light-green = '{{ color10 }}'
|
||||
light-magenta = '{{ color13 }}'
|
||||
light-red = '{{ color9 }}'
|
||||
light-white = '{{ color15 }}'
|
||||
light-yellow = '{{ color11 }}'
|
||||
light-black = '{{ lighter_background }}'
|
||||
light-blue = '{{ bright_blue }}'
|
||||
light-cyan = '{{ bridht_cyan }}'
|
||||
light-foreground = '{{ bright_foreground }}'
|
||||
light-green = '{{ bright_green }}'
|
||||
light-magenta = '{{ bright_magenta }}'
|
||||
light-red = '{{ bright_red}}'
|
||||
light-white = '{{ bright_foreground }}'
|
||||
light-yellow = '{{ bright_yellow }}'
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
* {
|
||||
background: {{ background }};
|
||||
foreground: {{ foreground }};
|
||||
active-background: {{ color2 }};
|
||||
urgent-background: {{ color1 }};
|
||||
active-background: {{ lighter_background }};
|
||||
urgent-background: {{ accent }};
|
||||
|
||||
normal-foreground: {{ color3 }};
|
||||
normal-background: {{ background }};
|
||||
normal-foreground: {{ dark_foreground }};
|
||||
normal-background: {{ dark_background }};
|
||||
|
||||
selected-foreground: {{ selection_foreground }};
|
||||
selected-background: {{ selection_background }};
|
||||
|
||||
seperator-color: {{ background }};
|
||||
border-color: {{ color0 }};
|
||||
border-color: {{ accent }};
|
||||
|
||||
prompt-color: {{ color4 }};
|
||||
prompt-background-color: {{ color0 }};
|
||||
prompt-color: {{ light_foreground }};
|
||||
prompt-background-color: {{ darker_background }};
|
||||
|
||||
window-border-size: 1px;
|
||||
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"
|
||||
background = "{{ background }}"
|
||||
surface = "{{ color0 }}"
|
||||
surface = "{{ darker_background }}"
|
||||
text = "{{ foreground }}"
|
||||
accent = "{{ color7 }}"
|
||||
danger = "{{ color1 }}"
|
||||
muted = "{{ color8 }}"
|
||||
highlight = "{{ color4 }}"
|
||||
border = "{{ color2 }}"
|
||||
dim_text = "{{ color3 }}"
|
||||
accent = "{{ accent }}"
|
||||
danger = "{{ red }}"
|
||||
muted = "{{ muted }}"
|
||||
highlight = "{{ selection }}"
|
||||
border = "{{ light_foreground }}"
|
||||
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_bg1="{{ color0 }}"
|
||||
color_bg2="{{ color7 }}"
|
||||
color_bg1="{{ dark_background }}"
|
||||
color_bg2="{{ darker_background }}"
|
||||
color_fg0="{{ foreground }}"
|
||||
color_fg1="{{ color3 }}"
|
||||
color_fg1="{{ light_foreground }}"
|
||||
|
||||
color_status_fg="{{ color4 }}"
|
||||
color_status_bg="{{ color0 }}"
|
||||
color_status_fg="{{ light_foreground }}"
|
||||
color_status_bg="{{ muted }}"
|
||||
|
||||
color_selected_fg="{{ selection_foreground }}"
|
||||
color_selected_bg="{{ selection_background }}"
|
||||
|
||||
color_highlight_fg="{{ color2 }}"
|
||||
color_highlight_fg="{{ yellow }}"
|
||||
color_highlight_bg="{{ background }}"
|
||||
|
||||
color_current_fg="{{ color1 }}"
|
||||
color_current_fg="{{ orange }}"
|
||||
color_current_bg="{{ background }}"
|
||||
|
||||
color_check_fg="{{ color5 }}"
|
||||
color_check_fg="{{ green }}"
|
||||
|
||||
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_bg "${color_highlight_bg}"
|
||||
|
||||
@@ -63,7 +63,7 @@ dotfiles.default_mode = "symlink-each"
|
||||
"~/.local/share/fonts/" = { source = "fonts", mode = "copy" }
|
||||
|
||||
# Desktop files
|
||||
"~/.local/share/applications" = "desktop"
|
||||
"~/.local/share/applications" = { source = "desktop", mode = "symlink-each" }
|
||||
|
||||
# scripts.
|
||||
"~/.local/bin/hyprland-activeworkspace" = { source = "script/hyprland-activeworkspace", mode = "symlink" }
|
||||
@@ -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-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-color" = { source = "script/omarchy-theme-color", 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-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"
|
||||
NEXT_THEME_DIR="$HOME/.local/state/omarchy/current/next-theme"
|
||||
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")
|
||||
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}"
|
||||
}
|
||||
|
||||
# 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
|
||||
if [[ -f $COLORS_FILE ]]; then
|
||||
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
|
||||
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)
|
||||
for tpl in "$USER_TEMPLATES_DIR"/*.tpl "$TEMPLATES_DIR"/*.tpl; do
|
||||
for tpl in "${template_files[@]}"; do
|
||||
filename=$(basename "$tpl" .tpl)
|
||||
output_path="$NEXT_THEME_DIR/$filename"
|
||||
|
||||
@@ -55,3 +400,5 @@ if [[ -f $COLORS_FILE ]]; then
|
||||
|
||||
rm "$sed_script"
|
||||
fi
|
||||
|
||||
apply_shell_section_overrides
|
||||
|
||||
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 714 B |
@@ -1,23 +1,31 @@
|
||||
accent = "#1e66f5"
|
||||
cursor = "#dc8a78"
|
||||
foreground = "#4c4f69"
|
||||
background = "#eff1f5"
|
||||
selection_foreground = "#eff1f5"
|
||||
selection_background = "#dc8a78"
|
||||
mode = "light"
|
||||
|
||||
color0 = "#bcc0cc"
|
||||
color1 = "#d20f39"
|
||||
color2 = "#40a02b"
|
||||
color3 = "#df8e1d"
|
||||
color4 = "#1e66f5"
|
||||
color5 = "#ea76cb"
|
||||
color6 = "#179299"
|
||||
color7 = "#5c5f77"
|
||||
color8 = "#acb0be"
|
||||
color9 = "#d20f39"
|
||||
color10 = "#40a02b"
|
||||
color11 = "#df8e1d"
|
||||
color12 = "#1e66f5"
|
||||
color13 = "#ea76cb"
|
||||
color14 = "#179299"
|
||||
color15 = "#6c6f85"
|
||||
accent = "#1e66f5"
|
||||
selection = "#ccd0da"
|
||||
muted = "#acb0be"
|
||||
|
||||
background = "#eff1f5"
|
||||
dark_background = "#e3e4e8"
|
||||
darker_background = "#d7d8dc"
|
||||
lighter_background = "#dce0e8"
|
||||
|
||||
foreground = "#4c4f69"
|
||||
dark_foreground = "#9ca0b0"
|
||||
light_foreground = "#5c5f77"
|
||||
bright_foreground = "#4c4f69"
|
||||
|
||||
red = "#d20f39"
|
||||
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"
|
||||
cursor = "#f5e0dc"
|
||||
foreground = "#cdd6f4"
|
||||
background = "#1e1e2e"
|
||||
selection_foreground = "#1e1e2e"
|
||||
selection_background = "#f5e0dc"
|
||||
mode = "dark"
|
||||
|
||||
color0 = "#45475a"
|
||||
color1 = "#f38ba8"
|
||||
color2 = "#a6e3a1"
|
||||
color3 = "#f9e2af"
|
||||
color4 = "#89b4fa"
|
||||
color5 = "#f5c2e7"
|
||||
color6 = "#94e2d5"
|
||||
color7 = "#bac2de"
|
||||
color8 = "#585b70"
|
||||
color9 = "#f38ba8"
|
||||
color10 = "#a6e3a1"
|
||||
color11 = "#f9e2af"
|
||||
color12 = "#89b4fa"
|
||||
color13 = "#f5c2e7"
|
||||
color14 = "#94e2d5"
|
||||
color15 = "#a6adc8"
|
||||
accent = "#89b4fa"
|
||||
selection = "#45475a"
|
||||
muted = "#585b70"
|
||||
|
||||
background = "#1e1e2e"
|
||||
dark_background = "#161622"
|
||||
darker_background = "#101019"
|
||||
lighter_background = "#313244"
|
||||
|
||||
foreground = "#cdd6f4"
|
||||
dark_foreground = "#6c7086"
|
||||
light_foreground = "#bac2de"
|
||||
bright_foreground = "#cdd6f4"
|
||||
|
||||
red = "#f38ba8"
|
||||
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"
|
||||
cursor = "#ffcead"
|
||||
foreground = "#ffcead"
|
||||
background = "#060B1E"
|
||||
selection_foreground = "#060B1E"
|
||||
selection_background = "#ffcead"
|
||||
mode = "dark"
|
||||
|
||||
color0 = "#3C486D"
|
||||
color1 = "#ED5B5A"
|
||||
color2 = "#92a593"
|
||||
color3 = "#E9BB4F"
|
||||
color4 = "#7d82d9"
|
||||
color5 = "#c89dc1"
|
||||
color6 = "#a3bfd1"
|
||||
color7 = "#F99957"
|
||||
color8 = "#6d7db6"
|
||||
color9 = "#faaaa9"
|
||||
color10 = "#c4cfc4"
|
||||
color11 = "#f7dc9c"
|
||||
color12 = "#c2c4f0"
|
||||
color13 = "#ead7e7"
|
||||
color14 = "#dfeaf0"
|
||||
color15 = "#ffcead"
|
||||
accent = "#7d82d9"
|
||||
selection = "#252e56"
|
||||
muted = "#6d7db6"
|
||||
|
||||
background = "#060B1E"
|
||||
dark_background = "#040816"
|
||||
darker_background = "#030610"
|
||||
lighter_background = "#131a3a"
|
||||
|
||||
foreground = "#ffcead"
|
||||
dark_foreground = "#6d7db6"
|
||||
light_foreground = "#c9b8a6"
|
||||
bright_foreground = "#ffcead"
|
||||
|
||||
red = "#ED5B5A"
|
||||
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"
|
||||
cursor = "#d3c6aa"
|
||||
foreground = "#d3c6aa"
|
||||
background = "#2d353b"
|
||||
selection_foreground = "#2d353b"
|
||||
selection_background = "#d3c6aa"
|
||||
mode = "dark"
|
||||
|
||||
color0 = "#475258"
|
||||
color1 = "#e67e80"
|
||||
color2 = "#a7c080"
|
||||
color3 = "#dbbc7f"
|
||||
color4 = "#7fbbb3"
|
||||
color5 = "#d699b6"
|
||||
color6 = "#83c092"
|
||||
color7 = "#d3c6aa"
|
||||
color8 = "#475258"
|
||||
color9 = "#e67e80"
|
||||
color10 = "#a7c080"
|
||||
color11 = "#dbbc7f"
|
||||
color12 = "#7fbbb3"
|
||||
color13 = "#d699b6"
|
||||
color14 = "#83c092"
|
||||
color15 = "#d3c6aa"
|
||||
accent = "#7fbbb3"
|
||||
selection = "#3d484d"
|
||||
muted = "#475258"
|
||||
|
||||
background = "#2d353b"
|
||||
dark_background = "#21272c"
|
||||
darker_background = "#181d20"
|
||||
lighter_background = "#343f44"
|
||||
|
||||
foreground = "#d3c6aa"
|
||||
dark_foreground = "#4f585e"
|
||||
light_foreground = "#9da9a0"
|
||||
bright_foreground = "#d3c6aa"
|
||||
|
||||
red = "#e67e80"
|
||||
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"
|
||||
cursor = "#100F0F"
|
||||
foreground = "#100F0F"
|
||||
background = "#FFFCF0"
|
||||
selection_foreground = "#100F0F"
|
||||
selection_background = "#CECDC3"
|
||||
mode = "light"
|
||||
|
||||
color0 = "#DAD8CE"
|
||||
color1 = "#D14D41"
|
||||
color2 = "#879A39"
|
||||
color3 = "#D0A215"
|
||||
color4 = "#205EA6"
|
||||
color5 = "#CE5D97"
|
||||
color6 = "#3AA99F"
|
||||
color7 = "#B7B5AC"
|
||||
color8 = "#100F0F"
|
||||
color9 = "#D14D41"
|
||||
color10 = "#879A39"
|
||||
color11 = "#D0A215"
|
||||
color12 = "#4385BE"
|
||||
color13 = "#CE5D97"
|
||||
color14 = "#3AA99F"
|
||||
color15 = "#CECDC3"
|
||||
accent = "#205EA6"
|
||||
selection = "#CECDC3"
|
||||
muted = "#B7B5AC"
|
||||
|
||||
background = "#FFFCF0"
|
||||
dark_background = "#f2efe4"
|
||||
darker_background = "#e5e2d8"
|
||||
lighter_background = "#E6E4D9"
|
||||
|
||||
foreground = "#100F0F"
|
||||
dark_foreground = "#878580"
|
||||
light_foreground = "#403E3C"
|
||||
bright_foreground = "#100F0F"
|
||||
|
||||
red = "#D14D41"
|
||||
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"
|
||||
cursor = "#bdae93"
|
||||
foreground = "#d4be98"
|
||||
background = "#282828"
|
||||
selection_foreground = "#ebdbb2"
|
||||
selection_background = "#d65d0e"
|
||||
mode = "dark"
|
||||
|
||||
color0 = "#3c3836"
|
||||
color1 = "#ea6962"
|
||||
color2 = "#a9b665"
|
||||
color3 = "#d8a657"
|
||||
color4 = "#7daea3"
|
||||
color5 = "#d3869b"
|
||||
color6 = "#89b482"
|
||||
color7 = "#d4be98"
|
||||
color8 = "#3c3836"
|
||||
color9 = "#ea6962"
|
||||
color10 = "#a9b665"
|
||||
color11 = "#d8a657"
|
||||
color12 = "#7daea3"
|
||||
color13 = "#d3869b"
|
||||
color14 = "#89b482"
|
||||
color15 = "#d4be98"
|
||||
accent = "#7daea3"
|
||||
selection = "#504945"
|
||||
muted = "#665c54"
|
||||
|
||||
background = "#282828"
|
||||
dark_background = "#1e1e1e"
|
||||
darker_background = "#161616"
|
||||
lighter_background = "#3c3836"
|
||||
|
||||
foreground = "#d4be98"
|
||||
dark_foreground = "#7c6f64"
|
||||
light_foreground = "#bdae93"
|
||||
bright_foreground = "#d4be98"
|
||||
|
||||
red = "#ea6962"
|
||||
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"
|
||||
cursor = "#ddf7ff"
|
||||
foreground = "#ddf7ff"
|
||||
background = "#0B0C16"
|
||||
selection_foreground = "#0B0C16"
|
||||
selection_background = "#ddf7ff"
|
||||
mode = "dark"
|
||||
|
||||
color0 = "#3E4058"
|
||||
color1 = "#50f872"
|
||||
color2 = "#4fe88f"
|
||||
color3 = "#50f7d4"
|
||||
color4 = "#829dd4"
|
||||
color5 = "#86a7df"
|
||||
color6 = "#7cf8f7"
|
||||
color7 = "#85E1FB"
|
||||
color8 = "#6a6e95"
|
||||
color9 = "#85ff9d"
|
||||
color10 = "#9cf7c2"
|
||||
color11 = "#a4ffec"
|
||||
color12 = "#c4d2ed"
|
||||
color13 = "#cddbf4"
|
||||
color14 = "#d1fffe"
|
||||
color15 = "#ddf7ff"
|
||||
accent = "#82FB9C"
|
||||
selection = "#1f253a"
|
||||
muted = "#2d3450"
|
||||
|
||||
background = "#0B0C16"
|
||||
dark_background = "#080910"
|
||||
darker_background = "#06060c"
|
||||
lighter_background = "#151828"
|
||||
|
||||
foreground = "#ddf7ff"
|
||||
dark_foreground = "#6a6e95"
|
||||
light_foreground = "#b5c5db"
|
||||
bright_foreground = "#ddf7ff"
|
||||
|
||||
hyprland_active_border = "rgba(26a269ee) rgba(2ec27eee) 45deg"
|
||||
|
||||
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"
|
||||
cursor = "#c8c093"
|
||||
foreground = "#dcd7ba"
|
||||
background = "#1f1f28"
|
||||
selection_foreground = "#c8c093"
|
||||
selection_background = "#2d4f67"
|
||||
mode = "dark"
|
||||
|
||||
color0 = "#090618"
|
||||
color1 = "#c34043"
|
||||
color2 = "#76946a"
|
||||
color3 = "#c0a36e"
|
||||
color4 = "#7e9cd8"
|
||||
color5 = "#957fb8"
|
||||
color6 = "#6a9589"
|
||||
color7 = "#c8c093"
|
||||
color8 = "#727169"
|
||||
color9 = "#e82424"
|
||||
color10 = "#98bb6c"
|
||||
color11 = "#e6c384"
|
||||
color12 = "#7fb4ca"
|
||||
color13 = "#938aa9"
|
||||
color14 = "#7aa89f"
|
||||
color15 = "#dcd7ba"
|
||||
accent = "#dcd7ba"
|
||||
selection = "#363646"
|
||||
muted = "#54546D"
|
||||
|
||||
background = "#1f1f28"
|
||||
dark_background = "#17171e"
|
||||
darker_background = "#111116"
|
||||
lighter_background = "#223249"
|
||||
|
||||
foreground = "#dcd7ba"
|
||||
dark_foreground = "#727169"
|
||||
light_foreground = "#c8c093"
|
||||
bright_foreground = "#dcd7ba"
|
||||
|
||||
red = "#c34043"
|
||||
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"
|
||||
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_tab_background = "#6fb8e3"
|
||||
|
||||
# Cursor colors
|
||||
cursor = "#f2fcff"
|
||||
red = "#4d86b0"
|
||||
yellow = "#6fa4c9"
|
||||
orange = "#8bc9eb"
|
||||
green = "#5e95bc"
|
||||
cyan = "#b4e4f6"
|
||||
blue = "#6fb8e3"
|
||||
magenta = "#8bc9eb"
|
||||
brown = "#456475"
|
||||
|
||||
# Primary colors
|
||||
foreground = "#d6e2ee"
|
||||
background = "#16242d"
|
||||
|
||||
# Selection colors
|
||||
selection_foreground = "#1b2d40"
|
||||
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"
|
||||
bright_red = "#73a6cb"
|
||||
bright_yellow = "#9dcae5"
|
||||
bright_green = "#86b7d8"
|
||||
bright_cyan = "#d1eef8"
|
||||
bright_blue = "#f2fcff"
|
||||
bright_magenta = "#b1d8ee"
|
||||
|
||||
@@ -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"
|
||||
cursor = "#eaeaea"
|
||||
foreground = "#bebebe"
|
||||
background = "#121212"
|
||||
selection_foreground = "#bebebe"
|
||||
selection_background = "#515151"
|
||||
mode = "dark"
|
||||
|
||||
color0 = "#333333"
|
||||
color1 = "#D35F5F"
|
||||
color2 = "#FFC107"
|
||||
color3 = "#b91c1c"
|
||||
color4 = "#e68e0d"
|
||||
color5 = "#D35F5F"
|
||||
color6 = "#bebebe"
|
||||
color7 = "#bebebe"
|
||||
color8 = "#8a8a8d"
|
||||
color9 = "#B91C1C"
|
||||
color10 = "#FFC107"
|
||||
color11 = "#b90a0a"
|
||||
color12 = "#f59e0b"
|
||||
color13 = "#B91C1C"
|
||||
color14 = "#eaeaea"
|
||||
color15 = "#ffffff"
|
||||
accent = "#e68e0d"
|
||||
selection = "#2a2a2a"
|
||||
muted = "#333333"
|
||||
|
||||
background = "#121212"
|
||||
dark_background = "#0d0d0d"
|
||||
darker_background = "#090909"
|
||||
lighter_background = "#1e1e1e"
|
||||
|
||||
foreground = "#bebebe"
|
||||
dark_foreground = "#555555"
|
||||
light_foreground = "#8a8a8d"
|
||||
bright_foreground = "#bebebe"
|
||||
|
||||
red = "#D35F5F"
|
||||
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"
|
||||
cursor = "#c7c7c7"
|
||||
foreground = "#c2c2b0"
|
||||
background = "#222222"
|
||||
selection_foreground = "#c2c2b0"
|
||||
selection_background = "#78824b"
|
||||
mode = "dark"
|
||||
|
||||
color0 = "#000000"
|
||||
color1 = "#685742"
|
||||
color2 = "#5f875f"
|
||||
color3 = "#b36d43"
|
||||
color4 = "#78824b"
|
||||
color5 = "#bb7744"
|
||||
color6 = "#c9a554"
|
||||
color7 = "#d7c483"
|
||||
color8 = "#666666"
|
||||
color9 = "#685742"
|
||||
color10 = "#5f875f"
|
||||
color11 = "#b36d43"
|
||||
color12 = "#78824b"
|
||||
color13 = "#bb7744"
|
||||
color14 = "#c9a554"
|
||||
color15 = "#d7c483"
|
||||
accent = "#78824b"
|
||||
selection = "#383838"
|
||||
muted = "#666666"
|
||||
|
||||
background = "#222222"
|
||||
dark_background = "#191919"
|
||||
darker_background = "#121212"
|
||||
lighter_background = "#2c2c2c"
|
||||
|
||||
foreground = "#c2c2b0"
|
||||
dark_foreground = "#555555"
|
||||
light_foreground = "#8a8a7e"
|
||||
bright_foreground = "#c2c2b0"
|
||||
|
||||
red = "#685742"
|
||||
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"
|
||||
cursor = "#d8dee9"
|
||||
foreground = "#d8dee9"
|
||||
background = "#2e3440"
|
||||
selection_foreground = "#d8dee9"
|
||||
selection_background = "#4c566a"
|
||||
mode = "dark"
|
||||
|
||||
color0 = "#3b4252"
|
||||
color1 = "#bf616a"
|
||||
color2 = "#a3be8c"
|
||||
color3 = "#ebcb8b"
|
||||
color4 = "#81a1c1"
|
||||
color5 = "#b48ead"
|
||||
color6 = "#88c0d0"
|
||||
color7 = "#e5e9f0"
|
||||
color8 = "#4c566a"
|
||||
color9 = "#bf616a"
|
||||
color10 = "#a3be8c"
|
||||
color11 = "#ebcb8b"
|
||||
color12 = "#81a1c1"
|
||||
color13 = "#b48ead"
|
||||
color14 = "#8fbcbb"
|
||||
color15 = "#eceff4"
|
||||
accent = "#81a1c1"
|
||||
selection = "#434c5e"
|
||||
muted = "#4c566a"
|
||||
|
||||
background = "#2e3440"
|
||||
dark_background = "#222730"
|
||||
darker_background = "#191c23"
|
||||
lighter_background = "#3b4252"
|
||||
|
||||
foreground = "#d8dee9"
|
||||
dark_foreground = "#667080"
|
||||
light_foreground = "#adb5c4"
|
||||
bright_foreground = "#d8dee9"
|
||||
|
||||
red = "#bf616a"
|
||||
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 |