Theming
kivimango opened this issue · 1 comments
Themes
twin commander should provide a way to users to select from a list of premade themes and/or make their own theme(s) and help to distribute them to customize the aesthetics of the application as they please.
Overview
A Theme is a collection of key/pair values that make up the style of the user interface.
A theme file should be a plain text file located in ~/.local/share/twc/themes/
with an extension of .ron or .toml.
One file must be contain only one theme.
The name of the file will be the name of the theme.The names must follow the snake_case
convention.
Loading themes
The current applied theme should be saved in the configuration file in ~/.config/twc.toml
.
The application shall load the name of the theme from the config file, then load the given theme, and apply it to the user interface.
Distributing themes
Take into consideration of the following methods:
- github packages
- create a separate repository only for the themes, e.g.: twin-commander-themes
- github pages
- a separate, free static website for storing and downloading themes
The application must provide a user interface for listing locally installed themes, browsing available themes, and installing them.
Theme editor
It would be good to make a separate application only for creating and editing themes for the users.
Could be text mode too or a webpage (github pages?)
It is a good idea to "inherit" a system's color settings by interpreting the LSCOLORS environment variable.
This way in the future, users could select "System" theme when listing the available themes in the Settings menu.
See https://opensource.com/article/19/9/linux-terminal-colors