Skip to content

Commit dd5ea68

Browse files
authored
Merge pull request #78 from jan-warchol/devel
Update contributing guidelines
2 parents 7bdb50e + 6a08455 commit dd5ea68

File tree

3 files changed

+43
-73
lines changed

3 files changed

+43
-73
lines changed

CONTRIBUTING.md

Lines changed: 23 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,33 @@
1-
Syntax highlighting design principles
2-
-------------------------------------
3-
4-
Here are some general guidelines for deciding which types of tokens should be
5-
colored with which color:
6-
7-
- overall effect shouldn't be overwhelming - don't color everything, strive for
8-
harmony (compare with [this monokai
9-
example](https://i.imgur.com/ATVTHr6.png), which has colors all over the
10-
place)
11-
- contrasting colors shouldn't appear next to each other too often
12-
- structurally most important elements should be most visible
13-
- less important content should be visually "in the background"
14-
- short tokens (and punctuation, if it's to be colored) should preferably use
15-
stronger colors
16-
- long tokens should use "softer" colors to avoid making the result too
17-
aggressive
18-
- rare tokens should use a color that draws attention and is not used by some
19-
common tokens
20-
- try to leverage common color associations wherever possible (e.g. red ->
21-
problem, green -> no problem)
22-
- warm colors (orange, yellow) are best for tokens associated with action
23-
- cold colors (cyan, blue) are best for things that don't change
24-
- [non-spectral colors](https://en.wikipedia.org/wiki/Spectral_color) (purple,
25-
magenta) are best for things with special meaning/behavior
26-
27-
This means that, for example:
28-
29-
- comments must be gray, so that they fade into background (unlike many schemes
30-
in which comments are green and clutter the view)
31-
- function and class definitions must be clearly visible from distance (perhaps
32-
bright bold foreground)
33-
- orange is a good color for numbers
34-
- exceptions should probably be bold and they must not be green
35-
- preprocessor, interpolation, macros and other meta-processing things "feel"
36-
magenta
37-
- cyan is a good color for `CONSTANTS`
38-
- should boilerplate be blue? or gray? or not colored at all?
39-
40-
41-
Development
42-
-----------
43-
44-
Selenized is still work-in-progress. Here are some of my plans for the future:
45-
- add ready-to-use config files for more terminals
46-
- support more command-line programs (add selenized skins/configs for them - in
47-
particular I'd like to fine-tune dircolors to look as good as possible with
48-
Selenized)
49-
- add a dark-on-light variant of the palette
50-
- extend Selenized to 8 accent colors (add orange and violet, like in
51-
Solarized)
52-
- add color schemes for popular IDEs
53-
- add a script that would allow [adjusting Selenized to your taste](#forking)
54-
using a web interface
55-
- maybe even create a library that would allow adjusting LAB lightness in
56-
arbitrary color palettes based on the experience I got creating Selenized
57-
- research perceptually uniform color spaces - maybe they could be used to
58-
improve consistency of Selenized colors even further? See
1+
Contributing to Selenized
2+
=========================
3+
4+
Development roadmap
5+
-------------------
6+
7+
Selenized is quite complete, but there are some things that could still be done.
8+
Some ideas for the future:
9+
10+
- better, more nuanced syntax highlighting rules (see [issue
11+
68](https://github.com/jan-warchol/selenized/issues/68))
12+
- web interface for [adjusting Selenized to your taste](#forking)
13+
- a library that would allow "fixing" existing color palettes (by adjusting Lab
14+
lightness of their colors while keeping original hue and saturation)
15+
- learn more about perceptually uniform color spaces - maybe they could be used
16+
to improve consistency of Selenized colors even further? See
5917
[here](www.brucelindbloom.com/UPLab.html) and
6018
[here](https://en.wikipedia.org/wiki/Munsell_color_system).
6119

62-
If you'd like to help with any of these, please get in touch - open a pull
63-
request or contact me at jan.warchol@gmail.com.
20+
And of course, adding support for more programs, terminals, editors, IDEs etc.
6421

65-
Also, open an issue if you found a program that doesn't look good with
66-
Selenized terminal or encountered a situation where Selenized was not readable
67-
enough. Until version 1.0 I'm open to suggestions on adjusting the colors.
22+
If you'd like to help but are not sure where to start, contact me at
23+
jan.warchol@gmail.com. Also, please [open an
24+
issue](https://github.com/jan-warchol/selenized/issues) if you found a program
25+
that doesn't look good with Selenized colors in your terminal.
6826

6927

7028

71-
Forking
72-
-------
29+
Customization
30+
-------------
7331

7432
You are welcome to adjust Selenized to your taste - I can imagine that some
7533
people may want to change the hue of the background/content colors or adjust

manual-installation.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ Guidelines for creating a selenized theme for your terminal emulator.
55

66
Each Selenized variant defines 3 background shades (`bg_*`), 3 content shades
77
(`dim_*`, `fg_*`) and 8 accent colors (each with a bright version). This
8-
document explains which color to use for what. You can find RGB values of the
9-
colors [here](the-values.md).
8+
document explains which color to use for what. You can find [RGB values of the
9+
colors **here**](the-values.md).
1010

1111

1212
### Color mapping
@@ -56,8 +56,20 @@ ANSI palette:
5656
| 14 | bright cyan | br_cyan |
5757
| 15 | bright white | fg_1 |
5858

59+
60+
### Creating a template
61+
62+
Theme files should be generated from templates (so that it's easy to create
63+
configs for all selenized variants, and update them whenever colors change).
64+
65+
See
66+
[`utils/templates/template-test.example.template`](./utils/templates/template-test.example.template)
67+
for an example template and [`utils/README.md`](./utils/README.md) for
68+
instructions on how to use templating machinery.
69+
5970
That's it!
6071

6172
Please send me a [pull request](https://github.com/jan-warchol/selenized/pulls)
62-
with the resulting configuration so that I can make your terminal officially
63-
supported :-)
73+
with the resulting configs and template so that I can make your terminal
74+
officially supported :-)
75+

utils/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ templates.
99
### Requirements
1010

1111
- [Python](https://www.python.org/) with development files. Python 3.7
12-
and 2.7 is known works; 3.5 and 3.6 might work, but nobody tried yet,
12+
and 2.7 is known to work; 3.5 and 3.6 might work, but nobody tried yet.
1313
- [Colormath](https://github.com/gtaylor/python-colormath) Python library.
1414

1515
Example requirements installation for Debian/Ubuntu Linux and Python 2.7:
@@ -27,13 +27,13 @@ Example requirements installation for Debian/Ubuntu Linux and Python 2.7:
2727
To generate config file, use `evaluate_template.py` script. You need to provide
2828
it with two arguments: path to the palette module (with the palette you want to
2929
use) and path to a template config for your terminal. For example, if you
30-
wanted to generate selenized medium config file for iTerm, you would do it like
30+
wanted to generate selenized dark config file for iTerm, you would do it like
3131
this:
3232

3333
selenized/utils$ python evaluate_template.py \
34-
palettes/selenized_medium.py \
34+
palettes/selenized_dark.py \
3535
templates/itermcolors.template
36-
[...]
36+
3737
Processing templates/itermcolors.template...
3838
Result written to output/Selenized medium.itermcolors
3939

0 commit comments

Comments
 (0)