summary refs log tree commit diff stats
path: root/doc/colorschemes.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/colorschemes.txt')
-rw-r--r--doc/colorschemes.txt91
1 files changed, 91 insertions, 0 deletions
diff --git a/doc/colorschemes.txt b/doc/colorschemes.txt
new file mode 100644
index 00000000..9df33c3e
--- /dev/null
+++ b/doc/colorschemes.txt
@@ -0,0 +1,91 @@
+= Abstract =
+
+This text explains colorschemes and how they work.
+
+
+= Context Tags =
+
+Context Tags provide information about the context.  If the tag
+"in_titlebar" is set, you probably want to know about the color
+of a part of the titlebar now.
+
+There are a number of context tags, specified in /ranger/gui/context.py
+in the constant CONTEXT_KEYS.
+
+A Context object, defined in the same file, contains attributes with
+the names of all tags, whose values are either True or False.
+
+
+= Implementation in the GUI Classes =
+
+The class CursesShortcuts in the file /ranger/gui/curses_shortcuts.py
+defines the methods color(*tags), color_at(y, x, wid, *tags) and
+color_reset().  This class is a superclass of Displayable, so these
+methods are available almost everywhere.
+
+Something like color("in_titlebar", "directory") will be called to
+get the color of directories in the titlebar.  This creates a
+ranger.gui.context.Context object, sets its attributes "in_titlebar" and
+"directory" to True, leaves the others as False, and passes it to the
+colorscheme's use(context) method.
+
+
+= The Color Scheme =
+
+A colorscheme should be a subclass of ranger.gui.ColorScheme and
+define the method use(context).  By looking at the context, this use-method
+has to determine a 3-tuple of integers: (foreground, background, attribute)
+and return it.
+
+foreground and background are integers representing colors,
+attribute is another integer with each bit representing one attribute.
+These integers are interpreted by the used terminal emulator.
+
+Abbreviations for colors and attributes are defined in ranger.gui.color.
+Two attributes can be combined via logical OR: bold | reverse
+
+Once the color for a set of tags is determined, it will be cached by
+default.  If you want more dynamic colorschemes (such as a different
+color for very large files), you will need to dig into the source code,
+perhaps add an own tag and modify the draw-method of the widget to use
+that tag.
+
+Run tc_colorscheme to check if your colorschemes are valid.
+
+
+= Specify a Colorscheme =
+
+Colorschemes are searched for in these directories:
+~/.ranger/colorschemes/
+/ranger/colorschemes/
+
+To specify which colorscheme to use, define the variable "colorscheme"
+in your options.py:
+colorscheme = colorschemes.default
+
+This means, use the (one) colorscheme contained in
+either ~/.ranger/colorschemes/default.py or /ranger/colorschemes/default.py.
+
+You can define more than one colorscheme in a colorscheme file.  The
+one named "Scheme" will be chosen in that case.  If there is no colorscheme
+named "Scheme", an arbitrary one will be picked.  You could also explicitly
+specify which colorscheme to use in your options.py:
+colorscheme = colorschemes.default.MyOtherScheme
+
+
+= Adapt a colorscheme =
+
+You may want to adapt a colorscheme to your needs without having
+a complete copy of it, but rather the changes only.  Say, you
+want the exact same colors as in the default colorscheme, but
+the directories to be green rather than blue, because you find the
+blue hard to read.
+
+This is done in the jungle colorscheme ranger.colorschemes.jungle.Scheme,
+check it out for implementation details.  In short, I made a subclass
+of the default scheme, set the initial colors to the result of the
+default use() method and modified the colors how I wanted.
+
+This has the obvious advantage that you need to write less, which
+results in less maintainance work and a greater chance that your colorscheme
+will work with future versions of ranger.
&id=acd07c4abfbc15252d28c884c2bea6d67910a465'>^
277ecc9e ^
9983328c ^
33cb688a ^
a1274aba ^
b42eb058 ^
b13518af ^
316ff5a9 ^
fc486c60 ^
b4934e42 ^
2c1d2db0 ^
291ca616 ^
50845f37 ^
039c03ef ^
af6658b3 ^
efe2d7a3 ^
f0df3fa5 ^
a986e2bd ^

3fe38754 ^

6a8d5d23 ^
aad61455 ^
7a268c8b ^

efdc7b16 ^
4be8b401 ^



d955e3f0 ^
75013dc7 ^
67bb838c ^
a808a661 ^
bba8d293 ^
2a64495f ^
5e449699 ^
fc486c60 ^
c5450bd1 ^
7b04e507 ^
87db0130 ^
dd4a4145 ^
8f2f1767 ^
db1721dd ^
aea5cf92 ^
b624bd94 ^
69d1220f ^
bd8ef764 ^
0128bee7 ^
6f43de0a ^




fca1fc4f ^
f70ee6b2 ^
0db4c9b2 ^
b2d63ef5 ^
291ca616 ^
d994d0d6 ^
01c89bb5 ^
66c5bb93 ^
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