refactor: implement component-based architecture for enhanced maintainability
- Reorganize directory structure into core/, features/, and themes/ - Colocate application Nix logic, configs, scripts, and theme overrides - Implement 'Inversion of Control' for theming: apps now pull theme-specific layouts - Update flake.nix and shared library paths to match the new structure - Document the new Feature-Centric architecture in README.md
This commit is contained in:
47
themes/templates/alacritty.toml.tpl
Normal file
47
themes/templates/alacritty.toml.tpl
Normal file
@@ -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 }}"
|
||||
83
themes/templates/btop.theme.tpl
Normal file
83
themes/templates/btop.theme.tpl
Normal file
@@ -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 }}"
|
||||
1
themes/templates/chromium.theme.tpl
Normal file
1
themes/templates/chromium.theme.tpl
Normal file
@@ -0,0 +1 @@
|
||||
{{ background_rgb }}
|
||||
22
themes/templates/ghostty.conf.tpl
Normal file
22
themes/templates/ghostty.conf.tpl
Normal file
@@ -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 }}
|
||||
94
themes/templates/hyprland-preview-share-picker.css.tpl
Normal file
94
themes/templates/hyprland-preview-share-picker.css.tpl
Normal file
@@ -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;
|
||||
}
|
||||
9
themes/templates/hyprland.conf.tpl
Normal file
9
themes/templates/hyprland.conf.tpl
Normal file
@@ -0,0 +1,9 @@
|
||||
$activeBorderColor = rgb({{ accent_strip }})
|
||||
|
||||
general {
|
||||
col.active_border = $activeBorderColor
|
||||
}
|
||||
|
||||
group {
|
||||
col.border_active = $activeBorderColor
|
||||
}
|
||||
5
themes/templates/hyprlock.conf.tpl
Normal file
5
themes/templates/hyprlock.conf.tpl
Normal file
@@ -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)
|
||||
1
themes/templates/keyboard.rgb.tpl
Normal file
1
themes/templates/keyboard.rgb.tpl
Normal file
@@ -0,0 +1 @@
|
||||
{{ accent }}
|
||||
27
themes/templates/kitty.conf.tpl
Normal file
27
themes/templates/kitty.conf.tpl
Normal file
@@ -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 }}
|
||||
5
themes/templates/mako.ini.tpl
Normal file
5
themes/templates/mako.ini.tpl
Normal file
@@ -0,0 +1,5 @@
|
||||
include=~/.config/nomarchy/default/mako/core.ini
|
||||
|
||||
text-color={{ foreground }}
|
||||
border-color={{ accent }}
|
||||
background-color={{ background }}
|
||||
99
themes/templates/obsidian.css.tpl
Normal file
99
themes/templates/obsidian.css.tpl
Normal file
@@ -0,0 +1,99 @@
|
||||
/* Nomarchy 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);
|
||||
}
|
||||
5
themes/templates/swayosd.css.tpl
Normal file
5
themes/templates/swayosd.css.tpl
Normal file
@@ -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 }};
|
||||
Reference in New Issue
Block a user