From e8d276161adf633515f5a1824d288d688f2f4495 Mon Sep 17 00:00:00 2001 From: "s0wlz (Matthias Puchstein)" Date: Wed, 31 Dec 2025 00:48:50 +0100 Subject: [PATCH] feat: add Hyprland theme support - Created Jinja2 template for Hyprland color configuration. - Mapped system DNA to Hyprland variables (borders, accents, text). - Updated documentation (README, INSTALL) to include Hyprland. --- INSTALL.md | 57 ++++++++++++++++++--- README.md | 1 + templates/hyprland/colors.conf.j2 | 85 +++++++++++++++++++++++++++++++ templates/hyprland/meta.yaml | 4 ++ 4 files changed, 141 insertions(+), 6 deletions(-) create mode 100644 templates/hyprland/colors.conf.j2 create mode 100644 templates/hyprland/meta.yaml diff --git a/INSTALL.md b/INSTALL.md index 112307b..f2b19df 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -125,9 +125,54 @@ All generated theme files can be found in the `dist/` directory after running `u 1. This file maps Apex colors to Libadwaita named colors (`@window_bg_color`, etc.). 2. Copy or symlink it to your GTK4 config directory: - ```bash - # For standard GTK4 apps - mkdir -p ~/.config/gtk-4.0 - ln -s $(pwd)/dist/gtk4/gtk.css ~/.config/gtk-4.0/gtk.css - ``` -3. To apply changes immediately, you may need to restart your applications or log out/in. \ No newline at end of file + ```bash + + # For standard GTK4 apps + + mkdir -p ~/.config/gtk-4.0 + + ln -s $(pwd)/dist/gtk4/gtk.css ~/.config/gtk-4.0/gtk.css + + ``` + + 3. To apply changes immediately, you may need to restart your applications or log out/in. + + + + --- + + + + ## 8. Hyprland + + + + **Files:** + + - `dist/hyprland/apex-neon-colors.conf` + + - `dist/hyprland/apex-aeon-colors.conf` + + + + **Installation:** + + 1. Copy the files to your Hyprland config directory: + + ```bash + + cp dist/hyprland/*.conf ~/.config/hypr/ + + ``` + + 2. Source the desired theme in your `hyprland.conf`: + + ```conf + + source = ~/.config/hypr/apex-neon-colors.conf + + # source = ~/.config/hypr/apex-aeon-colors.conf + + ``` + + \ No newline at end of file diff --git a/README.md b/README.md index 2eba341..2b694e1 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ The factory currently generates native themes for: - **Zsh** (Theme with Radar/AAR) - **Gemini CLI** (JSON) - **GTK4 / Libadwaita** (CSS) +- **Hyprland** (Conf) ## The Apex DNA diff --git a/templates/hyprland/colors.conf.j2 b/templates/hyprland/colors.conf.j2 new file mode 100644 index 0000000..0eeffba --- /dev/null +++ b/templates/hyprland/colors.conf.j2 @@ -0,0 +1,85 @@ +############################# +### {{ scheme | upper }} THEME ### +############################# + +# The Void (Backgrounds) +# Pure, unadulterated darkness. None of that "grey-blue" nonsense. +$base = rgb({{ palette.background | replace('#', '') }}) +$baseAlpha = {{ palette.background | replace('#', '') }} + +$surface = rgb({{ ui.panel | replace('#', '') }}) +$surfaceAlpha = {{ ui.panel | replace('#', '') }} + +$overlay = rgb({{ ui.border | replace('#', '') }}) +$overlayAlpha = {{ ui.border | replace('#', '') }} + +$muted = rgb({{ ui.stealth | replace('#', '') }}) +$mutedAlpha = {{ ui.stealth | replace('#', '') }} + +$subtle = rgb({{ ui.stealth | replace('#', '') }}) +$subtleAlpha = {{ ui.stealth | replace('#', '') }} + +# The Signal (Text) +# Stark white for maximum readability. +$text = rgb({{ palette.foreground | replace('#', '') }}) +$textAlpha = {{ palette.foreground | replace('#', '') }} + +# Accents (Aggressive) +# "Razor Red" - For errors or active borders. Blood-like. +$love = rgb({{ palette.cursor | replace('#', '') }}) +$loveAlpha = {{ palette.cursor | replace('#', '') }} + +# "Warning Gold" +$gold = rgb({{ palette.warning | replace('#', '') }}) +$goldAlpha = {{ palette.warning | replace('#', '') }} + +# "Toxic Green" - Because nature isn't always nice. +$pine = rgb({{ palette.success | replace('#', '') }}) +$pineAlpha = {{ palette.success | replace('#', '') }} + +# "Electric Cyan" - Cold, digital logic. +$foam = rgb({{ palette.info | replace('#', '') }}) +$foamAlpha = {{ palette.info | replace('#', '') }} + +# "Deep Void Purple" +$iris = rgb({{ palette.special | replace('#', '') }}) +$irisAlpha = {{ palette.special | replace('#', '') }} + +# "Pale Rose" (Mapped to alert color) +$rose = rgb({{ ansi.bright.red | replace('#', '') }}) +$roseAlpha = {{ ansi.bright.red | replace('#', '') }} + +# Highlight variants +$highlight_low = rgb({{ ui.panel | replace('#', '') }}) +$highlight_lowAlpha = {{ ui.panel | replace('#', '') }} + +$highlight_med = rgb({{ ui.border | replace('#', '') }}) +$highlight_medAlpha = {{ ui.border | replace('#', '') }} + +$highlight_high = rgb({{ ui.stealth | replace('#', '') }}) +$highlight_highAlpha = {{ ui.stealth | replace('#', '') }} + +# Theme-specific definitions +$splash_text = rgba($textAlphaee) +$dec_shadow = rgba(000000ee) # Hard shadows + +# Border configurations +# Sharp, thin, and aggressive. +$border_active = rgba($loveAlphaff) rgba($irisAlphaff) 45deg +$border_inactive = rgba($mutedAlpha44) rgba($surfaceAlpha44) 45deg + +$border_nogroup_active = rgba($foamAlphaff) rgba($pineAlphaff) 45deg +$border_nogroup_inactive = rgba($mutedAlpha44) rgba($surfaceAlpha44) 45deg + +$border_group_active = rgba($goldAlphaff) rgba($loveAlphaff) 45deg +$border_group_inactive = rgba($mutedAlpha66) rgba($surfaceAlpha66) 45deg + +$border_grouplocked_active = rgba($foamAlphaff) rgba($irisAlphaff) 45deg +$border_grouplocked_inactive = rgba($foamAlpha66) rgba($irisAlpha66) 45deg + +# Group bar configurations +$groupbar_text = rgba($baseAlphaff) +$groupbar_active = rgba($loveAlphaff) rgba($irisAlphaaa) +$groupbar_inactive = rgba($surfaceAlphaee) rgba($mutedAlphaaa) +$groupbar_grouplocked_active = rgba($foamAlphaff) rgba($irisAlphaff) +$groupbar_grouplocked_inactive = rgba($foamAlphaaa) rgba($irisAlphaaa) diff --git a/templates/hyprland/meta.yaml b/templates/hyprland/meta.yaml new file mode 100644 index 0000000..ad301e9 --- /dev/null +++ b/templates/hyprland/meta.yaml @@ -0,0 +1,4 @@ +author: S0wlz (Owlibou) +description: Hyprland color variables and border configurations +version: 1.0.0 +strategy: individual