Themes must be added manually. This project does not currently support automatically pulling themes from GitHub repositories.
Automatic remote theme fetching is planned for a future release. Until then, add themes by editing theyasb-themes/folder per the examples in this repo.
- Overview
- Folder Structure
- Installation
- Quick Usage
- Theme JSON Structure
- Troubleshooting
- Contributing
- Credits
YASB Theme Manager is a lightweight system for managing and applying themes to YASB (Yet Another Status Bar).
It includes:
- A PowerShell script to list, cycle, and apply themes.
- An Electron GUI selector to preview and select themes.
- Theme definitions that modify YASB’s
style.cssroot variables and optionally control Wallpaper Engine.
theme/
├─ selector-app/ # Electron UI (index.html, renderer.js, main.js)
├─ themes/ # per-theme folders (neon-paradise, pastel-paradise, ...)
├─ theme.ps1 # PowerShell theme switcher script
├─ theme.json # theme metadata + root variables
└─ README.md # (this file)This guide walks you through installing YASB and Komorebi, setting up configuration folders, and creating system environment variables required for proper integration.
You can use winget.
Install YASB First
winget install --id AmN.yasbNow Install Komorebi + WHKD
winget install LGUG2Z.komorebi
winget install LGUG2Z.whkdIf winget packages are unavailable, download from the official project pages.
Standard location:
C:\Users\<username>\.config\komorebiCreate the folder via PowerShell:
$komorebiConfig = Join-Path $env:USERPROFILE ".config\komorebi"
New-Item -Path $komorebiConfig -ItemType Directory -Force | Out-NullRecommended location:
C:\Users\<username>\.config\yasb-theme-managerCreate folder:
$yasbThemeManager = Join-Path $env:USERPROFILE ".config\yasb-theme-manager"
New-Item -Path $yasbThemeManager -ItemType Directory -Force | Out-NullMove your existing Komorebi config files:
$src = "C:\path\to\your\komorebi\files" # adjust to your source (Typically located at 'C:/Users/<username>/')
Copy-Item -Path (Join-Path $src 'applications.json') -Destination $komorebiConfig -Force
Copy-Item -Path (Join-Path $src 'komorebi.bar.json') -Destination $komorebiConfig -Force
Copy-Item -Path (Join-Path $src 'komorebi.json') -Destination $komorebiConfig -ForceVerify files exist:
Get-ChildItem -Path $komorebiConfigThese must be System / Machine environment variables, not PowerShell profile variables.
Points to your Komorebi and Yasb Theme Manager folders.
setx KOMOREBI_CONFIG_HOME "%USERPROFILE%\.config\komorebi" /M
setx YASB_THEME_MANAGER "%USERPROFILE%\.config\yasb-theme-manager" /MImportant: Sign out and sign back in (or reboot) so GUI apps and services can see the new variables.
Start Komorebi using your usual command (adjust executable name if needed):
komorebic configurationCheck that it reads configs from:
C:\Users\<username>\.config\komorebi\komorebi.jsonIn C:\Users\<username>\.config\yasb\config.yaml:
# This should be set by default
komorebi:
start_command: "komorebic start --whkd"
stop_command: "komorebic stop --whkd"
reload_command: "komorebic stop --whkd && komorebic start --whkd"With
KOMOREBI_CONFIG_HOMEset, no explicit config path is needed.
Widget configuration for config.yaml:
theme_switcher:
type: "yasb.custom.CustomWidget"
options:
label: "\ue7fe"
label_alt: "Switch Theme"
class_name: "theme-switcher-widget"
exec_options:
run_cmd: 'powershell -ExecutionPolicy Bypass -File "${env:YASB_THEME_MANAGER}/theme.ps1" --cycle'
run_interval: 0
hide_empty: false
callbacks:
on_left: 'exec powershell -ExecutionPolicy Bypass -File "${env:YASB_THEME_MANAGER}/theme.ps1" --cycle'
on_middle: "toggle_label"
on_right: 'exec npm.cmd --prefix "${env:YASB_THEME_MANAGER}/selector-app" start'✅ After completing these steps, YASB and Komorebi should be fully integrated, using the correct configuration folders, and the theme switcher will work with your PowerShell and Electron-based UI.
- Run the Electron GUI manually:
# Install dependencies
npm --prefix "C:\Users\<username>\.config\theme\selector-app" install
# Start the selector UI
npm --prefix "C:\Users\<username>\.config\theme\selector-app" start- Writes CSS root variable blocks to YASB’s
style.css. - Can optionally control Wallpaper Engine (
wallpaper-engineentries in theme JSON). - Ensure
watch_stylesheet: trueinconfig.yaml.
{
"meta": {
"name": "NOexistenceN",
"version": "1.0.0"
},
"root-variables": {
"--accent1": "#f76d7b",
"--accent2": "#ffffff",
"--accent3": "#8fb5e1",
"--text-light": "#e6e9ff",
"--text-gray": "#a8adc9",
"--text-dark": "#262d47",
"--glow1": "#e0aaffd8",
"--glow2": "#aafff4d8",
"--glow3": "#ffb3e6d8",
"--glow1-soft": "#e0aaff33",
"--glow2-soft": "#aafff433",
"--glow3-soft": "#ffb3e633",
"--bg-dark": "#0d102e",
"--bg-darker": "#06081a",
"--bg-panel": "#0d102e",
"--bg-surface": "#181636",
"--bg-surface-hover": "#262d47",
"--bg-widget": "#181636",
"--bg-widget-hover": "#262d47",
"--bg-widget-active": "#423f4f",
"--text-accent1": "#f76d7b",
"--text-accent2": "#ffffff",
"--text-accent3": "#8fb5e1",
"--border-soft": "#262d47",
"--border-strong": "#423f4f",
"--shadow-strong": "#06081a",
"--shadow-glow1": "#f76d7b",
"--shadow-glow2": "#ffffff",
"--shadow-glow3": "#8fb5e1",
"--glass-1": "#181636",
"--glass-2": "#262d47",
"--glass-3": "#423f4f",
"--btn-hover": "#8fb5e1",
"--btn-active": "#f76d7b"
},
"wallpaper-engine": {
"enabled": true,
"file": "3408439088",
"link": "https://steamcommunity.com/sharedfiles/filedetails/?id=3408439088"
}
}
root-variablesmaps CSS token names without the leading--.
- Previews in
yasb-themes/<theme>/preview/ - Provide images locally for the script & Electron UI
- Wallpaper Engine integration optional
-
YASB not picking up themes: Check
style.csspath andwatch_stylesheet: true. -
Komorebi loads wrong config: Verify
KOMOREBI_CONFIG_HOMEpoints to correct folder. Reboot if necessary. -
Wallpaper errors: Confirm Wallpaper Engine path and files.
- Add themes manually via
yasb-themes/ - PRs welcome for UI improvements, scripts, or new themes.