-
-
Notifications
You must be signed in to change notification settings - Fork 8
Smart Colors System
ulises-jeremias edited this page Aug 13, 2026
·
15 revisions
Smart Colors generates semantic colors and Material Design 3 palettes from the current wallpaper, then keeps Quickshell synchronized.
- Quickshell is the main consumer through
~/.cache/dots/smart-colors/scheme.json. -
dots-wal-reloadanddots-wallpaper-settrigger palette refresh and Quickshell IPC reload. - M3 generation goes through
dots-m3-colors(prefers/usr/bin/python3when it hasmaterialyoucolor, so pyenv shims do not break the pipeline). - Script consumers can source shell/env exports from the same cache directory.
-
dots-wallpaper-set <image>(or Control Center Apply /appearance.setWallpaper) - When Quickshell is running → IPC
appearance setWallpaper - Otherwise →
apply-appearance.shwallpaper-only path:-
wal -i(honors light/dark from scheme state) - write
~/.local/state/dots/wallpaper/path(canonical pointer) - rewrite
~/.cache/wal/walas a text path file (never an image symlink) -
generate-m3-colors.py→scheme.json -
dots-color-scheme sync-state→scheme/state.json(preservesgtkColorScheme) -
dots-gtk-theme sync-color-schemere-applies the persisted GTK policy (followtracks Theme mode; stickyprefer-light/prefer-dark/defaultare left alone)
-
-
Colours.qmlreloads via file watch ordots-quickshell ipc colours reload(real IPC + touch fallback)
- Explicit argument
-
~/.local/state/dots/wallpaper/path(canonical persistent pointer) -
~/.cache/wal/wal(text path file; last resort — not a symlink)
dots-smart-colors --generate --m3
dots-smart-colors --analyze
dots-smart-colors --concept=error
dots-wal-reloadAll generated files are written to ~/.cache/dots/smart-colors/.
Core files:
-
scheme.json(Quickshell M3 palette) -
colors.sh(shell variables for scripts) -
colors.env(export-friendly environment file) -
colors-hyprlock.env(lockscreen integration) -
colors-kitty.conf(terminal integration) -
colors.css(generic CSS variables)
Compatibility files may exist for external tooling, but they are not part of the primary UX contract.
flowchart LR
wallpaper[WallpaperChange] --> set[dots-wallpaper-set]
set --> appearance[AppearanceIpcOrShellFallback]
appearance --> wal[pywal]
appearance --> m3[generate-m3-colors]
m3 --> scheme[schemeJson]
m3 --> state[schemeStateJson]
scheme --> colours[QuickshellColoursService]
colours --> ui[QuickshellUIUpdated]
# Rebuild smart-colors cache
dots-smart-colors --generate --m3
# Confirm cache files exist
ls -la ~/.cache/dots/smart-colors/
# Force shell-side reload path
dots-quickshell ipc colours reload
# Confirm appearance consistency
dots appearance doctorSee also: Appearance Themes
- 🐚 Quickshell Shell ⭐
- ✅ Quickshell Parity Checklist
- 📁 Thunar File Manager
- 📁 Yazi File Manager
- 📋 CopyQ Clipboard Manager
- 📜 Dots Scripts Guide ⭐ Complete Documentation
- 💾 Backup System
- 🚀 Eject System
Quickshell-first flows:
- 🚀 App Launcher - quickshell → minimal
- 📋 Clipboard - cliphist/copyq → minimal
- ⚡ Power Menu - quickshell
- ⚙️ Settings Hub - unified GUI settings
Media & Screen:
- 📸 Screenshots - sss
- 🔒 Screen Lock - hyprlock
- 🔆 Brightness - brightnessctl
System:
- ⚡ Performance - powerprofilesctl
- ⌨️ Keyboard Layout - 13 layouts
- 🔋 Battery Monitor - poweralertd
- 📁 File Manager - thunar → nautilus
- 📁 Yazi - terminal file manager
Essential:
- 🏠 Home - Start here
- 📜 Dots Scripts ⭐ - All tools & fallbacks
- 🎨 Appearance Themes - Theme switching
- 🖼️ Theme Gallery
- ❄️ Nix / Home-Manager - Visual theme browser
- 🧠 Smart Colors - Adaptive theming
Recent Updates:
- ⭐ Dots Scripts - Quickshell-first command reference
- 🆕 Hybrid GPU - NVIDIA/Intel power management
- 🆕 Changelog 2025 - Latest changes