summaryrefslogtreecommitdiff
path: root/README.rst
blob: 922e2bf1a56aa75847c41b75984c2a32d82c99f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
###############################################################################
                                     VTCOL
###############################################################################

Change the color scheme of the virtual Linux console. Inspired by the
setcolors_ utility.

Usage
-----
**vtcol** knows two ways of loading a color scheme: Either by picking the
definitions for a set of predefined schemes or by loading it from a definition
file. The latter accepts input in the format supported by setcolors_. NB not
much effort has been put into ensuring compliance so YMMV. Check the
subdirectory ``./schemes`` in the **vtcol** tree for examples.

Three color schemes are predefined:

    * ``default``          the default color scheme of the Linux console.
    * ``solarized``        the Solarized_ color scheme, dark version.
    * ``solarized_light``  the Solarized_ color scheme, light version.

Invoke **vtcol** with the ``--scheme`` option specifying the scheme of your
choice:

::

    vtcol --scheme solarized_light

In order to view the available schemes, use the ``--list`` option. Should the
scheme specified not resolve to one of the predefined ones, **vtcol** will fall
back to interpreting the name as that of a file. Likewise, loading a scheme
directly from a definition file is accomplished by specifying the ``--file``
argument.

::

    vtcol --file ./schemes/solarized

Instead of an actual scheme or file name, these parameters accept ``-``
as an argument in order to read from ``stdin``.

Also, in order to view a scheme’s definition, for instance in order to verify
that **vtcol** parses it correctly, specify the ``--dump`` option.

::

    vtcol --dump default
    vtcol --dump ./schemes/solarized

This will print the list of color definitions as dictated by the scheme; if the
specified name does not resolve to a pre-defined scheme it will be interpreted
as a file name instead.

Building
--------

Use Cargo to obtain a binary:

::

    cargo build

Background
----------
The default palette that comes with a Linux terminal was inherited from a long
history of virtual console implementations. The colors assigned were chosen for
pragmatic reasons but that palette may not harmonize with everybody’s taste.
Enter **vtcol**.

**vtcol** attempts to make the console colors themeable with a simple plain
text input format. The very popular themes from the Solarized_ family are
included as predefined palettes; the same is true of the Linux default palette,
so they can be conveniently restored when experimenting.

About
-----
The **vtcol** source code is available from the `canonical repository`_.
**vtcol** is redistributable under the terms of the `GNU General Public
License`_ version 3 (exactly). Patches or suggestions welcome.

.. _setcolors:                  https://github.com/EvanPurkhiser/linux-vt-setcolors
.. _Solarized:                  http://ethanschoonover.com/solarized
.. _GNU General Public License: http://www.gnu.org/licenses/gpl.txt
.. _canonical repository:       https://gitlab.com/phgsng/vtcol