Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tudurom/rainbou
Theme generator
https://github.com/tudurom/rainbou
Last synced: 2 months ago
JSON representation
Theme generator
- Host: GitHub
- URL: https://github.com/tudurom/rainbou
- Owner: tudurom
- License: isc
- Created: 2016-07-04T11:59:42.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-12-03T19:40:57.000Z (about 7 years ago)
- Last Synced: 2024-08-02T13:31:28.758Z (6 months ago)
- Language: CSS
- Size: 103 KB
- Stars: 30
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Rainbou
**Rainbou** *[reyn-boh]* is a command-line tool that generates
themes for a diversity of programs (as long as it has templates written for
them).Given a color scheme and a template file,
rainbou will generate a theme and print it to `stdout` (your
terminal's screen).## Installation
```bash
go get -u github.com/tudurom/rainbou
```You can use the same command for updating the program.
## Usage
```bash
─── ./rainbou
Usage:
$ rainbou - generate theme and print it on the screen
$ rainbou ls - list bundled color schemes/templatesWhere scheme_file is the name or the path of the color scheme file and
template_file is the name or the path of the color scheme file.
```## Color scheme format
Color scheme files are yaml files that have the following structure:
```yaml
metadata:
name: foo
author: bar
colors:
bg: "000000"
fg: "ffffff"
cr: "ffffff"00: "aaaaaa"
08: "bbbbbb"01: "cccccc"
09: "dddddd"...
07: "eeeeee"
15: "ffffff"
```Where `bg` is the background color, `fg` is the foreground color, `cr` is the
color of the cursor and `00` to `15` are terminal ANSI color code numbers.
Colors are written as an HTML color code without the leading `#`.[Full example](https://github.com/tudurom/rainbou/blob/master/db/colors/thunder.yaml).
## Template file format
Template files are normal [Go template files](https://golang.org/pkg/text/template/). Example:
```
! {{.Metadata.Name}} by {{.Metadata.Author}}! special
*.foreground: #{{index .ColorMap "fg" "hex"}}
*.background: #{{index .ColorMap "bg" "hex"}}
*.cursorColor: #{{index .ColorMap "cr" "hex"}}! black
*.color0: #{{index .ColorMap "00" "hex"}}
*.color8: #{{index .ColorMap "08" "hex"}}! red
*.color1: #{{index .ColorMap "01" "hex"}}
*.color9: #{{index .ColorMap "09" "hex"}}! green
*.color2: #{{index .ColorMap "02" "hex"}}
*.color10: #{{index .ColorMap "10" "hex"}}! yellow
*.color3: #{{index .ColorMap "03" "hex"}}
*.color11: #{{index .ColorMap "11" "hex"}}! blue
*.color4: #{{index .ColorMap "04" "hex"}}
*.color12: #{{index .ColorMap "12" "hex"}}! magenta (or orange)
*.color5: #{{index .ColorMap "05" "hex"}}
*.color13: #{{index .ColorMap "13" "hex"}}! cyan
*.color6: #{{index .ColorMap "06" "hex"}}
*.color14: #{{index .ColorMap "14" "hex"}}! white
*.color7: #{{index .ColorMap "07" "hex"}}
*.color15: #{{index .ColorMap "15" "hex"}}! vim: set ft=xdefaults :
````{{.Metadata.Name}}` is the name of the color scheme and `{{.Metadata.Author}}`
is the name of the Author.Colors can be written as:
```
{{index .ColorMap "" ""}}
```Where `
` is a number from `00` to `15` and `` is any of the following:
- `hex` - HTML color code without the leading `#`
- `hexbgr` - like `hex` but with the color components reversed (`123456` ->
`563412`)- `dhex` - "double" `hex`; like `hex` but with color components doubled
(`123456` -> `121234345656`)- `rgb` - array consisting of three color components. The values are in the
[0-255] range. To access the `R`
component:```
{{index .ColorMap "" "rgb" 0}}
```- `srgb` - same as `rgb` but with values ranging from `0` to `1`.