newl is a Pywal theme manager which encourages the user to store and manually tweak their themes rather than simply passing an argument to Pywal’s -i flag and calling it a day. It is display-system agnostic; I currently use it both on DWM and COSMIC with the same configuration.
Proper integration with proper desktop environments is, for the most part, missing; I do not usually use a proper desktop environment so I cannot easily test it on one. Currently there only exist integration with icewm’s menu and support for setting accent colours, theme darkness, and transparency in COSMIC.
If you’d like me to integrate support for your desktop environment, don’t be afraid to open an issue; I’ll happily see what I can do.
- pick your theme from the command line, via dmenu, or graphically via
[n]sxiv - edit, update, or delete active theme with a single command
- set a random theme
- easily customise scope and mechanics of theme application via [{ba|z|k}]sh
- automatically generate icons for themes to aid integration with graphical applications
- store textual information about wallpapers. If you have wallpaper of a city, why not write a short bit about the city or the buildings in view?
- decent support for IceWM and COSMIC Epoch
- a bunch of neat-o example themes, easily installable via
newl install example-themes/*in newl’s source directory
Installation of shell scripts is trivial: simply place it in a directory listed in $PATH.
- Pywal16 (and thus Python)
- bc (if using the COSMIC extensions)
Use of these programs is hardcoded into the source, but it’s trivial to remove them and replace them with whatever you find more suitable, or just simply avoid options which use them.
- emacs
- pywalfox
- dwm with the dwmc and xrdb patches
- xrdb
- COSMIC Epoch
- dmenu
- [n]sxiv
- ImageMagick
First, you’ll need a theme. Make one the normal way (wal -i <image>).
Then, come up with a name for the theme, say, <theme>, and run newl n <theme>.
Your theme should be created. Run newl l to verify.
You can apply this theme at any time with newl a <theme>.
You’ll probably want to change which applications the theme gets applied to or how it gets applied to them. You have two ways of doing this:
- editing the
updatefunction in the source code - create and edit the post-application script via
newl p <theme>(make sure$EDITORis set)
For more information, try newl -h… or just read the source code.
