System wide theme configuration tool
Report Bug
·
Request Feature
There are hundreds of different color schemes, and for an equally large number of different programs. Thema, does not aim to add to any of this, but instead to create a single tool that can be used to use the different themes that are available.
Thema is a single bash script, which can be executed entirely in a single line, no need to download or clone anything. The collection of themes, and application configurations that are stored in this repository define the themes, variants and outputs that Thema can produce. The script, attempts to detect which programs are currently installed/configured on your system, and then it injects the theme configuration into the programs configuration, or files. Then after all configurations have been updated, a set of commands are executed, to apply the updates to the system.
To use Thema, simply run
foo@bar:~$ curl https://raw.githubusercontent.com/LuxAter/Thema/master/thema | bash -s -- --help
System wide theme configuration tool
Usage: ./thema [-h|--help] [-v|--version] [-o|--output <arg>] [-t|--theme <arg>] [--variant <arg>] [--(no-)list-themes] [--(no-)list-variants] [--(no-)list-outputs] [-q|--(no-)quiet] [-f|--(no-)fancy] [-u|--remote_url <arg>] [-r|--(no-)remote]
-h, --help: Prints help
-v, --version: Prints version
-o, --output: outputs to install new theme (empty by default)
-t, --theme: theme to install (no default)
--variant: theme variant to install (no default)
--list-themes, --no-list-themes: list available themes (off by default)
--list-variants, --no-list-variants: list available variants (off by default)
--list-outputs, --no-list-outputs: list available outputs (off by default)
-q, --quiet, --no-quiet: quiet execution, no output to stdout (off by default)
-f, --fancy, --no-fancy: fancy formatted output (on by default)
-u, --remote_url: remote url to use if necessary (default: 'https://raw.githubusercontent.com/LuxAter/Thema/master/')
-r, --remote, --no-remote: use remote configuration/files (off by default)Contributions are what make the open source community such an amazing place to be, learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the project
- Create your feature branch (
git checkout -b feature/<my-feature>) - Commit your changes (
git commit -m '<my-commit-message>') - Push to the branch (
git push origin feature/<my-feature>) - Open a pull request
The specification for the outputs is still under development, but as of writting this it is:
<name>:
<source_file>:
destination:
- <destination_file>
- [alternative_destination_file]
start_of_file: [true|false]
comment: [<comment_start> <comment_end>]
[command]:
- <command_to_run>
- [additional_command_to_run]Variables of the form <xxx> are required and must be set. Variables of the
from [xxx] are optional, and can be omited. Notice, that if the command
section is defined, then the command_to_run is required, but otherwise, they
are optional.
Distributed under the MIT license. See
LICENSE.md
for more information.