feat: add omarchy theme template system with management scripts
- New default/themed/ templates (alacritty, btop, foot, ghostty, helix, hyprland, hyprlock, kitty, mako, obsidian, rofi, swayosd, tmux, walker, waybar, keyboard.rgb, gum.env, etc.) - Add omarchy-* theme management scripts (install, refresh, set, remove, update, bg-set, colors-from-alacritty, current, etc.) - Add omarchy restart/hook scripts (btop, hyprctl, hypridle, mako, tmux) - Add installer/environment.sh for shared env vars - Add 19 theme directories with colors.toml, vscode.json, backgrounds, and app-specific configs (catppuccin, everforest, gruvbox, nord, tokyo-night, rose-pine, etc.) - Update bing-wallpaper script to use new .config/omarchy path
@@ -0,0 +1,47 @@
|
||||
[colors.primary]
|
||||
background = "{{ background }}"
|
||||
foreground = "{{ foreground }}"
|
||||
|
||||
[colors.cursor]
|
||||
text = "{{ background }}"
|
||||
cursor = "{{ cursor }}"
|
||||
|
||||
[colors.vi_mode_cursor]
|
||||
text = "{{ background }}"
|
||||
cursor = "{{ cursor }}"
|
||||
|
||||
[colors.search.matches]
|
||||
foreground = "{{ background }}"
|
||||
background = "{{ color3 }}"
|
||||
|
||||
[colors.search.focused_match]
|
||||
foreground = "{{ background }}"
|
||||
background = "{{ color1 }}"
|
||||
|
||||
[colors.footer_bar]
|
||||
foreground = "{{ background }}"
|
||||
background = "{{ foreground }}"
|
||||
|
||||
[colors.selection]
|
||||
text = "{{ selection_foreground }}"
|
||||
background = "{{ selection_background }}"
|
||||
|
||||
[colors.normal]
|
||||
black = "{{ color0 }}"
|
||||
red = "{{ color1 }}"
|
||||
green = "{{ color2 }}"
|
||||
yellow = "{{ color3 }}"
|
||||
blue = "{{ color4 }}"
|
||||
magenta = "{{ color5 }}"
|
||||
cyan = "{{ color6 }}"
|
||||
white = "{{ color7 }}"
|
||||
|
||||
[colors.bright]
|
||||
black = "{{ color8 }}"
|
||||
red = "{{ color9 }}"
|
||||
green = "{{ color10 }}"
|
||||
yellow = "{{ color11 }}"
|
||||
blue = "{{ color12 }}"
|
||||
magenta = "{{ color13 }}"
|
||||
cyan = "{{ color14 }}"
|
||||
white = "{{ color15 }}"
|
||||
@@ -0,0 +1,83 @@
|
||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||
theme[main_bg]="{{ background }}"
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="{{ foreground }}"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="{{ foreground }}"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="{{ accent }}"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="{{ color8 }}"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="{{ accent }}"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="{{ color8 }}"
|
||||
|
||||
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
||||
theme[graph_text]="{{ foreground }}"
|
||||
|
||||
# Background color of the percentage meters
|
||||
theme[meter_bg]="{{ color8 }}"
|
||||
|
||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||
theme[proc_misc]="{{ foreground }}"
|
||||
|
||||
# CPU, Memory, Network, Proc box outline colors
|
||||
theme[cpu_box]="{{ color5 }}"
|
||||
theme[mem_box]="{{ color2 }}"
|
||||
theme[net_box]="{{ color1 }}"
|
||||
theme[proc_box]="{{ accent }}"
|
||||
|
||||
# Box divider line and small boxes line color
|
||||
theme[div_line]="{{ color8 }}"
|
||||
|
||||
# Temperature graph color (Green -> Yellow -> Red)
|
||||
theme[temp_start]="{{ color2 }}"
|
||||
theme[temp_mid]="{{ color3 }}"
|
||||
theme[temp_end]="{{ color1 }}"
|
||||
|
||||
# CPU graph colors (Teal -> Lavender)
|
||||
theme[cpu_start]="{{ color6 }}"
|
||||
theme[cpu_mid]="{{ color4 }}"
|
||||
theme[cpu_end]="{{ color5 }}"
|
||||
|
||||
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
||||
theme[free_start]="{{ color5 }}"
|
||||
theme[free_mid]="{{ color4 }}"
|
||||
theme[free_end]="{{ color6 }}"
|
||||
|
||||
# Mem/Disk cached meter (Sapphire -> Lavender)
|
||||
theme[cached_start]="{{ color4 }}"
|
||||
theme[cached_mid]="{{ color6 }}"
|
||||
theme[cached_end]="{{ color5 }}"
|
||||
|
||||
# Mem/Disk available meter (Peach -> Red)
|
||||
theme[available_start]="{{ color3 }}"
|
||||
theme[available_mid]="{{ color1 }}"
|
||||
theme[available_end]="{{ color1 }}"
|
||||
|
||||
# Mem/Disk used meter (Green -> Sky)
|
||||
theme[used_start]="{{ color2 }}"
|
||||
theme[used_mid]="{{ color6 }}"
|
||||
theme[used_end]="{{ color4 }}"
|
||||
|
||||
# Download graph colors (Peach -> Red)
|
||||
theme[download_start]="{{ color3 }}"
|
||||
theme[download_mid]="{{ color1 }}"
|
||||
theme[download_end]="{{ color1 }}"
|
||||
|
||||
# Upload graph colors (Green -> Sky)
|
||||
theme[upload_start]="{{ color2 }}"
|
||||
theme[upload_mid]="{{ color6 }}"
|
||||
theme[upload_end]="{{ color4 }}"
|
||||
|
||||
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
||||
theme[process_start]="{{ color6 }}"
|
||||
theme[process_mid]="{{ color4 }}"
|
||||
theme[process_end]="{{ color5 }}"
|
||||
@@ -0,0 +1 @@
|
||||
{{ background_rgb }}
|
||||
@@ -0,0 +1,25 @@
|
||||
[colors-dark]
|
||||
foreground={{ foreground_strip }}
|
||||
background={{ background_strip }}
|
||||
selection-foreground={{ selection_foreground_strip }}
|
||||
selection-background={{ selection_background_strip }}
|
||||
|
||||
cursor={{ background_strip }} {{ cursor_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 }}
|
||||
|
||||
bright0={{ color8_strip }}
|
||||
bright1={{ color9_strip }}
|
||||
bright2={{ color10_strip }}
|
||||
bright3={{ color11_strip }}
|
||||
bright4={{ color12_strip }}
|
||||
bright5={{ color13_strip }}
|
||||
bright6={{ color14_strip }}
|
||||
bright7={{ color15_strip }}
|
||||
@@ -0,0 +1,22 @@
|
||||
background = {{ background }}
|
||||
foreground = {{ foreground }}
|
||||
cursor-color = {{ cursor }}
|
||||
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 }}
|
||||
@@ -0,0 +1,137 @@
|
||||
# Gum Style (generic) Variables
|
||||
env = FOREGROUND,#{{ foreground }}
|
||||
env = BACKGROUND,#{{ background }}
|
||||
env = BORDER_FOREGROUND,#{{ accent }}
|
||||
env = BORDER_BACKGROUND,#{{ background }}
|
||||
|
||||
# Gum Confirm Style Variables
|
||||
env = GUM_CONFIRM_PROMPT_FOREGROUND,#{{ accent }}
|
||||
env = GUM_CONFIRM_PROMPT_BACKGROUND,#{{ background }}
|
||||
env = GUM_CONFIRM_SELECTED_FOREGROUND,#{{ selection_foreground }}
|
||||
env = GUM_CONFIRM_SELECTED_BACKGROUND,#{{ selection_background }}
|
||||
env = GUM_CONFIRM_UNSELECTED_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_CONFIRM_UNSELECTED_BACKGROUND,#{{ background }}
|
||||
|
||||
# Gum Input Style Variables
|
||||
env = GUM_INPUT_PROMPT_FOREGROUND,#{{ accent }}
|
||||
env = GUM_INPUT_PROMPT_BACKGROUND,#{{ background }}
|
||||
env = GUM_INPUT_PLACEHOLDER_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_INPUT_PLACEHOLDER_BACKGROUND,#{{ background }}
|
||||
env = GUM_INPUT_CURSOR_FOREGROUND,#{{ cursor }}
|
||||
env = GUM_INPUT_CURSOR_BACKGROUND,#{{ background }}
|
||||
env = GUM_INPUT_HEADER_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_INPUT_HEADER_BACKGROUND,#{{ background }}
|
||||
|
||||
# Gum Choose Style Variables
|
||||
env = GUM_CHOOSE_CURSOR_FOREGROUND,#{{ accent }}
|
||||
env = GUM_CHOOSE_CURSOR_BACKGROUND,#{{ background }}
|
||||
env = GUM_CHOOSE_HEADER_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_CHOOSE_HEADER_BACKGROUND,#{{ background }}
|
||||
env = GUM_CHOOSE_ITEM_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_CHOOSE_ITEM_BACKGROUND,#{{ background }}
|
||||
env = GUM_CHOOSE_SELECTED_FOREGROUND,#{{ selection_foreground }}
|
||||
env = GUM_CHOOSE_SELECTED_BACKGROUND,#{{ selection_background }}
|
||||
|
||||
# Gum Filter Style Variables
|
||||
env = GUM_FILTER_PROMPT_FOREGROUND,#{{ accent }}
|
||||
env = GUM_FILTER_PROMPT_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILTER_TEXT_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_FILTER_TEXT_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILTER_MATCH_FOREGROUND,#{{ accent }}
|
||||
env = GUM_FILTER_CURSOR_TEXT_FOREGROUND,#{{ cursor }}
|
||||
env = GUM_FILTER_CURSOR_TEXT_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILTER_SELECTED_FOREGROUND,#{{ selection_foreground }}
|
||||
env = GUM_FILTER_SELECTED_BACKGROUND,#{{ selection_background }}
|
||||
env = GUM_FILTER_INDICATOR_FOREGROUND,#{{ accent }}
|
||||
env = GUM_FILTER_HEADER_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_FILTER_MATCH_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILTER_HEADER_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILTER_PLACEHOLDER_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_FILTER_PLACEHOLDER_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILTER_INDICATOR_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILTER_SELECTED_PREFIX_FOREGROUND,#{{ selection_foreground }}
|
||||
env = GUM_FILTER_SELECTED_PREFIX_BACKGROUND,#{{ selection_background }}
|
||||
env = GUM_FILTER_UNSELECTED_PREFIX_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_FILTER_UNSELECTED_PREFIX_BACKGROUND,#{{ background }}
|
||||
|
||||
# Gum Table Style Variables
|
||||
env = GUM_TABLE_HEADER_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_TABLE_HEADER_BACKGROUND,#{{ background }}
|
||||
env = GUM_TABLE_CELL_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_TABLE_CELL_BACKGROUND,#{{ background }}
|
||||
env = GUM_TABLE_BORDER_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_TABLE_BORDER_BACKGROUND,#{{ background }}
|
||||
env = GUM_TABLE_SELECTED_FOREGROUND,#{{ selection_foreground }}
|
||||
env = GUM_TABLE_SELECTED_BACKGROUND,#{{ selection_background }}
|
||||
|
||||
# Gum Spin Style Variables
|
||||
env = GUM_SPIN_SPINNER_FOREGROUND,#{{ accent }}
|
||||
env = GUM_SPIN_SPINNER_BACKGROUND,#{{ background }}
|
||||
env = GUM_SPIN_TITLE_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_SPIN_TITLE_BACKGROUND,#{{ background }}
|
||||
|
||||
# Gum File Style Variables
|
||||
env = GUM_FILE_CURSOR_FOREGROUND,#{{ cursor }}
|
||||
env = GUM_FILE_CURSOR_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILE_SYMLINK_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_FILE_SYMLINK_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILE_DIRECTORY_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_FILE_DIRECTORY_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILE_FILE_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_FILE_FILE_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILE_PERMISSIONS_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_FILE_PERMISSIONS_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILE_SELECTED_FOREGROUND,#{{ selection_foreground }}
|
||||
env = GUM_FILE_SELECTED_BACKGROUND,#{{ selection_background }}
|
||||
env = GUM_FILE_FILE_SIZE_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_FILE_FILE_SIZE_BACKGROUND,#{{ background }}
|
||||
env = GUM_FILE_HEADER_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_FILE_HEADER_BACKGROUND,#{{ background }}
|
||||
|
||||
# Gum Pager Style Variables
|
||||
env = GUM_PAGER_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_PAGER_BACKGROUND,#{{ background }}
|
||||
env = GUM_PAGER_LINE_NUMBER_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_PAGER_LINE_NUMBER_BACKGROUND,#{{ background }}
|
||||
env = GUM_PAGER_MATCH_FOREGROUND,#{{ accent }}
|
||||
env = GUM_PAGER_MATCH_BACKGROUND,#{{ background }}
|
||||
env = GUM_PAGER_MATCH_HIGH_FOREGROUND,#{{ accent }}
|
||||
env = GUM_PAGER_MATCH_HIGH_BACKGROUND,#{{ background }}
|
||||
env = GUM_PAGER_HELP_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_PAGER_HELP_BACKGROUND,#{{ background }}
|
||||
|
||||
# Gum Write Style Variables
|
||||
env = GUM_WRITE_BASE_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_WRITE_BASE_BACKGROUND,#{{ background }}
|
||||
env = GUM_WRITE_CURSOR_LINE_NUMBER_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_WRITE_CURSOR_LINE_NUMBER_BACKGROUND,#{{ background }}
|
||||
env = GUM_WRITE_CURSOR_LINE_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_WRITE_CURSOR_LINE_BACKGROUND,#{{ selection_background }}
|
||||
env = GUM_WRITE_CURSOR_FOREGROUND,#{{ cursor }}
|
||||
env = GUM_WRITE_CURSOR_BACKGROUND,#{{ background }}
|
||||
env = GUM_WRITE_END_OF_BUFFER_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_WRITE_END_OF_BUFFER_BACKGROUND,#{{ background }}
|
||||
env = GUM_WRITE_LINE_NUMBER_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_WRITE_LINE_NUMBER_BACKGROUND,#{{ background }}
|
||||
env = GUM_WRITE_HEADER_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_WRITE_HEADER_BACKGROUND,#{{ background }}
|
||||
env = GUM_WRITE_PLACEHOLDER_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_WRITE_PLACEHOLDER_BACKGROUND,#{{ background }}
|
||||
env = GUM_WRITE_PROMPT_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_WRITE_PROMPT_BACKGROUND,#{{ background }}
|
||||
|
||||
# Gum Log Style Variables
|
||||
env = GUM_LOG_LEVEL_FOREGROUND,#{{ accent }}
|
||||
env = GUM_LOG_LEVEL_BACKGROUND,#{{ background }}
|
||||
env = GUM_LOG_TIME_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_LOG_TIME_BACKGROUND,#{{ background }}
|
||||
env = GUM_LOG_PREFIX_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_LOG_PREFIX_BACKGROUND,#{{ background }}
|
||||
env = GUM_LOG_MESSAGE_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_LOG_MESSAGE_BACKGROUND,#{{ background }}
|
||||
env = GUM_LOG_KEY_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_LOG_KEY_BACKGROUND,#{{ background }}
|
||||
env = GUM_LOG_VALUE_FOREGROUND,#{{ foreground }}
|
||||
env = GUM_LOG_VALUE_BACKGROUND,#{{ background }}
|
||||
env = GUM_LOG_SEPARATOR_FOREGROUND,#{{ color8 }}
|
||||
env = GUM_LOG_SEPARATOR_BACKGROUND,#{{ background }}
|
||||
@@ -0,0 +1,132 @@
|
||||
# Syntax
|
||||
"keyword" = "color5"
|
||||
"keyword.control" = { fg = "color5", modifiers = ["italic"] }
|
||||
"function" = "color4"
|
||||
"function.builtin" = "color4"
|
||||
"function.macro" = "color5"
|
||||
"type" = "color3"
|
||||
"type.builtin" = "color5"
|
||||
"type.enum.variant" = "color6"
|
||||
"constructor" = "color4"
|
||||
"constant" = "color3"
|
||||
"constant.builtin" = "color3"
|
||||
"constant.numeric" = "color3"
|
||||
"constant.character" = "color6"
|
||||
"constant.character.escape" = "color5"
|
||||
"string" = "color2"
|
||||
"string.regexp" = "color5"
|
||||
"string.special" = "color4"
|
||||
"comment" = { fg = "color8", modifiers = ["italic"] }
|
||||
"variable" = "foreground"
|
||||
"variable.parameter" = { fg = "color5", modifiers = ["italic"] }
|
||||
"variable.builtin" = "color1"
|
||||
"variable.other.member" = "color4"
|
||||
"label" = "color4"
|
||||
"punctuation" = "color8"
|
||||
"punctuation.special" = "color6"
|
||||
"operator" = "color6"
|
||||
"tag" = "color4"
|
||||
"namespace" = { fg = "color3", modifiers = ["italic"] }
|
||||
"special" = "color5"
|
||||
"attribute" = "color3"
|
||||
|
||||
# Markup
|
||||
"markup.heading.1" = "color1"
|
||||
"markup.heading.2" = "color3"
|
||||
"markup.heading.3" = "color3"
|
||||
"markup.heading.4" = "color2"
|
||||
"markup.heading.5" = "color4"
|
||||
"markup.heading.6" = "color5"
|
||||
"markup.list" = "color6"
|
||||
"markup.list.unchecked" = "color8"
|
||||
"markup.list.checked" = "color2"
|
||||
"markup.bold" = { fg = "color1", modifiers = ["bold"] }
|
||||
"markup.italic" = { fg = "color1", modifiers = ["italic"] }
|
||||
"markup.strikethrough" = { modifiers = ["crossed_out"] }
|
||||
"markup.link.url" = { fg = "color4", modifiers = ["italic", "underlined"] }
|
||||
"markup.link.text" = "color5"
|
||||
"markup.link.label" = "color4"
|
||||
"markup.raw" = "color2"
|
||||
"markup.quote" = "color5"
|
||||
|
||||
# Diff
|
||||
"diff.plus" = "color2"
|
||||
"diff.minus" = "color1"
|
||||
"diff.delta" = "color4"
|
||||
|
||||
# Leave the editor background transparent so the terminal background shows through
|
||||
"ui.background" = { }
|
||||
|
||||
"ui.linenr" = { fg = "color8" }
|
||||
"ui.linenr.selected" = { fg = "foreground" }
|
||||
|
||||
# Statusline uses an inverted band (background-color text on foreground-color
|
||||
# background) to guarantee contrast across both light and dark Omarchy themes.
|
||||
"ui.statusline" = { fg = "background", bg = "foreground" }
|
||||
"ui.statusline.inactive" = { fg = "background", bg = "color8" }
|
||||
"ui.statusline.normal" = { fg = "background", bg = "color4", modifiers = ["bold"] }
|
||||
"ui.statusline.insert" = { fg = "background", bg = "color2", modifiers = ["bold"] }
|
||||
"ui.statusline.select" = { fg = "background", bg = "color5", modifiers = ["bold"] }
|
||||
|
||||
"ui.popup" = { fg = "foreground", bg = "background" }
|
||||
"ui.window" = { fg = "color8" }
|
||||
"ui.help" = { fg = "foreground", bg = "background" }
|
||||
|
||||
"ui.bufferline" = { fg = "color8", bg = "background" }
|
||||
"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.inactive" = { fg = "color8" }
|
||||
"ui.text.directory" = { fg = "color4" }
|
||||
|
||||
"ui.virtual" = "color8"
|
||||
"ui.virtual.ruler" = { bg = "color0" }
|
||||
"ui.virtual.indent-guide" = "color8"
|
||||
"ui.virtual.inlay-hint" = { fg = "color8" }
|
||||
"ui.virtual.jump-label" = { fg = "color1", modifiers = ["bold"] }
|
||||
"ui.virtual.whitespace" = "color8"
|
||||
|
||||
"ui.selection" = { bg = "selection_background", fg = "selection_foreground" }
|
||||
|
||||
"ui.cursor" = { fg = "background", bg = "cursor" }
|
||||
"ui.cursor.primary" = { fg = "background", bg = "cursor" }
|
||||
"ui.cursor.match" = { fg = "color3", modifiers = ["bold"] }
|
||||
"ui.cursor.primary.normal" = { fg = "background", bg = "cursor" }
|
||||
"ui.cursor.primary.insert" = { fg = "background", bg = "color2" }
|
||||
"ui.cursor.primary.select" = { fg = "background", bg = "color5" }
|
||||
|
||||
"ui.cursorline.primary" = { bg = "color0" }
|
||||
|
||||
"ui.highlight" = { bg = "color0", modifiers = ["bold"] }
|
||||
|
||||
"ui.menu" = { fg = "foreground", bg = "background" }
|
||||
"ui.menu.selected" = { fg = "background", bg = "foreground", modifiers = ["bold"] }
|
||||
|
||||
"diagnostic.error" = { underline = { color = "color1", style = "curl" } }
|
||||
"diagnostic.warning" = { underline = { color = "color3", style = "curl" } }
|
||||
"diagnostic.info" = { underline = { color = "color4", style = "curl" } }
|
||||
"diagnostic.hint" = { underline = { color = "color6", style = "curl" } }
|
||||
"diagnostic.unnecessary" = { modifiers = ["dim"] }
|
||||
"diagnostic.deprecated" = { modifiers = ["crossed_out"] }
|
||||
|
||||
error = "color1"
|
||||
warning = "color3"
|
||||
info = "color4"
|
||||
hint = "color6"
|
||||
|
||||
[palette]
|
||||
background = "{{ background }}"
|
||||
foreground = "{{ foreground }}"
|
||||
cursor = "{{ cursor }}"
|
||||
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 }}"
|
||||
@@ -0,0 +1,94 @@
|
||||
@define-color foreground {{ foreground }};
|
||||
@define-color background {{ background }};
|
||||
@define-color accent {{ accent }};
|
||||
@define-color muted {{ color8 }};
|
||||
@define-color card_bg {{ color0 }};
|
||||
@define-color text_dark {{ background }};
|
||||
@define-color accent_hover {{ color12 }};
|
||||
@define-color selected_tab {{ accent }};
|
||||
@define-color text {{ foreground }};
|
||||
|
||||
* {
|
||||
all: unset;
|
||||
font-family: JetBrains Mono NF;
|
||||
color: @foreground;
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.window {
|
||||
background: alpha(@background, 0.95);
|
||||
border: solid 2px @accent;
|
||||
margin: 4px;
|
||||
padding: 18px;
|
||||
}
|
||||
|
||||
tabs {
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
|
||||
tabs > tab {
|
||||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
.tab-label {
|
||||
color: @text;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label {
|
||||
text-decoration: underline currentColor;
|
||||
color: @selected_tab;
|
||||
}
|
||||
|
||||
tabs > tab:focus > .tab-label {
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
.page {
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
.image-label {
|
||||
font-size: 12px;
|
||||
padding: 0.25rem;
|
||||
}
|
||||
|
||||
flowboxchild > .card, button > .card {
|
||||
transition: all 0.2s ease;
|
||||
border: solid 2px transparent;
|
||||
border-color: @background;
|
||||
border-radius: 5px;
|
||||
background-color: @card_bg;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card {
|
||||
border: solid 2px @accent;
|
||||
}
|
||||
|
||||
.image {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.region-button {
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 5px;
|
||||
background-color: @accent;
|
||||
color: @text_dark;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.region-button > label {
|
||||
color: @text_dark;
|
||||
}
|
||||
|
||||
.region-button:not(:disabled):hover, .region-button:not(:disabled):focus {
|
||||
background-color: @accent_hover;
|
||||
color: @text_dark;
|
||||
}
|
||||
|
||||
.region-button:disabled {
|
||||
background-color: @muted;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
$activeBorderColor = rgb({{ accent_strip }})
|
||||
|
||||
general {
|
||||
col.active_border = $activeBorderColor
|
||||
}
|
||||
|
||||
group {
|
||||
col.border_active = $activeBorderColor
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
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 }
|
||||
}
|
||||
},
|
||||
group = {
|
||||
col = {
|
||||
border_active = { colors = {"rgb({{ accent_strip }})", "rgb({{ color1_strip }})" }, angle = 45 },
|
||||
border_inactive = { colors = {"rgb({{ color2_strip }})", "rgb({{ color2_strip }})" }, angle = 45 }
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,5 @@
|
||||
$color = rgba({{ background_rgb }}, 1.0)
|
||||
$inner_color = rgba({{ background_rgb }}, 0.8)
|
||||
$outer_color = rgba({{ foreground_rgb }}, 1.0)
|
||||
$font_color = rgba({{ foreground_rgb }}, 1.0)
|
||||
$check_color = rgba({{ accent_rgb }}, 1.0)
|
||||
@@ -0,0 +1 @@
|
||||
{{ accent }}
|
||||
@@ -0,0 +1,27 @@
|
||||
foreground {{ foreground }}
|
||||
background {{ background }}
|
||||
selection_foreground {{ selection_foreground }}
|
||||
selection_background {{ selection_background }}
|
||||
|
||||
cursor {{ cursor }}
|
||||
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 }}
|
||||
@@ -0,0 +1,40 @@
|
||||
text-color={{ foreground }}
|
||||
border-color={{ accent }}
|
||||
background-color={{ background }}
|
||||
|
||||
anchor=top-right
|
||||
group-by=app-name,summary,body
|
||||
default-timeout=5000
|
||||
width=420
|
||||
outer-margin=20
|
||||
padding=10,15
|
||||
border-size=2
|
||||
max-icon-size=32
|
||||
font=sans-serif 14px
|
||||
|
||||
[app-name=Spotify]
|
||||
invisible=1
|
||||
|
||||
[mode=do-not-disturb]
|
||||
invisible=true
|
||||
|
||||
[mode=do-not-disturb app-name=notify-send]
|
||||
invisible=false
|
||||
|
||||
[urgency=critical]
|
||||
default-timeout=0
|
||||
layer=overlay
|
||||
|
||||
[summary~="Setup Wi-Fi"]
|
||||
on-button-left=exec sh -c 'omarchy-notification-dismiss "Setup Wi-Fi"; omarchy-launch-wifi'
|
||||
|
||||
[summary~="Update System"]
|
||||
on-button-left=exec sh -c 'omarchy-notification-dismiss "Update System"; omarchy-launch-floating-terminal-with-presentation omarchy-update'
|
||||
|
||||
[summary~="Install Dictation with Voxtype"]
|
||||
on-button-left=exec sh -c 'omarchy-notification-dismiss "Install Dictation with Voxtype"; omarchy-launch-floating-terminal-with-presentation omarchy-voxtype-install'
|
||||
|
||||
[summary~="Screenshot copied & saved"]
|
||||
max-icon-size=80
|
||||
format=<b>%s</b>\n%b
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
/* Omarchy Theme for Obsidian */
|
||||
|
||||
.theme-dark, .theme-light {
|
||||
/* Core colors */
|
||||
--background-primary: {{ background }};
|
||||
--background-primary-alt: {{ background }};
|
||||
--background-secondary: {{ background }};
|
||||
--background-secondary-alt: {{ background }};
|
||||
--text-normal: {{ foreground }};
|
||||
|
||||
/* Selection colors */
|
||||
--text-selection: {{ selection_background }};
|
||||
|
||||
/* Border color */
|
||||
--background-modifier-border: {{ color8 }};
|
||||
|
||||
/* 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 }};
|
||||
|
||||
/* Links and accents */
|
||||
--text-link: {{ color4 }};
|
||||
--text-accent: {{ accent }};
|
||||
--text-accent-hover: {{ accent }};
|
||||
--interactive-accent: {{ accent }};
|
||||
--interactive-accent-hover: {{ accent }};
|
||||
|
||||
/* Muted text */
|
||||
--text-muted: color-mix(in srgb, {{ foreground }} 70%, transparent);
|
||||
--text-faint: color-mix(in srgb, {{ foreground }} 55%, transparent);
|
||||
|
||||
/* Code */
|
||||
--code-normal: {{ color6 }};
|
||||
|
||||
/* Errors and success */
|
||||
--text-error: {{ color1 }};
|
||||
--text-error-hover: {{ color1 }};
|
||||
--text-success: {{ color2 }};
|
||||
|
||||
/* Tags */
|
||||
--tag-color: {{ color6 }};
|
||||
--tag-background: {{ color8 }};
|
||||
|
||||
/* Graph */
|
||||
--graph-line: {{ color8 }};
|
||||
--graph-node: {{ accent }};
|
||||
--graph-node-focused: {{ color4 }};
|
||||
--graph-node-tag: {{ color6 }};
|
||||
--graph-node-attachment: {{ color2 }};
|
||||
}
|
||||
|
||||
/* Headers */
|
||||
.cm-header-1, .markdown-rendered h1 { color: var(--text-title-h1); }
|
||||
.cm-header-2, .markdown-rendered h2 { color: var(--text-title-h2); }
|
||||
.cm-header-3, .markdown-rendered h3 { color: var(--text-title-h3); }
|
||||
.cm-header-4, .markdown-rendered h4 { color: var(--text-title-h4); }
|
||||
.cm-header-5, .markdown-rendered h5 { color: var(--text-title-h5); }
|
||||
.cm-header-6, .markdown-rendered h6 { color: var(--text-title-h6); }
|
||||
|
||||
/* Code blocks */
|
||||
.markdown-rendered code {
|
||||
color: {{ color6 }};
|
||||
}
|
||||
|
||||
/* 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 }}; }
|
||||
|
||||
/* Links */
|
||||
.markdown-rendered a {
|
||||
color: var(--text-link);
|
||||
}
|
||||
|
||||
/* Blockquotes */
|
||||
.markdown-rendered blockquote {
|
||||
border-left-color: {{ accent }};
|
||||
}
|
||||
|
||||
/* Active elements */
|
||||
.workspace-leaf.mod-active .workspace-leaf-header-title {
|
||||
color: var(--interactive-accent);
|
||||
}
|
||||
|
||||
.nav-file-title.is-active {
|
||||
color: var(--interactive-accent);
|
||||
}
|
||||
|
||||
/* Search results */
|
||||
.search-result-file-title {
|
||||
color: var(--interactive-accent);
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
* {
|
||||
background: {{ background }};
|
||||
foreground: {{ foreground }};
|
||||
active-background: {{ color2 }};
|
||||
urgent-background: {{ color1 }};
|
||||
|
||||
normal-foreground: {{ color3 }};
|
||||
normal-background: {{ background }};
|
||||
|
||||
selected-foreground: {{ selection_foreground }};
|
||||
selected-background: {{ selection_background }};
|
||||
|
||||
seperator-color: {{ background }};
|
||||
border-color: {{ color0 }};
|
||||
|
||||
prompt-color: {{ color4 }};
|
||||
prompt-background-color: {{ color0 }};
|
||||
|
||||
window-border-size: 1px;
|
||||
window-border-radius: 8px;
|
||||
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
@define-color background-color {{ background }};
|
||||
@define-color border-color {{ foreground }};
|
||||
@define-color label {{ foreground }};
|
||||
@define-color image {{ foreground }};
|
||||
@define-color progress {{ accent }};
|
||||
@@ -0,0 +1,62 @@
|
||||
color_bg0="{{ background }}"
|
||||
color_bg1="{{ color0 }}"
|
||||
color_bg2="{{ color7 }}"
|
||||
color_fg0="{{ foreground }}"
|
||||
color_fg1="{{ color3 }}"
|
||||
|
||||
color_status_fg="{{ color4 }}"
|
||||
color_status_bg="{{ color0 }}"
|
||||
|
||||
color_selected_fg="{{ selection_foreground }}"
|
||||
color_selected_bg="{{ selection_background }}"
|
||||
|
||||
color_highlight_fg="{{ color2 }}"
|
||||
color_highlight_bg="{{ background }}"
|
||||
|
||||
color_current_fg="{{ color1 }}"
|
||||
color_current_bg="{{ background }}"
|
||||
|
||||
color_check_fg="{{ color5 }}"
|
||||
|
||||
pane_border_fg="{{ foreground }}"
|
||||
pane_border_selected_fg="{{ color2 }}"
|
||||
|
||||
set -g @prefix_highlight_fg "${color_highlight_fg}"
|
||||
set -g @prefix_highlight_bg "${color_highlight_bg}"
|
||||
|
||||
# Status bar settings
|
||||
set -g status-style "bg=${color_status_bg},fg=${color_status_fg}"
|
||||
set -g status "on"
|
||||
set -g status-bg "${color_bg0}"
|
||||
set -g status-justify "left"
|
||||
set -g status-left-length "100"
|
||||
set -g status-right-length "100"
|
||||
|
||||
# Messages
|
||||
set -g message-style "fg=${color_selected_fg},bg=${color_selected_bg},align=centre"
|
||||
set -g message-command-style "fg=${color_selected_fg},bg=${color_selected_bg},align=centre"
|
||||
|
||||
# Panes
|
||||
set -g pane-border-style "fg=${pane_border_fg}"
|
||||
set -g pane-active-border-style "fg=${pane_border_selected_fg}"
|
||||
|
||||
# Windows
|
||||
set -g window-status-activity-style "fg=${color_fg0},bg=${color_bg0},none"
|
||||
set -g window-status-separator ""
|
||||
set -g window-status-style "fg=${color_fg0},bg=${color_bg0},none"
|
||||
|
||||
# Statusline - current window
|
||||
set -g window-status-current-format "#[fg=${color_current_fg},bg=${color_current_bg}]#I: #[fg=${color_check_fg},bg=${color_current_bg}](✓) #[fg=${color_current_fg},bg=${color_current_bg}]#W "
|
||||
|
||||
# Statusline - other windows
|
||||
set -g window-status-format "#[fg=${color_highlight_fg},bg=${color_highlight_bg}]#I: #[fg=${color_fg0},bg=${color_highlight_bg}]#W "
|
||||
|
||||
# Statusline - right side
|
||||
set -g status-right "#[fg=${color_fg1},bg=${color_bg0},nobold,nounderscore,noitalics]%Y-%m-%d %H:%M #[fg=${color_fg0},bg=${color_highlight_fg},nobold,nounderscore,noitalics] #[fg=${color_fg0},bg=${color_bg1}] #(echo '#{pane_current_path}' | rev | cut -d'/' -f-2 | rev) #[fg=${color_fg0},bg=${color_current_fg},nobold,nounderscore,noitalics] #[fg=${color_fg0},bg=${color_bg1}] #S "
|
||||
|
||||
# Statusline - left side (empty)
|
||||
set -g status-left ""
|
||||
|
||||
# Modes
|
||||
set -g clock-mode-colour "${color_status_fg}"
|
||||
set -g mode-style "fg=${color_highlight_fg} bg=${color_bg1} bold"
|
||||
@@ -0,0 +1,6 @@
|
||||
@define-color selected-text {{ accent }};
|
||||
@define-color text {{ foreground }};
|
||||
@define-color base {{ background }};
|
||||
@define-color border {{ foreground }};
|
||||
@define-color foreground {{ foreground }};
|
||||
@define-color background {{ background }};
|
||||
@@ -0,0 +1,2 @@
|
||||
@define-color foreground {{ foreground }};
|
||||
@define-color background {{ background }};
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
mkdir -p ${HOME}/.config/environment.d
|
||||
|
||||
${DOTFILES_DIR}/sync-config config/environment.d/
|
||||
echo "DOTFILES_DIR=${DOTFILES_DIR}" | tee -a ${HOME}/.config/environment.d/dotfiles.conf
|
||||
@@ -9,7 +9,7 @@ offset=0
|
||||
[[ "$1" =~ [1-9][0-9]*$ ]] && offset=$1
|
||||
|
||||
BACKGROUNDS_DIR="$HOME/Sync/Shared/wallpapers"
|
||||
CURRENT_BACKGROUND_LINK="$HOME/.local/share/themes/current/background"
|
||||
CURRENT_BACKGROUND_LINK="$HOME/.config/omarchy/current/background"
|
||||
|
||||
url_preffix="http://www.bing.com"
|
||||
xml_url="https://cn.bing.com/HPImageArchive.aspx?format=xml&idx=$offset&n=10&nc=1612409408851&pid=hp&FORM=BEHPTB&uhd=1&uhdwidth=3840&uhdheight=2160"
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Check whether any required commands are missing
|
||||
|
||||
for cmd in "$@"; do
|
||||
if ! command -v "$cmd" &>/dev/null; then
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
exit 1
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Check whether all required commands are available
|
||||
|
||||
for cmd in "$@"; do
|
||||
command -v "$cmd" &>/dev/null || exit 1
|
||||
done
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Run a named hook from ~/.config/omarchy/hooks/<name> and ~/.config/omarchy/hooks/<name>.d/.
|
||||
# omarchy:args=[name] [args...]
|
||||
|
||||
set -e
|
||||
|
||||
if (( $# < 1 )); then
|
||||
echo "Usage: omarchy-hook [name] [args...]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
HOOK=$1
|
||||
HOOK_PATH="$HOME/.config/omarchy/hooks/$1"
|
||||
HOOK_DIR="$HOOK_PATH.d"
|
||||
shift
|
||||
|
||||
if [[ -f $HOOK_PATH ]]; then
|
||||
bash "$HOOK_PATH" "$@" || echo "Hook failed: $HOOK_PATH"
|
||||
fi
|
||||
|
||||
if [[ -d $HOOK_DIR ]]; then
|
||||
for hook in "$HOOK_DIR"/*; do
|
||||
[[ -f $hook ]] || continue
|
||||
[[ $hook == *.sample ]] && continue
|
||||
bash "$hook" "$@" || echo "Hook failed: $hook"
|
||||
done
|
||||
fi
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Reload btop configuration (used by the Omarchy theme switching).
|
||||
|
||||
pkill -SIGUSR2 btop
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Reload hyprland configuration (used by the Omarchy theme switching).
|
||||
|
||||
hyprctl reload >/dev/null
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Restart the hypridle service (used for idle detection and auto-lock).
|
||||
|
||||
omarchy-restart-app hypridle
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Reload mako configuration (used by the Omarchy theme switching).
|
||||
|
||||
makoctl reload
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Restart tmux if running with the latest configuration
|
||||
|
||||
if pgrep --quiet tmux; then
|
||||
tmux source-file ~/.config/tmux/tmux.conf
|
||||
fi
|
||||
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Set the current background image
|
||||
# omarchy:args=<path-to-image>
|
||||
# omarchy:examples=omarchy theme bg set ~/Pictures/wallpaper.png
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
echo "Usage: omarchy-theme-bg-set <path-to-image>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BACKGROUND="$(realpath "$1")"
|
||||
CURRENT_BACKGROUND_LINK="$HOME/.config/omarchy/current/background"
|
||||
|
||||
if [[ ! -f "$BACKGROUND" ]]; then
|
||||
echo "File does not exist: $BACKGROUND" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create symlink to the new background
|
||||
ln -nsf "$BACKGROUND" "$CURRENT_BACKGROUND_LINK"
|
||||
|
||||
# Kill existing swaybg and start new one
|
||||
pkill -x swaybg
|
||||
setsid uwsm-app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 &
|
||||
@@ -0,0 +1,211 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Generate a theme's colors.toml from its alacritty.toml palette
|
||||
# omarchy:args=<theme-dir>
|
||||
# omarchy:hidden=true
|
||||
|
||||
set -e
|
||||
|
||||
THEME_SOURCE="${1:-}"
|
||||
COLORS_OUTPUT="$THEME_SOURCE/colors.toml"
|
||||
ALACRITTY_FILE="$THEME_SOURCE/alacritty.toml"
|
||||
|
||||
if [[ -z $THEME_SOURCE ]]; then
|
||||
echo "Usage: omarchy-theme-colors-from-alacritty <theme-dir>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Skip if colors.toml already exists in source theme
|
||||
if [[ -f $COLORS_OUTPUT ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Skip if no alacritty.toml to extract from
|
||||
if [[ ! -f $ALACRITTY_FILE ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
normalize_hex() {
|
||||
local color="$1"
|
||||
[[ -z $color ]] && return
|
||||
color="${color#0x}"
|
||||
color="${color#\#}"
|
||||
if [[ $color =~ ^[0-9a-fA-F]{6}$ ]]; then
|
||||
printf "#%s\n" "${color,,}"
|
||||
fi
|
||||
}
|
||||
|
||||
extract_color_in_section() {
|
||||
local section="$1"
|
||||
local key="$2"
|
||||
local color_hex=""
|
||||
color_hex=$(awk -v section="$section" -v key="$key" '
|
||||
function trim(value) {
|
||||
gsub(/^[ \t]+|[ \t]+$/, "", value)
|
||||
return value
|
||||
}
|
||||
|
||||
function strip_comment(value, i, ch, out, in_single, in_double, prev) {
|
||||
out = ""
|
||||
in_single = 0
|
||||
in_double = 0
|
||||
prev = ""
|
||||
|
||||
for (i = 1; i <= length(value); i++) {
|
||||
ch = substr(value, i, 1)
|
||||
|
||||
if (ch == "\"" && !in_single && prev != "\\") {
|
||||
in_double = !in_double
|
||||
} else if (ch == "'\''" && !in_double) {
|
||||
in_single = !in_single
|
||||
}
|
||||
|
||||
if (ch == "#" && !in_single && !in_double) {
|
||||
break
|
||||
}
|
||||
|
||||
out = out ch
|
||||
prev = ch
|
||||
}
|
||||
|
||||
gsub(/[ \t]+$/, "", out)
|
||||
return out
|
||||
}
|
||||
|
||||
/^[ \t]*\[/ {
|
||||
in_section = ($0 ~ "^[ \\t]*\\[" section "\\][ \\t]*$")
|
||||
next
|
||||
}
|
||||
|
||||
in_section {
|
||||
line = $0
|
||||
line = strip_comment(line)
|
||||
|
||||
split_pos = index(line, "=")
|
||||
if (split_pos == 0) {
|
||||
next
|
||||
}
|
||||
|
||||
current_key = trim(substr(line, 1, split_pos - 1))
|
||||
current_value = trim(substr(line, split_pos + 1))
|
||||
|
||||
if (current_key == key) {
|
||||
gsub(/["'\''#]/, "", current_value)
|
||||
sub(/^0[xX]/, "", current_value)
|
||||
if (current_value ~ /^[0-9A-Fa-f]{6}$/) {
|
||||
print current_value
|
||||
exit
|
||||
}
|
||||
}
|
||||
}
|
||||
' "$ALACRITTY_FILE")
|
||||
|
||||
if [[ -n $color_hex && $color_hex =~ ^[0-9a-fA-F]{6}$ ]]; then
|
||||
normalize_hex "$color_hex"
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
names=(black red green yellow blue magenta cyan white)
|
||||
|
||||
# Extract normal colors (color0-7)
|
||||
for i in {0..7}; do
|
||||
name="${names[$i]}"
|
||||
val=$(extract_color_in_section "colors.normal" "$name")
|
||||
if [[ -z $val ]]; then
|
||||
val=$(extract_color_in_section "colors" "normal.$name")
|
||||
fi
|
||||
|
||||
printf -v "color$i" "%s" "$val"
|
||||
done
|
||||
|
||||
# Validate we have all normal colors (required)
|
||||
for c in color0 color1 color2 color3 color4 color5 color6 color7; do
|
||||
if [[ -z ${!c} ]]; then
|
||||
echo "Warning: Cannot extract all normal colors from $ALACRITTY_FILE, skipping generation" >&2
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
# Extract bright colors (color8-15)
|
||||
for i in {0..7}; do
|
||||
normal="color$i"
|
||||
bright="color$((i + 8))"
|
||||
name="${names[$i]}"
|
||||
|
||||
val=$(extract_color_in_section "colors.bright" "$name")
|
||||
if [[ -z $val ]]; then
|
||||
val=$(extract_color_in_section "colors" "bright.$name")
|
||||
fi
|
||||
|
||||
printf -v "$bright" "%s" "${val:-${!normal}}"
|
||||
done
|
||||
|
||||
# Extract primary colors
|
||||
background=$(extract_color_in_section "colors.primary" "background")
|
||||
foreground=$(extract_color_in_section "colors.primary" "foreground")
|
||||
|
||||
if [[ -z $background ]]; then
|
||||
background=$(extract_color_in_section "colors" "primary.background")
|
||||
fi
|
||||
|
||||
if [[ -z $foreground ]]; then
|
||||
foreground=$(extract_color_in_section "colors" "primary.foreground")
|
||||
fi
|
||||
|
||||
# Extract cursor color (from [colors.cursor] section)
|
||||
cursor=$(extract_color_in_section "colors.cursor" "cursor")
|
||||
|
||||
if [[ -z $cursor ]]; then
|
||||
cursor=$(extract_color_in_section "colors" "cursor.cursor")
|
||||
fi
|
||||
|
||||
# Extract selection colors
|
||||
selection_background=$(extract_color_in_section "colors.selection" "background")
|
||||
|
||||
if [[ -z $selection_background ]]; then
|
||||
selection_background=$(extract_color_in_section "colors" "selection.background")
|
||||
fi
|
||||
|
||||
selection_foreground=$(extract_color_in_section "colors.selection" "text")
|
||||
|
||||
if [[ -z $selection_foreground ]]; then
|
||||
selection_foreground=$(extract_color_in_section "colors" "selection.text")
|
||||
fi
|
||||
|
||||
# Apply defaults
|
||||
background=${background:-$color0}
|
||||
foreground=${foreground:-$color7}
|
||||
cursor=${cursor:-$foreground}
|
||||
selection_background=${selection_background:-$foreground}
|
||||
selection_foreground=${selection_foreground:-$background}
|
||||
accent=$color4
|
||||
|
||||
mkdir -p "$THEME_SOURCE"
|
||||
|
||||
cat > "$COLORS_OUTPUT" <<EOF
|
||||
accent = "$accent"
|
||||
cursor = "$cursor"
|
||||
foreground = "$foreground"
|
||||
background = "$background"
|
||||
selection_foreground = "$selection_foreground"
|
||||
selection_background = "$selection_background"
|
||||
|
||||
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"
|
||||
EOF
|
||||
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Show current theme
|
||||
# omarchy:examples=omarchy theme current
|
||||
|
||||
THEME_NAME_PATH="$HOME/.config/omarchy/current/theme.name"
|
||||
|
||||
if [[ -f $THEME_NAME_PATH ]]; then
|
||||
cat $THEME_NAME_PATH | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g'
|
||||
else
|
||||
echo "Unknown"
|
||||
fi
|
||||
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Install a theme from a git repository
|
||||
# omarchy:args=[git-repo-url]
|
||||
# omarchy:examples=omarchy theme install https://github.com/example/omarchy-example-theme.git
|
||||
# omarchy:examples=omarchy theme install git@github.com:example/omarchy-example-theme.git
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
echo -e "\e[32mSee https://manuals.omamix.org/2/the-omarchy-manual/90/extra-themes\n\e[0m"
|
||||
REPO_URL=$(gum input --placeholder="Git repo URL (https or git@host:org/repo.git)" --header="")
|
||||
else
|
||||
REPO_URL="$1"
|
||||
fi
|
||||
|
||||
if [[ -z $REPO_URL ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
THEMES_DIR="$HOME/.config/omarchy/themes"
|
||||
|
||||
# Strip user@host: prefix from scp-style SSH URLs so basename sees just the path
|
||||
REPO_PATH="$REPO_URL"
|
||||
[[ $REPO_PATH != *"://"* && $REPO_PATH == *:*/* ]] && REPO_PATH="${REPO_PATH#*:}"
|
||||
THEME_NAME=$(basename "$REPO_PATH" .git | sed -E 's/^omarchy-//; s/-theme$//' | tr '[:upper:]' '[:lower:]')
|
||||
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
||||
|
||||
# Remove existing theme if present
|
||||
if [[ -d $THEME_PATH ]]; then
|
||||
rm -rf "$THEME_PATH"
|
||||
fi
|
||||
|
||||
# Clone the repo directly to ~/.config/omarchy/themes
|
||||
if ! git clone "$REPO_URL" "$THEME_PATH"; then
|
||||
echo "Error: Failed to clone theme repo."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Apply the new theme with omarchy-theme-set
|
||||
omarchy-theme-set $THEME_NAME
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Refresh the current theme from its templates.
|
||||
|
||||
THEME_NAME_PATH="$HOME/.config/omarchy/current/theme.name"
|
||||
|
||||
if [[ -f $THEME_NAME_PATH ]]; then
|
||||
OMARCHY_THEME_SKIP_BACKGROUND=1 omarchy-theme-set "$(cat $THEME_NAME_PATH)"
|
||||
fi
|
||||
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Remove a user-installed theme
|
||||
# omarchy:args=[theme-name]
|
||||
# omarchy:examples=omarchy theme remove "Tokyo Night"
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
mapfile -t extra_themes < <(find ~/.config/omarchy/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l -printf '%f\n')
|
||||
|
||||
if (( ${#extra_themes[@]} > 0 )); then
|
||||
THEME_NAME=$(printf '%s\n' "${extra_themes[@]}" | sort | gum choose --header="Remove extra theme")
|
||||
else
|
||||
echo "No extra themes installed."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
THEME_NAME="$1"
|
||||
fi
|
||||
|
||||
THEMES_DIR="$HOME/.config/omarchy/themes"
|
||||
CURRENT_DIR="$HOME/.config/omarchy/current"
|
||||
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
||||
|
||||
# Ensure a theme was set
|
||||
if [[ -z $THEME_NAME ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if theme exists before attempting removal
|
||||
if [[ ! -d $THEME_PATH ]]; then
|
||||
echo "Error: Theme '$THEME_NAME' not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Now remove the theme directory for THEME_NAME
|
||||
rm -rf "$THEME_PATH"
|
||||
@@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Apply the current theme color to Chromium, Chrome, Edge, and Brave
|
||||
# omarchy:hidden=true
|
||||
|
||||
CHROMIUM_THEME=~/.config/omarchy/current/theme/chromium.theme
|
||||
|
||||
if [[ -f $CHROMIUM_THEME ]]; then
|
||||
THEME_RGB_COLOR=$(<$CHROMIUM_THEME)
|
||||
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${THEME_RGB_COLOR//,/ })
|
||||
else
|
||||
# Use a default, neutral grey if theme doesn't have a color
|
||||
THEME_HEX_COLOR="#1c2027"
|
||||
fi
|
||||
|
||||
set_browser_policy() {
|
||||
local policy_dir="$1"
|
||||
|
||||
[[ -d $policy_dir ]] || return
|
||||
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\", \"BrowserColorScheme\": \"device\"}" | tee "$policy_dir/color.json" >/dev/null
|
||||
}
|
||||
|
||||
refresh_running_browser() {
|
||||
local process="$1"
|
||||
local command="$2"
|
||||
local pgrep_args="${3:--x}"
|
||||
|
||||
if omarchy-cmd-present "$command" && pgrep $pgrep_args "$process" >/dev/null; then
|
||||
"$command" --refresh-platform-policy --no-startup-window &>/dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
set_browser_policy /etc/chromium/policies/managed
|
||||
refresh_running_browser chromium chromium
|
||||
|
||||
set_browser_policy /etc/opt/chrome/policies/managed
|
||||
refresh_running_browser chrome google-chrome-stable || refresh_running_browser chrome google-chrome
|
||||
|
||||
set_browser_policy /etc/opt/edge/policies/managed
|
||||
refresh_running_browser msedge microsoft-edge-stable
|
||||
|
||||
set_browser_policy /etc/brave/policies/managed
|
||||
refresh_running_browser brave brave
|
||||
refresh_running_browser brave-origin-beta brave-origin-beta -f
|
||||
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Apply current Omarchy theme colors to running Foot terminals
|
||||
# omarchy:hidden=true
|
||||
|
||||
foot_theme=~/.config/omarchy/current/theme/foot.ini
|
||||
|
||||
if [[ ! -f $foot_theme ]] || ! pgrep -x foot >/dev/null; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
foot_osc=$(awk -F= '
|
||||
function color(value) { return "#" value }
|
||||
/^foreground=/ { printf "\033]10;%s\007", color($2) }
|
||||
/^background=/ { printf "\033]11;%s\007", color($2) }
|
||||
/^cursor=/ { split($2, parts, " "); printf "\033]12;%s\007", color(parts[2]) }
|
||||
/^selection-background=/ { printf "\033]17;%s\007", color($2) }
|
||||
/^selection-foreground=/ { printf "\033]19;%s\007", color($2) }
|
||||
/^regular[0-7]=/ { split($1, parts, "regular"); printf "\033]4;%d;%s\007", parts[2], color($2) }
|
||||
/^bright[0-7]=/ { split($1, parts, "bright"); printf "\033]4;%d;%s\007", parts[2] + 8, color($2) }
|
||||
' "$foot_theme")
|
||||
|
||||
for foot_pid in $(pgrep -x foot); do
|
||||
for child_pid in $(pgrep -P "$foot_pid"); do
|
||||
tty=$(readlink "/proc/$child_pid/fd/1" 2>/dev/null)
|
||||
[[ $tty == /dev/pts/* ]] && printf '%b' "$foot_osc" >"$tty"
|
||||
done
|
||||
done
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Apply the current theme to GNOME color mode and icon settings
|
||||
# omarchy:hidden=true
|
||||
|
||||
if [[ -f ~/.config/omarchy/current/theme/light.mode ]]; then
|
||||
gsettings set org.gnome.desktop.interface color-scheme "prefer-light"
|
||||
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita"
|
||||
else
|
||||
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
|
||||
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
|
||||
fi
|
||||
|
||||
# Change gnome icon theme color
|
||||
GNOME_ICONS_THEME=~/.config/omarchy/current/theme/icons.theme
|
||||
if [[ -f $GNOME_ICONS_THEME ]]; then
|
||||
gsettings set org.gnome.desktop.interface icon-theme "$(<$GNOME_ICONS_THEME)"
|
||||
else
|
||||
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
|
||||
fi
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Apply the current theme keyboard color to supported keyboards
|
||||
# omarchy:hidden=true
|
||||
|
||||
omarchy-theme-set-keyboard-asus-rog
|
||||
omarchy-theme-set-keyboard-f16
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Apply the current theme keyboard color to ASUS ROG keyboards
|
||||
# omarchy:hidden=true
|
||||
|
||||
ASUSCTL_THEME=~/.config/omarchy/current/theme/keyboard.rgb
|
||||
|
||||
if omarchy-cmd-present asusctl; then
|
||||
asusctl aura effect static -c $(sed 's/^#//' $ASUSCTL_THEME)
|
||||
fi
|
||||
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Apply the current theme keyboard color to Framework Laptop 16 keyboards
|
||||
# omarchy:hidden=true
|
||||
|
||||
FRAMEWORK16_THEME=~/.config/omarchy/current/theme/keyboard.rgb
|
||||
|
||||
if omarchy-cmd-present qmk_hid && [[ -f $FRAMEWORK16_THEME ]]; then
|
||||
hex=$(cat "$FRAMEWORK16_THEME")
|
||||
hex="${hex#\#}"
|
||||
|
||||
# Convert hex to QMK HSV (0-255 scale) using Python's colorsys
|
||||
read -r h s <<< $(python3 -c "
|
||||
import colorsys
|
||||
r, g, b = int('$hex'[:2],16)/255, int('$hex'[2:4],16)/255, int('$hex'[4:6],16)/255
|
||||
h, s, v = colorsys.rgb_to_hsv(r, g, b)
|
||||
print(int(h * 255), int(s * 255))
|
||||
")
|
||||
|
||||
qmk_hid via --rgb-effect 1 2>/dev/null
|
||||
qmk_hid via --rgb-hue "$h" 2>/dev/null
|
||||
qmk_hid via --rgb-saturation "$s" 2>/dev/null
|
||||
qmk_hid via --rgb-brightness 100 2>/dev/null
|
||||
qmk_hid via --save 2>/dev/null
|
||||
fi
|
||||
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Sync Omarchy theme to all Obsidian vaults
|
||||
# omarchy:hidden=true
|
||||
|
||||
CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
|
||||
|
||||
[[ -f $CURRENT_THEME_DIR/obsidian.css ]] || exit 0
|
||||
|
||||
jq -r '.vaults | values[].path' ~/.config/obsidian/obsidian.json 2>/dev/null | while read -r vault_path; do
|
||||
[[ -d $vault_path/.obsidian ]] || continue
|
||||
|
||||
theme_dir="$vault_path/.obsidian/themes/Omarchy"
|
||||
mkdir -p "$theme_dir"
|
||||
|
||||
[[ -f $theme_dir/manifest.json ]] || cat >"$theme_dir/manifest.json" <<'EOF'
|
||||
{
|
||||
"name": "Omarchy",
|
||||
"version": "1.0.0",
|
||||
"minAppVersion": "0.16.0",
|
||||
"description": "Automatically syncs with your current Omarchy system theme colors and fonts",
|
||||
"author": "Omarchy",
|
||||
"authorUrl": "https://omarchy.org"
|
||||
}
|
||||
EOF
|
||||
|
||||
cp "$CURRENT_THEME_DIR/obsidian.css" "$theme_dir/theme.css"
|
||||
done
|
||||
@@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Generate themed config files from Omarchy templates
|
||||
# omarchy:hidden=true
|
||||
|
||||
TEMPLATES_DIR="$DOTFILES_DIR/default/themed"
|
||||
USER_TEMPLATES_DIR="$HOME/.config/omarchy/themed"
|
||||
NEXT_THEME_DIR="$HOME/.config/omarchy/current/next-theme"
|
||||
COLORS_FILE="$NEXT_THEME_DIR/colors.toml"
|
||||
|
||||
# Convert hex color to decimal RGB (e.g., "#1e1e2e" -> "30,30,46")
|
||||
hex_to_rgb() {
|
||||
local hex="${1#\#}"
|
||||
printf "%d,%d,%d" "0x${hex:0:2}" "0x${hex:2:2}" "0x${hex:4:2}"
|
||||
}
|
||||
|
||||
# Only generate dynamic templates for themes with a colors.toml definition
|
||||
if [[ -f $COLORS_FILE ]]; then
|
||||
sed_script=$(mktemp)
|
||||
|
||||
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
|
||||
|
||||
# Process user templates first, then built-in templates (user overrides built-in)
|
||||
for tpl in "$USER_TEMPLATES_DIR"/*.tpl "$TEMPLATES_DIR"/*.tpl; do
|
||||
filename=$(basename "$tpl" .tpl)
|
||||
output_path="$NEXT_THEME_DIR/$filename"
|
||||
|
||||
# Don't overwrite configs already exists in the output directory (copied from theme specific folder)
|
||||
if [[ ! -f $output_path ]]; then
|
||||
sed -f "$sed_script" "$tpl" >"$output_path"
|
||||
fi
|
||||
done
|
||||
|
||||
rm "$sed_script"
|
||||
fi
|
||||
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Sync Omarchy theme to VS Code, VSCodium, and Cursor
|
||||
# omarchy:hidden=true
|
||||
|
||||
VS_CODE_THEME="$HOME/.config/omarchy/current/theme/vscode.json"
|
||||
|
||||
set_theme() {
|
||||
local editor_cmd="$1"
|
||||
local settings_path="$2"
|
||||
|
||||
omarchy-cmd-present "$editor_cmd" || return 0
|
||||
|
||||
if [[ -f $VS_CODE_THEME ]]; then
|
||||
theme_name=$(jq -r '.name' "$VS_CODE_THEME")
|
||||
extension=$(jq -r '.extension' "$VS_CODE_THEME")
|
||||
|
||||
if [[ -n $extension ]] && ! "$editor_cmd" --list-extensions 2>/dev/null | grep -Fxq "$extension"; then
|
||||
"$editor_cmd" --install-extension "$extension" >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
mkdir -p "$(dirname "$settings_path")"
|
||||
[[ -f $settings_path ]] || printf '{\n}\n' >"$settings_path"
|
||||
|
||||
if ! grep -q '"workbench.colorTheme"' "$settings_path"; then
|
||||
sed -i --follow-symlinks -E '0,/\{/{s/\{/{\ "workbench.colorTheme": "",/}' "$settings_path"
|
||||
fi
|
||||
|
||||
sed -i --follow-symlinks -E \
|
||||
"s/(\"workbench.colorTheme\"[[:space:]]*:[[:space:]]*\")[^\"]*(\")/\1$theme_name\2/" \
|
||||
"$settings_path"
|
||||
elif [[ -f $settings_path ]]; then
|
||||
sed -i --follow-symlinks -E 's/\"workbench\.colorTheme\"[[:space:]]*:[^,}]*,?//' "$settings_path"
|
||||
fi
|
||||
}
|
||||
|
||||
! omarchy-toggle-enabled skip-vscode-theme-changes && set_theme "code" "$HOME/.config/Code/User/settings.json"
|
||||
! omarchy-toggle-enabled skip-vscode-insiders-theme-changes && set_theme "code-insiders" "$HOME/.config/Code - Insiders/User/settings.json"
|
||||
! omarchy-toggle-enabled skip-codium-theme-changes && set_theme "codium" "$HOME/.config/VSCodium/User/settings.json"
|
||||
! omarchy-toggle-enabled skip-cursor-theme-changes && set_theme "cursor" "$HOME/.config/Cursor/User/settings.json"
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Update user-installed git themes
|
||||
|
||||
for dir in ~/.config/omarchy/themes/*/; do
|
||||
if [[ -d $dir ]] && [[ ! -L ${dir%/} ]] && [[ -d $dir/.git ]]; then
|
||||
echo "Updating: $(basename "$dir")"
|
||||
git -C "$dir" pull
|
||||
fi
|
||||
done
|
||||
|
After Width: | Height: | Size: 652 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,23 @@
|
||||
accent = "#1e66f5"
|
||||
cursor = "#dc8a78"
|
||||
foreground = "#4c4f69"
|
||||
background = "#eff1f5"
|
||||
selection_foreground = "#eff1f5"
|
||||
selection_background = "#dc8a78"
|
||||
|
||||
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"
|
||||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 308 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "Catppuccin Latte",
|
||||
"extension": "catppuccin.catppuccin-vsc"
|
||||
}
|
||||
|
After Width: | Height: | Size: 353 KiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 254 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,23 @@
|
||||
accent = "#89b4fa"
|
||||
cursor = "#f5e0dc"
|
||||
foreground = "#cdd6f4"
|
||||
background = "#1e1e2e"
|
||||
selection_foreground = "#1e1e2e"
|
||||
selection_background = "#f5e0dc"
|
||||
|
||||
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"
|
||||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 273 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "Catppuccin Mocha",
|
||||
"extension": "catppuccin.catppuccin-vsc"
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 3.8 MiB |
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,70 @@
|
||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||
theme[main_bg]="#060B1E"
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="#ffcead"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="#c89dc1"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="#a3bfd1"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="#6d7db6"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="#ffcead"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="#6d7db6"
|
||||
|
||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||
theme[proc_misc]="#c89dc1"
|
||||
|
||||
# Box outline and divider line color
|
||||
theme[cpu_box]="#92a593"
|
||||
theme[mem_box]="#92a593"
|
||||
theme[net_box]="#92a593"
|
||||
theme[proc_box]="#92a593"
|
||||
theme[div_line]="#6d7db6"
|
||||
|
||||
# Gradient for all meters and graphs
|
||||
theme[temp_start]="#a3bfd1"
|
||||
theme[temp_mid]="#7d82d9"
|
||||
theme[temp_end]="#92a593"
|
||||
|
||||
|
||||
theme[cpu_start]="#a3bfd1"
|
||||
theme[cpu_mid]="#7d82d9"
|
||||
theme[cpu_end]="#92a593"
|
||||
|
||||
|
||||
theme[free_start]="#7d82d9"
|
||||
theme[free_mid]="#E9BB4F"
|
||||
theme[free_end]="#E9BB4F"
|
||||
|
||||
|
||||
theme[cached_start]="#E9BB4F"
|
||||
theme[cached_mid]="#E9BB4F"
|
||||
theme[cached_end]="#E9BB4F"
|
||||
|
||||
|
||||
theme[available_start]="#a3bfd1"
|
||||
theme[available_mid]="#a3bfd1"
|
||||
theme[available_end]="#a3bfd1"
|
||||
|
||||
|
||||
theme[used_start]="#92a593"
|
||||
theme[used_mid]="#92a593"
|
||||
theme[used_end]="#92a593"
|
||||
|
||||
|
||||
theme[download_start]="#E9BB4F"
|
||||
theme[download_mid]="#a3bfd1"
|
||||
theme[download_end]="#7d82d9"
|
||||
|
||||
|
||||
theme[upload_start]="#E9BB4F"
|
||||
theme[upload_mid]="#a3bfd1"
|
||||
theme[upload_end]="#7d82d9"
|
||||
@@ -0,0 +1,23 @@
|
||||
accent = "#7d82d9"
|
||||
cursor = "#ffcead"
|
||||
foreground = "#ffcead"
|
||||
background = "#060B1E"
|
||||
selection_foreground = "#060B1E"
|
||||
selection_background = "#ffcead"
|
||||
|
||||
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"
|
||||
@@ -0,0 +1 @@
|
||||
Yaru-blue
|
||||
@@ -0,0 +1,4 @@
|
||||
vim.pack.add({{ src = 'https://github.com/bjarneo/ethereal.nvim' }})
|
||||
|
||||
vim.opt.background = 'dark'
|
||||
vim.cmd("colorscheme ethereal")
|
||||
@@ -0,0 +1,12 @@
|
||||
return {
|
||||
{
|
||||
"bjarneo/ethereal.nvim",
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "ethereal",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 374 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "Ethereal",
|
||||
"extension": "Bjarne.ethereal-omarchy"
|
||||
}
|
||||
|
After Width: | Height: | Size: 315 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,23 @@
|
||||
accent = "#7fbbb3"
|
||||
cursor = "#d3c6aa"
|
||||
foreground = "#d3c6aa"
|
||||
background = "#2d353b"
|
||||
selection_foreground = "#2d353b"
|
||||
selection_background = "#d3c6aa"
|
||||
|
||||
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"
|
||||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 365 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "Everforest Dark",
|
||||
"extension": "reesew.everforest-theme"
|
||||
}
|
||||
|
After Width: | Height: | Size: 287 KiB |
|
After Width: | Height: | Size: 41 KiB |
@@ -0,0 +1,78 @@
|
||||
# Main bg
|
||||
theme[main_bg]="#FFFCF0"
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="#100F0F"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="#100F0F"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="#205EA6"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="#414868"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="#100F0F"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="#6F6E69"
|
||||
|
||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||
theme[proc_misc]="#205EA6"
|
||||
|
||||
# Cpu box outline color
|
||||
theme[cpu_box]="#6F6E69"
|
||||
|
||||
# Memory/disks box outline color
|
||||
theme[mem_box]="#6F6E69"
|
||||
|
||||
# Net up/down box outline color
|
||||
theme[net_box]="#6F6E69"
|
||||
|
||||
# Processes box outline color
|
||||
theme[proc_box]="#6F6E69"
|
||||
|
||||
# Box divider line and small boxes line color
|
||||
theme[div_line]="#6F6E69"
|
||||
|
||||
# Temperature graph colors
|
||||
theme[temp_start]="#66800B"
|
||||
theme[temp_mid]="#BC5215"
|
||||
theme[temp_end]="#AF3029"
|
||||
|
||||
# CPU graph colors
|
||||
theme[cpu_start]="#66800B"
|
||||
theme[cpu_mid]="#BC5215"
|
||||
theme[cpu_end]="#AF3029"
|
||||
|
||||
# Mem/Disk free meter
|
||||
theme[free_start]="#66800B"
|
||||
theme[free_mid]="#BC5215"
|
||||
theme[free_end]="#AF3029"
|
||||
|
||||
# Mem/Disk cached meter
|
||||
theme[cached_start]="#66800B"
|
||||
theme[cached_mid]="#BC5215"
|
||||
theme[cached_end]="#AF3029"
|
||||
|
||||
# Mem/Disk available meter
|
||||
theme[available_start]="#66800B"
|
||||
theme[available_mid]="#BC5215"
|
||||
theme[available_end]="#AF3029"
|
||||
|
||||
# Mem/Disk used meter
|
||||
theme[used_start]="#66800B"
|
||||
theme[used_mid]="#BC5215"
|
||||
theme[used_end]="#AF3029"
|
||||
|
||||
# Download graph colors
|
||||
theme[download_start]="#66800B"
|
||||
theme[download_mid]="#BC5215"
|
||||
theme[download_end]="#AF3029"
|
||||
|
||||
# Upload graph colors
|
||||
theme[upload_start]="#66800B"
|
||||
theme[upload_mid]="#BC5215"
|
||||
theme[upload_end]="#AF3029"
|
||||
@@ -0,0 +1 @@
|
||||
242,240,229
|
||||
@@ -0,0 +1,23 @@
|
||||
accent = "#205EA6"
|
||||
cursor = "#100F0F"
|
||||
foreground = "#100F0F"
|
||||
background = "#FFFCF0"
|
||||
selection_foreground = "#100F0F"
|
||||
selection_background = "#CECDC3"
|
||||
|
||||
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"
|
||||
@@ -0,0 +1 @@
|
||||
Yaru-blue
|
||||
@@ -0,0 +1 @@
|
||||
# This will set "prefer-light" and use "Adwaita" as the theme
|
||||
@@ -0,0 +1,4 @@
|
||||
vim.pack.add({{ src = 'https://github.com/kepano/flexoki-neovim' }})
|
||||
|
||||
vim.opt.background = 'light'
|
||||
vim.cmd("colorscheme flexoki-light")
|
||||
@@ -0,0 +1,12 @@
|
||||
return {
|
||||
{
|
||||
"kepano/flexoki-neovim",
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "flexoki-light",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 204 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "flexoki-light",
|
||||
"extension": "shadesOfBuntu.flexoki-light"
|
||||
}
|
||||
|
After Width: | Height: | Size: 3.9 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1.8 MiB |
|
After Width: | Height: | Size: 1.8 MiB |
|
After Width: | Height: | Size: 434 KiB |
|
After Width: | Height: | Size: 4.4 KiB |