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:
57
INSTALL.md
57
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.
|
||||
```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
|
||||
|
||||
```
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
85
templates/hyprland/colors.conf.j2
Normal file
85
templates/hyprland/colors.conf.j2
Normal 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)
|
||||
4
templates/hyprland/meta.yaml
Normal file
4
templates/hyprland/meta.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: S0wlz (Owlibou)
|
||||
description: Hyprland color variables and border configurations
|
||||
version: 1.0.0
|
||||
strategy: individual
|
||||
Reference in New Issue
Block a user