-
Notifications
You must be signed in to change notification settings - Fork 20
/
zenburn.py
163 lines (147 loc) · 4.81 KB
/
zenburn.py
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
# Ivaylo Kuzev <[email protected]>, 2014
# Zenburn like colorscheme for https://github.com/hut/ranger .
# default colorscheme.
# Copyright (C) 2009-2013 Roman Zimbelmann <[email protected]>
# This software is distributed under the terms of the GNU GPL version 3.
from ranger.gui.colorscheme import ColorScheme
from ranger.gui.color import default_colors, reverse, bold, normal, default
# pylint: disable=too-many-branches,too-many-statements
class Zenburn(ColorScheme):
progress_bar_color = 108
def use(self, context):
fg, bg, attr = default_colors
if context.reset:
return default_colors
elif context.in_browser:
if context.selected:
attr = reverse
else:
attr = normal
if context.empty or context.error:
fg = 174
bg = 235
if context.border:
fg = 248
if context.image:
fg = 109
if context.video:
fg = 66
if context.audio:
fg = 116
if context.document:
fg = 151
if context.container:
attr |= bold
fg = 174
if context.directory:
attr |= bold
fg = 223
elif context.executable and not \
any((context.media, context.container,
context.fifo, context.socket)):
attr |= bold
fg = 108
if context.socket:
fg = 180
attr |= bold
if context.fifo or context.device:
fg = 144
if context.device:
attr |= bold
if context.link:
fg = 223 if context.good else 116
bg = 234
if context.bad:
bg = 235
if context.tag_marker and not context.selected:
attr |= bold
if fg in (174, 95):
fg = 248
else:
fg = 174
if not context.selected and (context.cut or context.copied):
fg = 108
bg = 234
if context.main_column:
if context.selected:
attr |= bold
if context.marked:
attr |= bold
fg = 223
if context.badinfo:
if attr & reverse:
bg = 95
else:
fg = 95
elif context.in_titlebar:
attr |= bold
if context.hostname:
fg = 174 if context.bad else 180
elif context.directory:
fg = 223
elif context.tab:
if context.good:
bg = 180
elif context.link:
fg = 116
elif context.in_statusbar:
if context.permissions:
if context.good:
fg = 108
elif context.bad:
fg = 174
if context.marked:
attr |= bold | reverse
fg = 223
if context.message:
if context.bad:
attr |= bold
fg = 174
if context.loaded:
bg = self.progress_bar_color
if context.vcsinfo:
fg = 116
attr &= ~bold
if context.vcscommit:
fg = 144
attr &= ~bold
if context.text:
if context.highlight:
attr |= reverse
if context.in_taskview:
if context.title:
fg = 116
if context.selected:
attr |= reverse
if context.loaded:
if context.selected:
fg = self.progress_bar_color
else:
bg = self.progress_bar_color
if context.vcsfile and not context.selected:
attr &= ~bold
if context.vcsconflict:
fg = 95
elif context.vcschanged:
fg = 174
elif context.vcsunknown:
fg = 174
elif context.vcsstaged:
fg = 108
elif context.vcssync:
fg = 108
elif context.vcsignored:
fg = default
elif context.vcsremote and not context.selected:
attr &= ~bold
if context.vcssync:
fg = 108
elif context.vcsbehind:
fg = 174
elif context.vcsahead:
fg = 116
elif context.vcsdiverged:
fg = 95
elif context.vcsunknown:
fg = 174
return fg, bg, attr