Commit Graph

31 Commits

Author SHA1 Message Date
Kalagmitan b00c601d0a refactor: enforce stricter type hints (#91)
LSP was screaming at me so I decided to just address it to get it off my
screen.

+ Fixed the type hints
:= Modified and added type hints for certain functions and variables in
most of the files in the utils/ folder (and some in the subcommands/
folder) for clarity and so pyright's type checker wouldn't cry.
:+ To resolve certain type issues, I had to add a bit more tiny
additional code such as, additional checks if a variable is None, a tiny
class in utils/material/generator.py to resolve the constructor usage
mismatch between what the DynamicScheme accepts and what the code
actually passes, and etc.
- Renamed certain functions and variables for clarity and also for some
to not collide with pre-existing definitions from well-known library
imports.
+ PIL has reorganized their code a bit, so the code is made to reflect
their new definitions.
= Reorganized the single import statement for "colourfulness" in
utils/wallpaper.py to be close to the top.
(I think that's it)

Side Effects?:
Everything should work the same as no logic change was done whatsover
(unless we consider the added if statements for type checking as a logic
change). I've tested it, everything seems to be in urdir.
2026-03-15 22:56:05 +11:00
2 * r + 2 * t c930bd2604 feat: switch to qtengine 2026-03-09 21:36:44 +11:00
2 * r + 2 * t cc155cf432 fix: format 2026-03-09 21:26:37 +11:00
Nathachou d88cc7ff79 feat: scheme support for Pandora Minecraft launcher (#87)
* added pandora theme template json

* feat: add support for Pandora theme integration
2026-02-17 11:36:42 +11:00
Robin Seger bca7b12072 feat: thunar & papirus-folders theming + new schemes (#80)
* 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>
2026-02-14 23:23:33 +11:00
AteebXYZ 6a91c7b990 fix: apply mode substitution after dynamic template fill (#84) 2026-02-10 21:37:58 +11:00
Kalagmitan 52a3a3c50e theme: inject mode into user templates (#77)
* 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
2026-01-24 14:45:32 +11:00
mj0x0 7de6c60631 theme: ensure atomic writes for configuration files (#76)
* fix: ensure atomic writes for configuration files

* requested changes
2026-01-18 00:11:13 +11:00
sweenu 3319d2ca19 theme: continue execution after failure for one theme (#50) 2025-09-09 13:59:04 +10:00
Batuhan Edgüer 3e19fd6919 theme: add nvtop, htop, and cava support (#45)
* 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.
2025-08-18 17:18:26 +10:00
Batuhan Edgüer 63e2132830 theme: add Warp terminal theme support (#42)
* 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
2025-08-17 02:17:39 +10:00
2 * r + 2 * t d727836cc9 theme: better qt theming
Switch to Darkly for default QT style
Use qt5ct-kde and qt6ct-kde
2025-08-15 15:53:39 +10:00
2 * r + 2 * t fed8cc5800 theme: add config for progs to theme 2025-08-04 16:43:55 +10:00
Elio Torquet 06a7102490 theme: add template system (#36)
* user template system

* fix when templates dir doesnt exist

Also color -> colour

---------

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2025-08-04 15:14:10 +10:00
2 * r + 2 * t 3deb726278 theme: ignore perm errors for /dev/pts
Fixes #27
2025-07-22 16:01:12 +10:00
2 * r + 2 * t 4b666a797e theme: use dconf instead of gsettings 2025-07-12 17:38:26 +10:00
2 * r + 2 * t 32c0be2488 theme: fix typo 2025-07-12 15:03:26 +10:00
2 * r + 2 * t f47b4fe661 internal: more lazy importing
Also fix some stuff with scheme checking
2025-06-24 23:47:53 +10:00
2 * r + 2 * t 82f98a4f6a [!B] colours: better colours
Also remove multiple dynamic flavours
Add extended material (success colours)
2025-06-24 00:11:20 +10:00
2 * r + 2 * t 3c1e9d87a6 feat: theme qt 2025-06-16 17:36:38 +10:00
2 * r + 2 * t edbaa9d674 theme: fix terminal colours 2025-06-16 00:09:51 +10:00
2 * r + 2 * t 3d0fdaf3c1 feat: theme gtk 2025-06-15 23:50:20 +10:00
2 * r + 2 * t 31bc0d560f theme: always write 2025-06-15 23:32:07 +10:00
2 * r + 2 * t 96e09c7bda theme: save sequences to state file 2025-06-15 18:40:23 +10:00
2 * r + 2 * t 194826efaa feat: generate dynamic schemes 2025-06-12 15:48:02 +10:00
2 * r + 2 * t 2161e3ee6b theme: better spicetify colours 2025-06-11 22:48:09 +10:00
2 * r + 2 * t b08858191c feat: theme btop
Also change template replacement format
2025-06-11 22:25:03 +10:00
2 * r + 2 * t 63040f68b7 feat: theme fuzzel 2025-06-11 22:09:44 +10:00
2 * r + 2 * t 09f01bfd1d feat: theme spicetify 2025-06-11 21:59:23 +10:00
2 * r + 2 * t 6f7beecdc6 feat: theme discord 2025-06-11 21:42:13 +10:00
2 * r + 2 * t d44bde1667 feat: theme hypr and terminals 2025-06-11 20:37:37 +10:00