## Unfinished ideas * Read out tmux session / window / panel names (or, for panels/windows, the names of programs running) and pass them to rofi for it to show them and allow 'tabbing' to them a-la Alt-Tab windows ## Implementables ### styler * [x] styler should be able to present a list of all installed packages/processors/themes * [ ] styler should have an additional display for each application that a theme is available * [x] use same style for processors as for packages * [x] enable downloading * [x] from github / link > user inputs author/repo and it automatically downloads package/processor (decided by name) * [x] so, `styler download chriskempson/base16-vim` will automatically clone into package directory * [x] `styler download marty-oehme/yabam16-vim` will automatically clone into processor directory * [x] `styler download someone/any-string-here` should also automatically download into processor dir, but print a warning * [ ] enable suggestion of missing packages when downloading processors * [ ] some processors contain `readonly dependency=("author/package")` format to make sure they run against the right package * [ ] when this is the case and the package does not exist, warn the user or propose to automatically download the package * [ ] enable suggestion of processors/packages when running empty download * [ ] `styler download` should suggest some processors to download (i.e. applications), and either suggest packages or make use of the previous suggestion and have them automatically suggested when installing the processor * [x] enable switch for theme switching/permanent theming through styler * [x] styler should, by default, only *switch* applications to the new theme but not make the theme default * [x] when invoked with saving switch, the processors should make sure that the theme will be the default theme for the next run of the application * [x] perhaps styler should invoke processors with additional "switch" "save" first variable being passed, which they will use to differentiate * [ ] enable shell completion for themes * [ ] read configuration from configrc file (containing processors/packages to download, applications to set?) * [ ] Bug: duplicate processors mess it up * [ ] Find out which *applications* will be styled (perhaps grep comparison of processors/packages and if both have an application name, display this) * [ ] Feature: styler processor calling could be extended for a post-hook, which would be run after setting the new themes. So, it could work like `processor variables "switch"`, `processor variables "set"`, `processor variables "post"`, to have these hooks. Hooks could even be extended to switch_pre, switch, switch_post, set_pre, set, set_post; though perhaps YAGNI. * [ ] Feature: add `get` option, where you can input an app/processor and it displays its current theme; or do `get` without argument to display it for each app/processor? * [ ] a better way to set a processor and package which should target an app * [ ] packages do not know about styler (and shouldn't), processors *do*, processors should carry the information of which packages they can be used for, and should recommend package installation on download * [ ] the process workflow/lifecycle: * [ ] styler gathers all processors (with some algorithm deciding which takes precedence for applications) * [ ] the processors carry dependencies on packages, styler ensures these are met * [ ] styler sources the processes and calls, in order * [ ] set_pre -- called before any process sets themes * [ ] set -- called for each processor in turn * [ ] set_post -- called after each processor sets themes * [ ] theme_pre -- called before each processor switches themes * [ ] theme -- called for each processor in turn * [ ] theme_post-- called after each processor switches themes ### processors * [x] shell should set shell colors even when invoked through rofi * [x] shell should set it for *all* terminals, not just the one it ran it (through pgrep?) * [ ] shell should be able to save the colorscheme permanently * [x] qutebrowser should be able to save the colorscheme permanently * [x] vim should actually save the colorscheme, not just the name of it?