* feat: add GIF files support as wallpaper (not animated tho)
* tweak: simplifying variable use
* fix: git is good but damn it's annoying
* fix
---------
Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
* feat: GTK app theming system
- Implemented custom.css import for user-managed app themes
- process_app_themes() to dynamically update colors in imported CSS files
- Inline comment markers for color replacement (e.g, /* accent-color */)
- Papirus icon color syncing with weighted hue/saturation algorithm
This allows users to create modular app themes that automatically update when the scheme/wallpaper changes
Example usage:
.app .element { color: #24BD5C; /* accent-color */ }
.app .element:hover { background: rgba(36, 189, 92, 0.15); /* accent-color with 15% opacity */ }
* feat: atomic theme changes with locking and mode-specific CSS
- Implemented locking to prevent concurrent theme changes
- Added mode-light/mode-dark CSS markers for dynamic property reordering
- Made terminal writes and Papirus sync non-blocking to prevent hangs
- Only save scheme.json after successful theme application
Fixes race conditions during rapid theme switching and ensures Shell and GTK apps scheme stay in sync.
* theme: added to color mapping for custom theming, new schemes
* theme: quick fixes, cleanup
* theme: include thunar.css as template, with new theming system
* theme: modified GTK theming approach
- Dropped comment targeted theming in favor for existing {{ }} replacement
- [app].css.template file created for customization, bypassing built in default if present
- Handling *.template for added templates to be parsed and added to import
* theme: fixes for thunar.css
* theme: remove .template file use
* theme: path button color adjustment, non-active hover
* fixes & cleanup
* thunar css fixes
* more css fixes
* format
* fix tab vert spacing
---------
Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
* theme: apply_user_templates accepts mode.
* Some themes like those in NvChad require a mode to be supplied to
work. Added a minimal change that makes apply_user_templates accept a
mode parameter and replaces any {{ mode }} placeholder in a file with
the actual mode.
* theme: mode replace integrated with gen_replace_dynamic
+ Moved the {{ mode }} replacement logic to the gen_replace_dynamic
function.
* refactor: adjusted comment
* feat: add wallpaper post-hook for dynamic theming
Adds support for running custom shell commands after wallpaper changes
via the `wallpaper.postHook` config option in `~/.config/caelestia/cli.json`.
The wallpaper path is made available to the hook via the $WALLPAPER_PATH
environment variable. This enables integration with tools like `matugen`
or `pywal` for dynamic theming based on wallpaper colors.
The hook runs after apply_colours() in set_wallpaper(), ensuring it
executes for all wallpaper change methods (UI, IPC, and direct CLI).
* Replaced comment in example config with no-op command
* fix(recording): Fix wf-recorder audio flag and improve process monitoring
- Fix incorrect audio flag format for wf-recorder(Invalid whitespace)
Changed from `-a <device>` to `--audio=<device>` as per wf-recorder docs:
"Specify device like this: -a<device> or --audio=<device>"
- Add fallback to IDLE audio sources
Audio sources are typically in IDLE state when no media is playing.
Now falls back to IDLE sources if no RUNNING sources are found,
ensuring audio capture works when recording starts during silence
but media plays later.
- Improve process startup monitoring
The 0.1s sleep was insufficient for reliable process detection on NVIDIA systems.
Process would start and immediately die ~90% of the time when triggered via keybinds.
Now shows immediate UI feedback then monitors for 3 seconds to ensure
stable process startup while maintaining responsive user experience.
* check returncode + timeout 3s -> 1s + format
---------
Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
* templates: add nvtop, htop, and cava support
* Triggers htop and cava theme reloads
Sends a USR2 signal to htop and cava after their themes are applied. This prompts the applications to reload their configuration files, ensuring new themes are visible instantly without requiring a manual restart.
* theme: add Warp terminal theme support
Add support for Warp terminal theming with proper template and integration.
- Add warp.yaml template with standard theme variables
- Implement apply_warp function with correct 'darker'/'lighter' values
- Integrate with main theme application pipeline via enableWarp config
* warp: improve theme generation and use proper data directory
- Use gen_replace with hash=True for consistent color formatting
- Remove # symbols from template to avoid double hashes
- Replace warp_mode manually after gen_replace instead of adding to colors dict
- Use data_dir for XDG-compliant theme location