Skip to content

Commit 3440499

Browse files
committed
gruvbox_light theme added and included in themes
1 parent 850d5b6 commit 3440499

File tree

5 files changed

+115
-9
lines changed

5 files changed

+115
-9
lines changed

tests/config/test_themes.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
expected_complete_themes = {
2323
"zt_dark",
2424
"gruvbox_dark",
25+
"gruvbox_light",
2526
"zt_light",
2627
"zt_blue",
2728
}

zulipterminal/config/themes.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from pygments.token import STANDARD_TYPES
44

55
from zulipterminal.config.color import term16
6-
from zulipterminal.themes import gruvbox_dark, zt_blue, zt_dark, zt_light
6+
from zulipterminal.themes import gruvbox_dark, gruvbox_light, zt_blue, zt_dark, zt_light
77

88

99
StyleSpec = Union[
@@ -87,14 +87,16 @@
8787

8888
THEMES: Dict[str, Any] = {
8989
"gruvbox_dark": gruvbox_dark,
90+
"gruvbox_light": gruvbox_light,
9091
"zt_dark": zt_dark,
9192
"zt_light": zt_light,
9293
"zt_blue": zt_blue,
9394
}
9495

9596
THEME_ALIASES = {
9697
"default": "zt_dark",
97-
"gruvbox": "gruvbox_dark",
98+
"gruvbox_dark": "gruvbox_dark",
99+
"gruvbox_light": "gruvbox_light",
98100
"light": "zt_light",
99101
"blue": "zt_blue",
100102
}

zulipterminal/themes/colors_gruvbox.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,24 @@ class GruvBoxColor(Enum):
2323
# color = 16code 256code 24code
2424
DEFAULT = 'default default default'
2525
DARK0_HARD = 'black h234 #1d2021'
26+
DARK2 = 'black h239 #504945'
27+
DARK4 = 'black h243 #7c6f64'
28+
GRAY_245 = 'dark_gray h245 #928374'
2629
GRAY_244 = 'dark_gray h244 #928374'
30+
LIGHT0_HARD = 'white h230 #f9f5d7'
2731
LIGHT2 = 'white h250 #d5c4a1'
2832
LIGHT4 = 'light_gray h248 #bdae93'
29-
BRIGHT_BLUE = 'light_blue h109 #83a598'
30-
BRIGHT_GREEN = 'light_green h142 #b8bb26'
3133
BRIGHT_RED = 'light_red h167 #fb4934'
32-
NEUTRAL_PURPLE = 'light_magenta h132 #b16286'
34+
BRIGHT_GREEN = 'light_green h142 #b8bb26'
35+
BRIGHT_YELLOW = 'brown h214 #fabd2f'
36+
BRIGHT_BLUE = 'light_blue h109 #83a598'
37+
NEUTRAL_YELLOW = 'brown h172 #d79921'
3338
NEUTRAL_BLUE = 'dark_cyan h66 #458588'
34-
NEUTRAL_YELLOW = 'yellow h172 #d79921'
35-
FADED_BLUE = 'dark_blue h24 #076678'
36-
FADED_YELLOW = 'brown h136 #b57614'
39+
NEUTRAL_PURPLE = 'light_magenta h132 #b16286'
3740
FADED_RED = 'dark_red h88 #9d0006'
41+
FADED_GREEN = 'dark_green h100 #79740e'
42+
FADED_YELLOW = 'brown h136 #b57614'
43+
FADED_BLUE = 'dark_blue h24 #076678'
3844
# fmt: on
3945

4046

zulipterminal/themes/gruvbox_dark.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
'header' : (Color.NEUTRAL_BLUE, Color.FADED_BLUE),
2525
'general_narrow' : (Color.LIGHT2, Color.FADED_BLUE),
2626
'general_bar' : (Color.LIGHT2, Color.DARK0_HARD),
27-
'name' : (Color.NEUTRAL_YELLOW__BOLD, Color.DARK0_HARD),
27+
'name' : (Color.NEUTRAL_YELLOW, Color.DARK0_HARD),
2828
'unread' : (Color.NEUTRAL_PURPLE, Color.DARK0_HARD),
2929
'user_active' : (Color.BRIGHT_GREEN, Color.DARK0_HARD),
3030
'user_idle' : (Color.NEUTRAL_YELLOW, Color.DARK0_HARD),

zulipterminal/themes/gruvbox_light.py

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
"""
2+
GRUVBOX LIGHT
3+
-------------
4+
5+
For syntax highlighting, this theme uses the solarized light styles
6+
from pygments. This could be updated to a gruvbox style when the style
7+
is released.
8+
9+
For further details on themefiles look at the theme contribution guide
10+
"""
11+
from pygments.styles.solarized import SolarizedLightStyle
12+
13+
from zulipterminal.themes.colors_gruvbox import DefaultBoldColor as Color
14+
15+
16+
# fmt: off
17+
18+
STYLES = {
19+
# style_name : foreground background
20+
None : (Color.DARK2, Color.LIGHT0_HARD),
21+
'selected' : (Color.DARK2, Color.BRIGHT_BLUE),
22+
'msg_selected' : (Color.DARK2, Color.BRIGHT_BLUE),
23+
'header' : (Color.NEUTRAL_BLUE, Color.BRIGHT_BLUE),
24+
'general_narrow' : (Color.DARK2, Color.BRIGHT_BLUE),
25+
'general_bar' : (Color.DARK2, Color.LIGHT0_HARD),
26+
'name' : (Color.NEUTRAL_YELLOW, Color.LIGHT0_HARD),
27+
'unread' : (Color.NEUTRAL_PURPLE, Color.LIGHT0_HARD),
28+
'user_active' : (Color.FADED_GREEN, Color.LIGHT0_HARD),
29+
'user_idle' : (Color.NEUTRAL_YELLOW, Color.LIGHT0_HARD),
30+
'user_offline' : (Color.DARK2, Color.LIGHT0_HARD),
31+
'user_inactive' : (Color.DARK2, Color.LIGHT0_HARD),
32+
'title' : (Color.DARK2__BOLD, Color.LIGHT0_HARD),
33+
'column_title' : (Color.DARK2__BOLD, Color.LIGHT0_HARD),
34+
'time' : (Color.FADED_BLUE, Color.LIGHT0_HARD),
35+
'bar' : (Color.DARK2, Color.GRAY_245),
36+
'msg_emoji' : (Color.NEUTRAL_PURPLE, Color.LIGHT0_HARD),
37+
'reaction' : (Color.NEUTRAL_PURPLE__BOLD, Color.LIGHT0_HARD),
38+
'reaction_mine' : (Color.LIGHT0_HARD, Color.NEUTRAL_PURPLE),
39+
'msg_heading' : (Color.LIGHT0_HARD__BOLD, Color.FADED_GREEN),
40+
'msg_math' : (Color.LIGHT0_HARD, Color.GRAY_245),
41+
'msg_mention' : (Color.FADED_RED__BOLD, Color.LIGHT0_HARD),
42+
'msg_link' : (Color.FADED_BLUE, Color.LIGHT0_HARD),
43+
'msg_link_index' : (Color.FADED_BLUE__BOLD, Color.LIGHT0_HARD),
44+
'msg_quote' : (Color.BRIGHT_YELLOW, Color.LIGHT0_HARD),
45+
'msg_code' : (Color.LIGHT0_HARD, Color.DARK2),
46+
'msg_bold' : (Color.DARK2__BOLD, Color.LIGHT0_HARD),
47+
'msg_time' : (Color.LIGHT0_HARD, Color.DARK2),
48+
'footer' : (Color.LIGHT0_HARD, Color.DARK4),
49+
'footer_contrast' : (Color.DARK2, Color.LIGHT0_HARD),
50+
'starred' : (Color.FADED_RED__BOLD, Color.LIGHT0_HARD),
51+
'unread_count' : (Color.NEUTRAL_YELLOW, Color.LIGHT0_HARD),
52+
'starred_count' : (Color.DARK4, Color.LIGHT0_HARD),
53+
'table_head' : (Color.DARK2__BOLD, Color.LIGHT0_HARD),
54+
'filter_results' : (Color.LIGHT0_HARD, Color.FADED_GREEN),
55+
'edit_topic' : (Color.LIGHT0_HARD, Color.GRAY_245),
56+
'edit_tag' : (Color.LIGHT0_HARD, Color.GRAY_245),
57+
'edit_author' : (Color.NEUTRAL_YELLOW, Color.LIGHT0_HARD),
58+
'edit_time' : (Color.FADED_BLUE, Color.LIGHT0_HARD),
59+
'current_user' : (Color.DARK2, Color.LIGHT0_HARD),
60+
'muted' : (Color.FADED_BLUE, Color.LIGHT0_HARD),
61+
'popup_border' : (Color.DARK2, Color.LIGHT0_HARD),
62+
'popup_category' : (Color.FADED_BLUE__BOLD, Color.LIGHT0_HARD),
63+
'popup_contrast' : (Color.LIGHT0_HARD, Color.GRAY_245),
64+
'popup_important' : (Color.FADED_RED__BOLD, Color.LIGHT0_HARD),
65+
'widget_disabled' : (Color.GRAY_245, Color.LIGHT0_HARD),
66+
'area:help' : (Color.LIGHT0_HARD, Color.FADED_GREEN),
67+
'area:msg' : (Color.LIGHT0_HARD, Color.FADED_RED),
68+
'area:stream' : (Color.LIGHT0_HARD, Color.FADED_BLUE),
69+
'area:error' : (Color.DARK2, Color.BRIGHT_RED),
70+
'area:user' : (Color.DARK2, Color.BRIGHT_BLUE),
71+
'search_error' : (Color.FADED_RED, Color.LIGHT0_HARD),
72+
'task:success' : (Color.LIGHT0_HARD, Color.FADED_GREEN),
73+
'task:error' : (Color.DARK2, Color.BRIGHT_RED),
74+
'task:warning' : (Color.LIGHT0_HARD, Color.FADED_RED),
75+
}
76+
77+
META = {
78+
'pygments': {
79+
'styles' : SolarizedLightStyle().styles,
80+
'background': '#ffffcc',
81+
'overrides' : {
82+
'c' : '#586E75, italics', # base01
83+
'cp' : '#859900', # magenta
84+
'cpf' : '#586e75', # base01
85+
'ge' : '#93A1A1, italics', # base0
86+
'gh' : '#CB4B16, bold', # base0
87+
'gu' : '#CB4B16, underline', # base0
88+
'gp' : '#93A1A1, bold', # blue
89+
'gs' : '#93A1A1, bold', # base0
90+
'err' : '#93A1A1', # red
91+
'n' : '#93A1A1', # gruvbox: light4
92+
'p' : '#93A1A1', # gruvbox: light4
93+
'w' : '#93A1A1', # gruvbox: light4
94+
}
95+
}
96+
}
97+
# fmt: on

0 commit comments

Comments
 (0)