Theme is a toolset for managing user-defined system-wide custom themes, aiming to unify multiple scattered configuration files into simple human-readable .ini theme files. Each global theme defines specifics adopted system-wide, while context themes configure specific applications (e.g: notifications).
[WM]
top-padding = 10
left-padding = 10
right-padding = 10
bottom-padding = 10
useless-gaps = 5
border-width = 1
border-radius = 10
[Dock]
enabled = true
position = top
depth = 0
margin = 0
negative-margin = 0
You can check out the defaults file from the base-themes dir for a full example.
Theme comes with a number of default themes. You can overwrite default options for any of these or start by creating your own from scratch.
Ai |
---|
![]() |
Akane |
---|
![]() |
Ishida |
---|
![]() |
Mayuri |
---|
![]() |
Meranii |
---|
![]() |
Misato |
---|
![]() |
Nina |
---|
![]() |
Sakura |
---|
![]() |
Shina |
---|
![]() |
Shinji |
---|
![]() |
Shoko |
---|
![]() |
Sosuke |
---|
![]() |
Screenshots may not always be up-to-date. You can check installed themes by running
theme-picker
.
# Official repos (Arch):
bash rofi
# AUR:
wpgtk pywalfox
Rofi is only needed for the
wall-picker
andtheme-picker
commands.
To install all of the above (on Arch) run:
sudo pacman -S bash rofi
yay -S wpgtk pywalfox
git clone https://github.com/cherrynoize/theme
cd theme
make clean install
genthumbcache
Running genthumbcache
with root privileges may fail and is
not advised.
If you only want to install binaries or themes, respectively:
make install-bin
make install-themes
You can easily use
theme
in your own dotfiles by just installing binary files and adding your own system themes.
To uninstall:
make uninstall
Global themes are plain-text configuration files found in .config/themes. You can just open them in any text editor, modify them, create new ones and remove existing ones.
By default, system global themes are installed in /etc/themes
.
User themes can be set in ~/.config/themes
. Or you can
specify custom paths by defining a BASE_THEMES_DIR
and
USER_THEMES_DIR
variable respectively.
If you're using my dotfiles you can set these in the
.initrc
file.
Though provided global themes are still very simple, the infrastructure is already capable of supporting complex themes. You just need to define them.
Themes can be set for a single context, such as wallpaper
,
bspwm
, dunst
, etc.
Global themes are, at the very core, configuration files setting multiple themes for separate contexts.
Theme is based upon
wpgtk
for easier global theming and automatic colorscheme generation
with pywal
.
You're going to need to refer to the Wpgtk wiki if you want to start editing context themes or creating your own.
To switch between themes:
switch-theme [context] [theme]
List items that have themes:
switch-theme -l
And list themes available for given context:
switch-theme [context] -l
Set a new theme:
theme set [theme]
List currently available themes:
theme list
For more options run:
theme help
You can run theme-picker
to switch between available system
and user defined global themes.
Use option
--recent=false
to sort alphabetically instead of by recently used.
You can toggle between light and dark mode using switch-mode
(Super+<
).
Without arguments it will just toggle between light and dark mode globally. It also takes single items (called a context) to switch for or a specific mode (light or dark) to be set.
Note: light mode is in beta and some stuff does not look great. Have a look at the known bugs section.
theme-picker
wall-picker
change-wallpaper
switch-mode
Some text visibility issues in light mode.
- Implement wallpaper history for each theme and default to sorting
by most recent in
wall-picker
- Convert to higher compression format
- AI upscaler on-the-fly with cache storage support
- Some wallpapers have some ugly artifacts/watermarks to be removed
- Cut out border from wallpapers in
meranii
theme - Make
switch-mode
keep both-dark
and-light
versions and use a suffix-less link to avoid this dizzy switching back and forth in commits just because a different mode is set. (Be sure to have it check for link destination instead of existance inget_cur_mode
.)
You can have a look at the TODO and known bugs lists. Or open a PR/issue if you have found more.
If you feel like you have something to add please do.
If you feel like it, you can submit your own theme. I'm not exactly sure what I'm going to do with those but I would like people to be able to share and browse custom themes. Or I might add them to the main repo if they fit.
Even the wallpapers alone are worth consideration if it's a well curated selection of at least 2 or 3 for both light and dark versions.
- waccaγγγ£γ for her amazing collection (meranii theme)
- Also I've removed some watermarks from a few wallpapers just for aesthetic reasons, please don't get mad at me. I'll be glad to add a link to your original work if you reach out.