feat: add SwayNC notification center template

- Created Jinja2 template for SwayNC CSS.
- Mapped system DNA to notification states (Critical, Normal, MPRIS).
- Updated documentation and repository map.
This commit is contained in:
s0wlz (Matthias Puchstein)
2025-12-31 01:23:53 +01:00
parent 9885a192a1
commit cbfa26afb7
5 changed files with 197 additions and 5 deletions

View File

@@ -84,5 +84,6 @@ Apex is not about pretty colors; it is about signal clarity.
│ ├── waybar/
│ ├── zathura/
│ ├── btop/
│ ├── swaync/
│ └── alacritty/
└── dist/ # Compiled theme files (gitignore this)

View File

@@ -303,15 +303,55 @@ All generated theme files can be found in the `dist/` directory after running `u
1. Copy the desired file to your Btop themes directory (usually `~/.config/btop/themes/`):
```bash
```bash
mkdir -p ~/.config/btop/themes
mkdir -p ~/.config/btop/themes
cp dist/btop/*.theme ~/.config/btop/themes/
cp dist/btop/*.theme ~/.config/btop/themes/
```
```
2. Select the theme within Btop settings (ESC -> Options -> Color theme).
2. Select the theme within Btop settings (ESC -> Options -> Color theme).
---
## 13. SwayNC
**Files:**
- `dist/swaync/apex-neon-style.css`
- `dist/swaync/apex-aeon-style.css`
**Installation:**
1. Copy the desired file to your SwayNC config directory:
```bash
mkdir -p ~/.config/swaync
cp dist/swaync/apex-neon-style.css ~/.config/swaync/style.css
```
2. Reload SwayNC:
```bash
swaync-client -rs
```

View File

@@ -24,6 +24,7 @@ The factory currently generates native themes for:
- **Waybar** (CSS variables)
- **Zathura** (Config)
- **Btop** (Theme)
- **SwayNC** (CSS)
## The Apex DNA

View File

@@ -0,0 +1,4 @@
author: S0wlz (Owlibou)
description: SwayNC notification center theme (CSS)
version: 1.0.0
strategy: individual

View File

@@ -0,0 +1,146 @@
/* {{ scheme }} — SwayNC Theme */
/* DNA: State over Decoration */
@define-color void {{ palette.background }};
@define-color stark {{ palette.foreground }};
@define-color razor {{ palette.cursor }};
@define-color tech {{ palette.info }};
@define-color toxic {{ palette.success }};
@define-color amber {{ palette.warning }};
@define-color alert {{ ansi.bright.red }};
@define-color panel {{ ui.panel }};
@define-color border {{ ui.border }};
@define-color stealth {{ ui.stealth }};
@define-color dim {{ ui.dim }};
/* SwayNC Specific Variables */
@define-color noti-bg @panel;
@define-color noti-fg @stark;
@define-color noti-border-color @border;
@define-color noti-bg-hover @border;
@define-color noti-bg-focus @border;
@define-color noti-bg-critical @razor;
@define-color noti-fg-critical @void;
@define-color mpris-bg @panel;
@define-color mpris-fg @stark;
@define-color bg-selected @razor;
@define-color fg-selected @void;
/* Base Structure */
* {
font-family: "JetBrainsMono Nerd Font";
font-weight: 500;
}
.control-center {
background: @void;
border: 2px solid @razor;
border-radius: 0;
margin: 10px;
}
.control-center-list {
background: transparent;
}
.notification {
background: @noti-bg;
border: 1px solid @noti-border-color;
border-radius: 0;
margin: 5px;
padding: 10px;
}
.notification-content {
background: transparent;
}
.notification-default-action:hover {
background: @noti-bg-hover;
}
.notification-critical {
background: @noti-bg-critical;
color: @noti-fg-critical;
}
.notification-critical .notification-content {
color: @noti-fg-critical;
}
.notification-group {
background: transparent;
}
.notification-group-headers {
color: @dim;
}
.notification-group-icon {
color: @razor;
}
.mpris {
background: @mpris-bg;
border: 1px solid @border;
border-radius: 0;
margin: 5px;
}
.mpris-title {
color: @stark;
font-weight: bold;
}
.mpris-subtitle {
color: @dim;
}
.widget-title {
color: @razor;
font-weight: bold;
font-size: 1.2rem;
}
.widget-label {
color: @stark;
}
.widget-dnd {
color: @tech;
}
.widget-mpris {
background: transparent;
}
.widget-buttons-grid {
background: @panel;
padding: 10px;
margin: 5px;
}
.widget-buttons-grid > button {
background: @void;
border: 1px solid @border;
border-radius: 0;
color: @stark;
}
.widget-buttons-grid > button:hover {
background: @razor;
color: @void;
}
.widget-menubar > button {
background: transparent;
color: @stark;
}
.widget-menubar > button:hover {
background: @razor;
color: @void;
}