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.
This commit is contained in:
s0wlz (Matthias Puchstein)
2025-12-31 00:48:50 +01:00
parent 2eea11c22f
commit e8d276161a
4 changed files with 141 additions and 6 deletions

View File

@@ -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.
```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
```

View File

@@ -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

View File

@@ -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)

View File

@@ -0,0 +1,4 @@
author: S0wlz (Owlibou)
description: Hyprland color variables and border configurations
version: 1.0.0
strategy: individual