summaryrefslogtreecommitdiff
path: root/doc/vtcol.rst
blob: 2e3c533ea005c66d6eccd7fe8948e176a84a70e7 (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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
===============================================================================
                                     vtcol
===============================================================================

*******************************************************************************
                     color schemes for the Linux™ console 
*******************************************************************************

:Date:                  2021-11-10
:Version:               0.42.5
:Manual section:        1
:Manual group:          console

Synopsis
-------------------------------------------------------------------------------

**vtcol** [--help] [--version] [--verbose] <command> [<args>]

Description
-------------------------------------------------------------------------------

**vtcol** manipulates and inspects the color map of the Linux console
using ``ioctl_console(2)`` syscalls.

vtcol commands
-------------------------------------------------------------------------------

``vtcol`` actions are provided by these these subcommands:

**help**

    Prints this message or the help of the given subcommand(s)


**set**

    Set the scheme for the current terminal with ``PIO_CMAP``. ::

        $ vtcol set solarized

**list**

    List predefined schemes. ::

        $ vtcol list
        4 color schemes available:
              * solarized
              * solarized_light
              * default
              * phosphor

    These are only the schemes built into the ``vtcol`` binary. Any
    other scheme can be loaded using the ``--file`` argument.

**dump**

    Print the palette of the specified scheme in more or less human readable
    representation.

**get**

    Get the current color scheme with ``GIO_CMAP``. The result is matched
    against the builtin schemes; if a scheme matches, only its preferred name
    is printed (e. g. ``solarized_light``). ::

        $ vtcol get
        solarized

    Otherwise the palette is printed as with the ``dump`` subcommand.

**toggle**

    Like ``vtcol set`` but supports two ``SCHEME`` arguments.

    First the active scheme is checked against *the first positional argument*;
    if there is a match, the scheme specified by the *second argument* will be
    loaded, otherwise the first one. The effect is that in repeated invocations
    of the same command the scheme is toggled between the two arguments. E. g.
    use: ::

        $ vtcol toggle solarized solarized_light

    to cycle the console palette between “dark mode” and “light mode”.

set options
-------------------------------------------------------------------------------
::

    vtcol set [--file FILE]

    vtcol set [SCHEME]

``SCHEME``

    Load the predefined color scheme *SCHEME*. For a list of options, use
    ``vtcol list``. Alternatively, ``-`` can be used to specify *stdin*.

``-f FILE, --file FILE``

    Load color scheme from *FILE* which can be a filesystem path or the special
    argument ``-`` to specify *stdin*.

    Mutually exclusive with *SCHEME*.

toggle options
-------------------------------------------------------------------------------

`vtcol toggle ONE TWO``

``ONE``

    First scheme to alternate between. Will be loaded *unless* it is the active
    scheme.

``TWO``

    Second scheme to alternate between. Will be loaded if *ONE* is the active
    scheme.

Scheme file syntax overview
-------------------------------------------------------------------------------

.. TODO:: unimplemented!()

Examples
-------------------------------------------------------------------------------

1. Get the current color scheme: ::

    $ vtcol get

2. Turn your screen into an 80s style monochrome lookalike: ::

    $ vtcol set phosphor

3. Reset console to default colors: ::

    $ vtcol set default

4. Set color scheme from stdin: ::

    $ <./schemes/zebra vtcol set -

5. List available builtin schemes: ::

    $ vtcol list

6. Cycle between night mode and day mode: ::

    $ vtcol toggle solarized solarized_light

Copyright
-------------------------------------------------------------------------------

Copyright: 2015-2021 Philipp Gesang

This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License.

See also
-------------------------------------------------------------------------------

**ioctl_console**\(2), **tty**\(4)

The ``setcolors`` utility should be considered prior art, visit
`<https://github.com/EvanPurkhiser/linux-vt-setcolors>`.

Notes
-------------------------------------------------------------------------------

Upstream resides at `<https://gitlab.com/phgsgng/vtcol>`.