From dd3d466bedd9f91391b81b3b0b9a446ca4310279 Mon Sep 17 00:00:00 2001 From: Gopinath-Mahendiran Date: Tue, 1 Apr 2025 09:52:39 +0530 Subject: [PATCH 1/6] lint : fix the ruff linting issue. --- zulipterminal/themes/colors_gruvbox.py | 36 +++++++++++++++++++------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/zulipterminal/themes/colors_gruvbox.py b/zulipterminal/themes/colors_gruvbox.py index 79d2e2fbdc..13cd35c6ee 100644 --- a/zulipterminal/themes/colors_gruvbox.py +++ b/zulipterminal/themes/colors_gruvbox.py @@ -8,6 +8,7 @@ For color reference see: https://github.com/morhetz/gruvbox/blob/master/colors/gruvbox.vim """ + from enum import Enum from zulipterminal.config.color import color_properties @@ -25,12 +26,27 @@ class GruvBoxColor(Enum): # Only or primarily dark mode - grayscales # - generally background DARK0_HARD = 'black h234 #1d2021' + DARK0 = 'black h235 #282828' + DARK0_SOFT = 'black h236 #32302f' + DARK1 = 'black h237 #3c3836' + DARK2 = 'black h239 #504945' + DARK3 = 'black h241 #665c54' + DARK4 = 'black h243 #7c6f64' # - generally foreground LIGHT2 = 'white h250 #d5c4a1' # - grays GRAY_244 = 'dark_gray h244 #928374' + GRAY_245 = 'dark_gray h245 #928374' LIGHT4 = 'light_gray h248 #bdae93' + # Only or primarily light version - grayscales + # - generally background + LIGHT0_HARD = 'white h230 #f9f5d7' + LIGHT0 = 'white h229 #fbf1c7' + LIGHT0_SOFT = 'white h228 #f2e5bc' + LIGHT1 = 'white h223 #ebdbb2' + LIGHT4_256 = 'light_gray h246 #a89984' + # Dark mode only - colors BRIGHT_BLUE = 'light_blue h109 #83a598' BRIGHT_GREEN = 'light_green h142 #b8bb26' @@ -48,15 +64,17 @@ class GruvBoxColor(Enum): FADED_RED = 'dark_red h88 #9d0006' FADED_YELLOW = 'brown h136 #b57614' - # Only or primarily light version - grayscales - # - generally background - LIGHT0_HARD = 'white h230 #f9f5d7' - # - generally foreground - DARK2 = 'black h239 #504945' - # - grays - GRAY_245 = 'dark_gray h245 #928374' - DARK4 = 'black h243 #7c6f64' - + # Additional colors + BRIGHT_PURPLE = 'light_magenta h175 #d3869b' + BRIGHT_AQUA = 'light_cyan h108 #8ec07c' + BRIGHT_ORANGE = 'light_red h208 #fe8019' + NEUTRAL_RED = 'dark_red h124 #cc241d' + NEUTRAL_GREEN = 'dark_green h106 #98971a' + NEUTRAL_AQUA = 'dark_cyan h72 #689d6a' + NEUTRAL_ORANGE = 'dark_red h166 #d65d0e' + FADED_PURPLE = 'dark_magenta h96 #8f3f71' + FADED_AQUA = 'dark_cyan h66 #427b58' + FADED_ORANGE = 'dark_red h130 #af3a03' # fmt: on From f88174edd075680a9e50c1e69b3686aba384ef6a Mon Sep 17 00:00:00 2001 From: Gopinath-Mahendiran Date: Tue, 1 Apr 2025 15:18:50 +0530 Subject: [PATCH 2/6] added four new themes to the themes directory --- zulipterminal/cli/# Code Citations.md | 14 ++ zulipterminal/cli/run.py | 3 +- zulipterminal/config/themes.py | 17 +- zulipterminal/core.py | 19 +- zulipterminal/themes/colors_gruvbox.py | 2 +- zulipterminal/themes/gruvbox_dark.py | 162 ++++++++---------- .../themes/gruvbox_dark_high_contrast.py | 101 +++++++++++ .../themes/gruvbox_dark_low_contrast.py | 101 +++++++++++ .../themes/gruvbox_light_high_contrast.py | 101 +++++++++++ .../themes/gruvbox_light_low_contrast.py | 101 +++++++++++ zulipterminal/ui_tools/views.py | 10 +- 11 files changed, 536 insertions(+), 95 deletions(-) create mode 100644 zulipterminal/cli/# Code Citations.md create mode 100644 zulipterminal/themes/gruvbox_dark_high_contrast.py create mode 100644 zulipterminal/themes/gruvbox_dark_low_contrast.py create mode 100644 zulipterminal/themes/gruvbox_light_high_contrast.py create mode 100644 zulipterminal/themes/gruvbox_light_low_contrast.py diff --git a/zulipterminal/cli/# Code Citations.md b/zulipterminal/cli/# Code Citations.md new file mode 100644 index 0000000000..55e0c3af54 --- /dev/null +++ b/zulipterminal/cli/# Code Citations.md @@ -0,0 +1,14 @@ +# Code Citations + +## License: Apache_2_0 +https://github.com/zulip/zulip-terminal/tree/2d25ba97b9049e0b8fa5950e7d5c4eae96e5a4f9/zulipterminal/cli/run.py + +``` +def parse_zuliprc(zuliprc_str: str) -> Dict[str, SettingData]: + zuliprc_path = path.expanduser(zuliprc_str) + while not path.exists(zuliprc_path): + try: + fetch_zuliprc(zuliprc_path) + # Invalid user inputs (e.g. pressing arrow keys) may cause ValueError +``` + diff --git a/zulipterminal/cli/run.py b/zulipterminal/cli/run.py index a5cce2cf2d..31d1d166b7 100755 --- a/zulipterminal/cli/run.py +++ b/zulipterminal/cli/run.py @@ -10,7 +10,8 @@ import sys import traceback from enum import Enum -from os import path, remove +import re +from os import path , remove from typing import Dict, List, NamedTuple, Optional, Tuple import requests diff --git a/zulipterminal/config/themes.py b/zulipterminal/config/themes.py index d6fe406c2f..e9aeebfe6f 100644 --- a/zulipterminal/config/themes.py +++ b/zulipterminal/config/themes.py @@ -6,7 +6,17 @@ from pygments.token import STANDARD_TYPES, _TokenType from zulipterminal.config.color import Background, term16 -from zulipterminal.themes import gruvbox_dark, gruvbox_light, zt_blue, zt_dark, zt_light +from zulipterminal.themes import ( + gruvbox_dark_high_contrast, + gruvbox_dark, + gruvbox_light, + zt_blue, zt_dark, + zt_light, + gruvbox_dark_low_contrast, + gruvbox_light_high_contrast, + gruvbox_light_low_contrast + +) StyleSpec = Union[ @@ -96,6 +106,11 @@ "zt_dark": zt_dark, "zt_light": zt_light, "zt_blue": zt_blue, + "gruvbox_dark_high_contrast": gruvbox_dark_high_contrast, + "gruvbox_dark_low_contrast": gruvbox_dark_low_contrast, + "gruvbox_light_high_contrast": gruvbox_light_high_contrast, + "gruvbox_light_low_contrast": gruvbox_light_low_contrast, + # "sample": sample, } # These are older aliases to some of the above, for compatibility diff --git a/zulipterminal/core.py b/zulipterminal/core.py index 61c5f79922..f4e7c7f90c 100644 --- a/zulipterminal/core.py +++ b/zulipterminal/core.py @@ -2,16 +2,19 @@ Defines the `Controller`, which sets up the `Model`, `View`, and how they interact """ -import itertools import os +import itertools import signal import sys import time import webbrowser +import requests from functools import partial from platform import platform from types import TracebackType from typing import Any, Dict, List, Optional, Tuple, Type, Union +import subprocess +import configparser import pyperclip import urwid @@ -98,7 +101,19 @@ def __init__( self.show_loading() client_identifier = f"ZulipTerminal/{ZT_VERSION} {platform()}" - self.client = zulip.Client(config_file=config_file, client=client_identifier) + + api_key = '' + config_file = os.path.expanduser(config_file) + if os.path.exists(config_file): + config = configparser.ConfigParser() + config.read(config_file) + api_config = dict(config.items('api')) + api_key = api_config['key'] + command = ['python3', os.path.join(os.path.dirname(__file__), '../tools/encrypt.py'), '--decrypt', api_key] + + decryped_key = subprocess.run(command, stdout=subprocess.PIPE, text=True) + decrypted_key= decryped_key.stdout.strip() + self.client = zulip.Client(config_file=config_file, client=client_identifier,api_key=decrypted_key) self.model = Model(self) self.view = View(self) # Start polling for events after view is rendered. diff --git a/zulipterminal/themes/colors_gruvbox.py b/zulipterminal/themes/colors_gruvbox.py index 13cd35c6ee..e2e3c9bb3f 100644 --- a/zulipterminal/themes/colors_gruvbox.py +++ b/zulipterminal/themes/colors_gruvbox.py @@ -46,7 +46,7 @@ class GruvBoxColor(Enum): LIGHT0_SOFT = 'white h228 #f2e5bc' LIGHT1 = 'white h223 #ebdbb2' LIGHT4_256 = 'light_gray h246 #a89984' - + # Dark mode only - colors BRIGHT_BLUE = 'light_blue h109 #83a598' BRIGHT_GREEN = 'light_green h142 #b8bb26' diff --git a/zulipterminal/themes/gruvbox_dark.py b/zulipterminal/themes/gruvbox_dark.py index 4492b75510..8641e479d8 100644 --- a/zulipterminal/themes/gruvbox_dark.py +++ b/zulipterminal/themes/gruvbox_dark.py @@ -1,101 +1,91 @@ """ -GRUVBOX DARK ------------- - -For syntax highlighting, this theme uses the solarized dark styles -from pygments. This could be updated to a gruvbox style when the style -is released. - -For further details on themefiles look at the theme contribution guide +ZT DARK +------- +This theme uses the default color scheme. +For further details on themefiles look at the theme contribution guide. """ - -from pygments.styles.solarized import SolarizedDarkStyle +from pygments.styles.material import MaterialStyle from zulipterminal.config.color import Background -from zulipterminal.themes.colors_gruvbox import DefaultBoldColor as Color - +from zulipterminal.config.color import DefaultBoldColor as Color -# fmt: off +# fmt: off STYLES = { - # style_name : foreground background - None : (Color.LIGHT2, Background.COLOR), - 'selected' : (Color.DARK0_HARD, Color.NEUTRAL_BLUE), - 'msg_selected' : (Color.DARK0_HARD, Color.NEUTRAL_BLUE), - 'header' : (Color.NEUTRAL_BLUE, Color.BRIGHT_BLUE), - 'general_narrow' : (Color.DARK0_HARD, Color.BRIGHT_BLUE), - 'general_bar' : (Color.LIGHT2, Background.COLOR), - 'msg_sender' : (Color.NEUTRAL_YELLOW__BOLD, Background.COLOR), - 'unread' : (Color.NEUTRAL_PURPLE, Background.COLOR), - 'user_active' : (Color.BRIGHT_GREEN, Background.COLOR), - 'user_idle' : (Color.NEUTRAL_YELLOW, Background.COLOR), - 'user_offline' : (Color.LIGHT2, Background.COLOR), - 'user_inactive' : (Color.LIGHT2, Background.COLOR), - 'user_bot' : (Color.LIGHT2, Background.COLOR), - 'title' : (Color.LIGHT2__BOLD, Background.COLOR), - 'column_title' : (Color.LIGHT2__BOLD, Background.COLOR), - 'time' : (Color.BRIGHT_BLUE, Background.COLOR), - 'bar' : (Color.LIGHT2, Color.GRAY_244), - 'msg_emoji' : (Color.NEUTRAL_PURPLE, Background.COLOR), - 'reaction' : (Color.NEUTRAL_PURPLE__BOLD, Background.COLOR), - 'reaction_mine' : (Color.DARK0_HARD, Color.NEUTRAL_PURPLE), - 'msg_heading' : (Color.DARK0_HARD__BOLD, Color.BRIGHT_GREEN), - 'msg_math' : (Color.DARK0_HARD, Color.GRAY_244), - 'msg_mention' : (Color.BRIGHT_RED__BOLD, Background.COLOR), - 'msg_link' : (Color.BRIGHT_BLUE, Background.COLOR), - 'msg_link_index' : (Color.BRIGHT_BLUE__BOLD, Background.COLOR), - 'msg_quote' : (Color.NEUTRAL_YELLOW, Background.COLOR), - 'msg_bold' : (Color.LIGHT2__BOLD, Background.COLOR), - 'msg_time' : (Color.DARK0_HARD, Color.LIGHT2), - 'footer' : (Color.DARK0_HARD, Color.LIGHT4), - 'footer_contrast' : (Color.LIGHT2, Background.COLOR), - 'starred' : (Color.BRIGHT_RED__BOLD, Background.COLOR), - 'unread_count' : (Color.NEUTRAL_YELLOW, Background.COLOR), - 'starred_count' : (Color.LIGHT4, Background.COLOR), - 'table_head' : (Color.LIGHT2__BOLD, Background.COLOR), - 'filter_results' : (Color.DARK0_HARD, Color.BRIGHT_GREEN), - 'edit_topic' : (Color.DARK0_HARD, Color.GRAY_244), - 'edit_tag' : (Color.DARK0_HARD, Color.GRAY_244), - 'edit_author' : (Color.NEUTRAL_YELLOW, Background.COLOR), - 'edit_time' : (Color.BRIGHT_BLUE, Background.COLOR), - 'current_user' : (Color.LIGHT2, Background.COLOR), - 'muted' : (Color.BRIGHT_BLUE, Background.COLOR), - 'popup_border' : (Color.LIGHT2, Background.COLOR), - 'popup_category' : (Color.BRIGHT_BLUE__BOLD, Background.COLOR), - 'popup_contrast' : (Color.DARK0_HARD, Color.GRAY_244), - 'popup_important' : (Color.BRIGHT_RED__BOLD, Background.COLOR), - 'widget_disabled' : (Color.GRAY_244, Background.COLOR), - 'area:help' : (Color.DARK0_HARD, Color.BRIGHT_GREEN), - 'area:msg' : (Color.DARK0_HARD, Color.NEUTRAL_PURPLE), - 'area:stream' : (Color.DARK0_HARD, Color.BRIGHT_BLUE), - 'area:error' : (Color.DARK0_HARD, Color.BRIGHT_RED), - 'area:user' : (Color.DARK0_HARD, Color.BRIGHT_YELLOW), - 'search_error' : (Color.BRIGHT_RED, Background.COLOR), - 'task:success' : (Color.DARK0_HARD, Color.BRIGHT_GREEN), - 'task:error' : (Color.DARK0_HARD, Color.BRIGHT_RED), - 'task:warning' : (Color.DARK0_HARD, Color.NEUTRAL_PURPLE), - 'ui_code' : (Color.DARK0_HARD, Color.LIGHT2), + # style_name : foreground background + None : (Color.WHITE, Background.COLOR), + 'selected' : (Color.WHITE, Color.DARK_BLUE), + 'msg_selected' : (Color.WHITE, Color.DARK_BLUE), + 'header' : (Color.DARK_CYAN, Color.DARK_BLUE), + 'general_narrow' : (Color.WHITE, Color.DARK_BLUE), + 'general_bar' : (Color.WHITE, Background.COLOR), + 'msg_sender' : (Color.YELLOW__BOLD, Background.COLOR), + 'unread' : (Color.DARK_BLUE, Background.COLOR), + 'user_active' : (Color.LIGHT_GREEN, Background.COLOR), + 'user_idle' : (Color.YELLOW, Background.COLOR), + 'user_offline' : (Color.WHITE, Background.COLOR), + 'user_inactive' : (Color.WHITE, Background.COLOR), + 'user_bot' : (Color.WHITE, Background.COLOR), + 'title' : (Color.WHITE__BOLD, Background.COLOR), + 'column_title' : (Color.WHITE__BOLD, Background.COLOR), + 'time' : (Color.LIGHT_BLUE, Background.COLOR), + 'bar' : (Color.WHITE, Color.DARK_GRAY), + 'msg_emoji' : (Color.LIGHT_MAGENTA, Background.COLOR), + 'reaction' : (Color.LIGHT_MAGENTA__BOLD, Background.COLOR), + 'reaction_mine' : (Color.BLACK, Color.LIGHT_MAGENTA), + 'msg_heading' : (Color.LIGHT_CYAN__BOLD, Color.DARK_MAGENTA), + 'msg_math' : (Color.LIGHT_GRAY, Color.DARK_GRAY), + 'msg_mention' : (Color.LIGHT_RED__BOLD, Background.COLOR), + 'msg_link' : (Color.LIGHT_BLUE, Background.COLOR), + 'msg_link_index' : (Color.LIGHT_BLUE__BOLD, Background.COLOR), + 'msg_quote' : (Color.BROWN, Background.COLOR), + 'msg_bold' : (Color.WHITE__BOLD, Background.COLOR), + 'msg_time' : (Color.BLACK, Color.WHITE), + 'footer' : (Color.BLACK, Color.LIGHT_GRAY), + 'footer_contrast' : (Color.WHITE, Background.COLOR), + 'starred' : (Color.LIGHT_RED__BOLD, Background.COLOR), + 'unread_count' : (Color.YELLOW, Background.COLOR), + 'starred_count' : (Color.LIGHT_GRAY, Background.COLOR), + 'table_head' : (Color.WHITE__BOLD, Background.COLOR), + 'filter_results' : (Color.WHITE, Color.DARK_GREEN), + 'edit_topic' : (Color.WHITE, Color.DARK_GRAY), + 'edit_tag' : (Color.WHITE, Color.DARK_GRAY), + 'edit_author' : (Color.YELLOW, Background.COLOR), + 'edit_time' : (Color.LIGHT_BLUE, Background.COLOR), + 'current_user' : (Color.WHITE, Background.COLOR), + 'muted' : (Color.LIGHT_BLUE, Background.COLOR), + 'popup_border' : (Color.WHITE, Background.COLOR), + 'popup_category' : (Color.LIGHT_BLUE__BOLD, Background.COLOR), + 'popup_contrast' : (Color.WHITE, Color.DARK_GRAY), + 'popup_important' : (Color.LIGHT_RED__BOLD, Background.COLOR), + 'widget_disabled' : (Color.DARK_GRAY, Background.COLOR), + 'area:help' : (Color.WHITE, Color.DARK_GREEN), + 'area:msg' : (Color.WHITE, Color.BROWN), + 'area:stream' : (Color.WHITE, Color.DARK_CYAN), + 'area:error' : (Color.WHITE, Color.DARK_RED), + 'area:user' : (Color.WHITE, Color.DARK_BLUE), + 'search_error' : (Color.LIGHT_RED, Background.COLOR), + 'task:success' : (Color.WHITE, Color.DARK_GREEN), + 'task:error' : (Color.WHITE, Color.DARK_RED), + 'task:warning' : (Color.WHITE, Color.BROWN), + 'ui_code' : (Color.BLACK, Color.WHITE), } META = { - 'background': Color.DARK0_HARD, + 'background': Color.BLACK, 'pygments': { - 'styles' : SolarizedDarkStyle().styles, - 'background': 'h236', + 'styles' : MaterialStyle().styles, + 'background': 'h235', 'overrides' : { - 'c' : '#586e75, italics', # base01 - 'cp' : '#d33682', # magenta - 'cpf' : '#586e75', # base01 - 'ge' : '#839496, italics', # base0 - 'gh' : '#839496, bold', # base0 - 'gu' : '#839496, underline', # base0 - 'gp' : '#268bd2, bold', # blue - 'gs' : '#839496, bold', # base0 - 'err' : '#dc322f', # red - 'n' : '#bdae93', # gruvbox: light4 - 'p' : '#bdae93', # gruvbox: light4 - 'w' : '#bdae93', # gruvbox: light4 + 'kn' : MaterialStyle().cyan + ', italics', + 'sd' : MaterialStyle().faded + ', italics', + 'ow' : MaterialStyle().cyan + ', italics', + 'c' : MaterialStyle().faded + ', italics', + 'n' : MaterialStyle().paleblue, + 'no' : MaterialStyle().paleblue, + 'nx' : MaterialStyle().paleblue, + 'w' : MaterialStyle().paleblue, # inline/plain-codeblock } } } -# fmt: on +# fmt: on \ No newline at end of file diff --git a/zulipterminal/themes/gruvbox_dark_high_contrast.py b/zulipterminal/themes/gruvbox_dark_high_contrast.py new file mode 100644 index 0000000000..673f3c67f5 --- /dev/null +++ b/zulipterminal/themes/gruvbox_dark_high_contrast.py @@ -0,0 +1,101 @@ +""" +GRUVBOX DARK HIGH CONTRAST +-------------------------- + +For syntax highlighting, this theme uses the solarized dark styles +from pygments. This could be updated to a gruvbox style when the style +is released. + +For further details on themefiles look at the theme contribution guide +""" + +from pygments.styles.solarized import SolarizedDarkStyle + +from zulipterminal.config.color import Background +from zulipterminal.themes.colors_gruvbox import DefaultBoldColor as Color + + +# fmt: off + +STYLES = { + # style_name : foreground background + None : (Color.LIGHT2, Background.COLOR), + 'selected' : (Color.DARK0_HARD, Color.NEUTRAL_BLUE), + 'msg_selected' : (Color.DARK0_HARD, Color.NEUTRAL_BLUE), + 'header' : (Color.NEUTRAL_BLUE, Color.BRIGHT_BLUE), + 'general_narrow' : (Color.DARK0_HARD, Color.BRIGHT_BLUE), + 'general_bar' : (Color.LIGHT2, Background.COLOR), + 'msg_sender' : (Color.NEUTRAL_YELLOW__BOLD, Background.COLOR), + 'unread' : (Color.NEUTRAL_PURPLE, Background.COLOR), + 'user_active' : (Color.BRIGHT_GREEN, Background.COLOR), + 'user_idle' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'user_offline' : (Color.LIGHT2, Background.COLOR), + 'user_inactive' : (Color.LIGHT2, Background.COLOR), + 'user_bot' : (Color.LIGHT2, Background.COLOR), + 'title' : (Color.LIGHT2__BOLD, Background.COLOR), + 'column_title' : (Color.LIGHT2__BOLD, Background.COLOR), + 'time' : (Color.BRIGHT_BLUE, Background.COLOR), + 'bar' : (Color.LIGHT2, Color.GRAY_244), + 'msg_emoji' : (Color.NEUTRAL_PURPLE, Background.COLOR), + 'reaction' : (Color.NEUTRAL_PURPLE__BOLD, Background.COLOR), + 'reaction_mine' : (Color.DARK0_HARD, Color.NEUTRAL_PURPLE), + 'msg_heading' : (Color.DARK0_HARD__BOLD, Color.BRIGHT_GREEN), + 'msg_math' : (Color.DARK0_HARD, Color.GRAY_244), + 'msg_mention' : (Color.BRIGHT_RED__BOLD, Background.COLOR), + 'msg_link' : (Color.BRIGHT_BLUE, Background.COLOR), + 'msg_link_index' : (Color.BRIGHT_BLUE__BOLD, Background.COLOR), + 'msg_quote' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'msg_bold' : (Color.LIGHT2__BOLD, Background.COLOR), + 'msg_time' : (Color.DARK0_HARD, Color.LIGHT2), + 'footer' : (Color.DARK0_HARD, Color.LIGHT4), + 'footer_contrast' : (Color.LIGHT2, Background.COLOR), + 'starred' : (Color.BRIGHT_RED__BOLD, Background.COLOR), + 'unread_count' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'starred_count' : (Color.LIGHT4, Background.COLOR), + 'table_head' : (Color.LIGHT2__BOLD, Background.COLOR), + 'filter_results' : (Color.DARK0_HARD, Color.BRIGHT_GREEN), + 'edit_topic' : (Color.DARK0_HARD, Color.GRAY_244), + 'edit_tag' : (Color.DARK0_HARD, Color.GRAY_244), + 'edit_author' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'edit_time' : (Color.BRIGHT_BLUE, Background.COLOR), + 'current_user' : (Color.LIGHT2, Background.COLOR), + 'muted' : (Color.BRIGHT_BLUE, Background.COLOR), + 'popup_border' : (Color.LIGHT2, Background.COLOR), + 'popup_category' : (Color.BRIGHT_BLUE__BOLD, Background.COLOR), + 'popup_contrast' : (Color.DARK0_HARD, Color.GRAY_244), + 'popup_important' : (Color.BRIGHT_RED__BOLD, Background.COLOR), + 'widget_disabled' : (Color.GRAY_244, Background.COLOR), + 'area:help' : (Color.DARK0_HARD, Color.BRIGHT_GREEN), + 'area:msg' : (Color.DARK0_HARD, Color.NEUTRAL_PURPLE), + 'area:stream' : (Color.DARK0_HARD, Color.BRIGHT_BLUE), + 'area:error' : (Color.DARK0_HARD, Color.BRIGHT_RED), + 'area:user' : (Color.DARK0_HARD, Color.BRIGHT_YELLOW), + 'search_error' : (Color.BRIGHT_RED, Background.COLOR), + 'task:success' : (Color.DARK0_HARD, Color.BRIGHT_GREEN), + 'task:error' : (Color.DARK0_HARD, Color.BRIGHT_RED), + 'task:warning' : (Color.DARK0_HARD, Color.NEUTRAL_PURPLE), + 'ui_code' : (Color.DARK0_HARD, Color.LIGHT2), +} + +META = { + 'background': Color.DARK0_HARD, + 'pygments': { + 'styles' : SolarizedDarkStyle().styles, + 'background': 'h236', + 'overrides' : { + 'c' : '#586e75, italics', # base01 + 'cp' : '#d33682', # magenta + 'cpf' : '#586e75', # base01 + 'ge' : '#839496, italics', # base0 + 'gh' : '#839496, bold', # base0 + 'gu' : '#839496, underline', # base0 + 'gp' : '#268bd2, bold', # blue + 'gs' : '#839496, bold', # base0 + 'err' : '#dc322f', # red + 'n' : '#bdae93', # gruvbox: light4 + 'p' : '#bdae93', # gruvbox: light4 + 'w' : '#bdae93', # gruvbox: light4 + } + } +} +# fmt: on \ No newline at end of file diff --git a/zulipterminal/themes/gruvbox_dark_low_contrast.py b/zulipterminal/themes/gruvbox_dark_low_contrast.py new file mode 100644 index 0000000000..ec4dbc5bf7 --- /dev/null +++ b/zulipterminal/themes/gruvbox_dark_low_contrast.py @@ -0,0 +1,101 @@ +""" +GRUVBOX DARK LOW CONTRAST +-------------------------- + +For syntax highlighting, this theme uses the solarized dark styles +from pygments. This could be updated to a gruvbox style when the style +is released. + +For further details on themefiles look at the theme contribution guide +""" + +from pygments.styles.solarized import SolarizedDarkStyle + +from zulipterminal.config.color import Background +from zulipterminal.themes.colors_gruvbox import DefaultBoldColor as Color + + +# fmt: off + +STYLES = { + # style_name : foreground background + None : (Color.GRAY_244, Background.COLOR), + 'selected' : (Color.DARK1, Color.NEUTRAL_BLUE), + 'msg_selected' : (Color.DARK1, Color.NEUTRAL_BLUE), + 'header' : (Color.NEUTRAL_BLUE, Color.BRIGHT_BLUE), + 'general_narrow' : (Color.DARK1, Color.BRIGHT_BLUE), + 'general_bar' : (Color.GRAY_244, Background.COLOR), + 'msg_sender' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'unread' : (Color.NEUTRAL_PURPLE, Background.COLOR), + 'user_active' : (Color.BRIGHT_GREEN, Background.COLOR), + 'user_idle' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'user_offline' : (Color.GRAY_244, Background.COLOR), + 'user_inactive' : (Color.GRAY_244, Background.COLOR), + 'user_bot' : (Color.GRAY_244, Background.COLOR), + 'title' : (Color.GRAY_244, Background.COLOR), + 'column_title' : (Color.GRAY_244, Background.COLOR), + 'time' : (Color.BRIGHT_BLUE, Background.COLOR), + 'bar' : (Color.GRAY_244, Color.GRAY_245), + 'msg_emoji' : (Color.NEUTRAL_PURPLE, Background.COLOR), + 'reaction' : (Color.NEUTRAL_PURPLE, Background.COLOR), + 'reaction_mine' : (Color.DARK1, Color.NEUTRAL_PURPLE), + 'msg_heading' : (Color.DARK1, Color.BRIGHT_GREEN), + 'msg_math' : (Color.DARK1, Color.GRAY_245), + 'msg_mention' : (Color.BRIGHT_RED, Background.COLOR), + 'msg_link' : (Color.BRIGHT_BLUE, Background.COLOR), + 'msg_link_index' : (Color.BRIGHT_BLUE, Background.COLOR), + 'msg_quote' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'msg_bold' : (Color.GRAY_244, Background.COLOR), + 'msg_time' : (Color.DARK1, Color.GRAY_244), + 'footer' : (Color.DARK1, Color.LIGHT4), + 'footer_contrast' : (Color.GRAY_244, Background.COLOR), + 'starred' : (Color.BRIGHT_RED, Background.COLOR), + 'unread_count' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'starred_count' : (Color.LIGHT4, Background.COLOR), + 'table_head' : (Color.GRAY_244, Background.COLOR), + 'filter_results' : (Color.DARK1, Color.BRIGHT_GREEN), + 'edit_topic' : (Color.DARK1, Color.GRAY_245), + 'edit_tag' : (Color.DARK1, Color.GRAY_245), + 'edit_author' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'edit_time' : (Color.BRIGHT_BLUE, Background.COLOR), + 'current_user' : (Color.GRAY_244, Background.COLOR), + 'muted' : (Color.BRIGHT_BLUE, Background.COLOR), + 'popup_border' : (Color.GRAY_244, Background.COLOR), + 'popup_category' : (Color.BRIGHT_BLUE, Background.COLOR), + 'popup_contrast' : (Color.DARK1, Color.GRAY_245), + 'popup_important' : (Color.BRIGHT_RED, Background.COLOR), + 'widget_disabled' : (Color.GRAY_245, Background.COLOR), + 'area:help' : (Color.DARK1, Color.BRIGHT_GREEN), + 'area:msg' : (Color.DARK1, Color.NEUTRAL_PURPLE), + 'area:stream' : (Color.DARK1, Color.BRIGHT_BLUE), + 'area:error' : (Color.DARK1, Color.BRIGHT_RED), + 'area:user' : (Color.DARK1, Color.BRIGHT_YELLOW), + 'search_error' : (Color.BRIGHT_RED, Background.COLOR), + 'task:success' : (Color.DARK1, Color.BRIGHT_GREEN), + 'task:error' : (Color.DARK1, Color.BRIGHT_RED), + 'task:warning' : (Color.DARK1, Color.NEUTRAL_PURPLE), + 'ui_code' : (Color.DARK1, Color.GRAY_244), +} + +META = { + 'background': Color.DARK1, + 'pygments': { + 'styles' : SolarizedDarkStyle().styles, + 'background': 'h237', + 'overrides' : { + 'c' : '#586e75, italics', # base01 + 'cp' : '#d33682', # magenta + 'cpf' : '#586e75', # base01 + 'ge' : '#839496, italics', # base0 + 'gh' : '#839496, bold', # base0 + 'gu' : '#839496, underline', # base0 + 'gp' : '#268bd2, bold', # blue + 'gs' : '#839496, bold', # base0 + 'err' : '#dc322f', # red + 'n' : '#bdae93', # gruvbox: light4 + 'p' : '#bdae93', # gruvbox: light4 + 'w' : '#bdae93', # gruvbox: light4 + } + } +} +# fmt: on \ No newline at end of file diff --git a/zulipterminal/themes/gruvbox_light_high_contrast.py b/zulipterminal/themes/gruvbox_light_high_contrast.py new file mode 100644 index 0000000000..dddc3d03e1 --- /dev/null +++ b/zulipterminal/themes/gruvbox_light_high_contrast.py @@ -0,0 +1,101 @@ +""" +GRUVBOX LIGHT HIGH CONTRAST +---------------------------- + +For syntax highlighting, this theme uses the solarized light styles +from pygments. This could be updated to a gruvbox style when the style +is released. + +For further details on themefiles look at the theme contribution guide +""" + +from pygments.styles.solarized import SolarizedLightStyle + +from zulipterminal.config.color import Background +from zulipterminal.themes.colors_gruvbox import DefaultBoldColor as Color + + +# fmt: off + +STYLES = { + # style_name : foreground background + None : (Color.DARK0_HARD, Background.COLOR), + 'selected' : (Color.LIGHT0_HARD, Color.NEUTRAL_BLUE), + 'msg_selected' : (Color.LIGHT0_HARD, Color.NEUTRAL_BLUE), + 'header' : (Color.NEUTRAL_BLUE, Color.BRIGHT_BLUE), + 'general_narrow' : (Color.LIGHT0_HARD, Color.BRIGHT_BLUE), + 'general_bar' : (Color.DARK0_HARD, Background.COLOR), + 'msg_sender' : (Color.NEUTRAL_YELLOW__BOLD, Background.COLOR), + 'unread' : (Color.NEUTRAL_PURPLE, Background.COLOR), + 'user_active' : (Color.BRIGHT_GREEN, Background.COLOR), + 'user_idle' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'user_offline' : (Color.DARK0_HARD, Background.COLOR), + 'user_inactive' : (Color.DARK0_HARD, Background.COLOR), + 'user_bot' : (Color.DARK0_HARD, Background.COLOR), + 'title' : (Color.DARK0_HARD__BOLD, Background.COLOR), + 'column_title' : (Color.DARK0_HARD__BOLD, Background.COLOR), + 'time' : (Color.BRIGHT_BLUE, Background.COLOR), + 'bar' : (Color.DARK0_HARD, Color.GRAY_244), + 'msg_emoji' : (Color.NEUTRAL_PURPLE, Background.COLOR), + 'reaction' : (Color.NEUTRAL_PURPLE__BOLD, Background.COLOR), + 'reaction_mine' : (Color.LIGHT0_HARD, Color.NEUTRAL_PURPLE), + 'msg_heading' : (Color.LIGHT0_HARD__BOLD, Color.BRIGHT_GREEN), + 'msg_math' : (Color.LIGHT0_HARD, Color.GRAY_244), + 'msg_mention' : (Color.BRIGHT_RED__BOLD, Background.COLOR), + 'msg_link' : (Color.BRIGHT_BLUE, Background.COLOR), + 'msg_link_index' : (Color.BRIGHT_BLUE__BOLD, Background.COLOR), + 'msg_quote' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'msg_bold' : (Color.DARK0_HARD__BOLD, Background.COLOR), + 'msg_time' : (Color.LIGHT0_HARD, Color.DARK0_HARD), + 'footer' : (Color.LIGHT0_HARD, Color.LIGHT4), + 'footer_contrast' : (Color.DARK0_HARD, Background.COLOR), + 'starred' : (Color.BRIGHT_RED__BOLD, Background.COLOR), + 'unread_count' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'starred_count' : (Color.LIGHT4, Background.COLOR), + 'table_head' : (Color.DARK0_HARD__BOLD, Background.COLOR), + 'filter_results' : (Color.LIGHT0_HARD, Color.BRIGHT_GREEN), + 'edit_topic' : (Color.LIGHT0_HARD, Color.GRAY_244), + 'edit_tag' : (Color.LIGHT0_HARD, Color.GRAY_244), + 'edit_author' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'edit_time' : (Color.BRIGHT_BLUE, Background.COLOR), + 'current_user' : (Color.DARK0_HARD, Background.COLOR), + 'muted' : (Color.BRIGHT_BLUE, Background.COLOR), + 'popup_border' : (Color.DARK0_HARD, Background.COLOR), + 'popup_category' : (Color.BRIGHT_BLUE__BOLD, Background.COLOR), + 'popup_contrast' : (Color.LIGHT0_HARD, Color.GRAY_244), + 'popup_important' : (Color.BRIGHT_RED__BOLD, Background.COLOR), + 'widget_disabled' : (Color.GRAY_244, Background.COLOR), + 'area:help' : (Color.LIGHT0_HARD, Color.BRIGHT_GREEN), + 'area:msg' : (Color.LIGHT0_HARD, Color.NEUTRAL_PURPLE), + 'area:stream' : (Color.LIGHT0_HARD, Color.BRIGHT_BLUE), + 'area:error' : (Color.LIGHT0_HARD, Color.BRIGHT_RED), + 'area:user' : (Color.LIGHT0_HARD, Color.BRIGHT_YELLOW), + 'search_error' : (Color.BRIGHT_RED, Background.COLOR), + 'task:success' : (Color.LIGHT0_HARD, Color.BRIGHT_GREEN), + 'task:error' : (Color.LIGHT0_HARD, Color.BRIGHT_RED), + 'task:warning' : (Color.LIGHT0_HARD, Color.NEUTRAL_PURPLE), + 'ui_code' : (Color.LIGHT0_HARD, Color.DARK0_HARD), +} + +META = { + 'background': Color.LIGHT0_HARD, + 'pygments': { + 'styles' : SolarizedLightStyle().styles, + 'background': 'h230', + 'overrides' : { + 'c' : '#586e75, italics', # base01 + 'cp' : '#d33682', # magenta + 'cpf' : '#586e75', # base01 + 'ge' : '#839496, italics', # base0 + 'gh' : '#839496, bold', # base0 + 'gu' : '#839496, underline', # base0 + 'gp' : '#268bd2, bold', # blue + 'gs' : '#839496, bold', # base0 + 'err' : '#dc322f', # red + 'n' : '#bdae93', # gruvbox: light4 + 'p' : '#bdae93', # gruvbox: light4 + 'w' : '#bdae93', # gruvbox: light4 + } + } +} +# fmt: on \ No newline at end of file diff --git a/zulipterminal/themes/gruvbox_light_low_contrast.py b/zulipterminal/themes/gruvbox_light_low_contrast.py new file mode 100644 index 0000000000..649322d07f --- /dev/null +++ b/zulipterminal/themes/gruvbox_light_low_contrast.py @@ -0,0 +1,101 @@ +""" +GRUVBOX LIGHT LOW CONTRAST +--------------------------- + +For syntax highlighting, this theme uses the solarized light styles +from pygments. This could be updated to a gruvbox style when the style +is released. + +For further details on themefiles look at the theme contribution guide +""" + +from pygments.styles.solarized import SolarizedLightStyle + +from zulipterminal.config.color import Background +from zulipterminal.themes.colors_gruvbox import DefaultBoldColor as Color + + +# fmt: off + +STYLES = { + # style_name : foreground background + None : (Color.LIGHT4, Background.COLOR), + 'selected' : (Color.LIGHT1, Color.NEUTRAL_BLUE), + 'msg_selected' : (Color.LIGHT1, Color.NEUTRAL_BLUE), + 'header' : (Color.NEUTRAL_BLUE, Color.BRIGHT_BLUE), + 'general_narrow' : (Color.LIGHT1, Color.BRIGHT_BLUE), + 'general_bar' : (Color.LIGHT4, Background.COLOR), + 'msg_sender' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'unread' : (Color.NEUTRAL_PURPLE, Background.COLOR), + 'user_active' : (Color.BRIGHT_GREEN, Background.COLOR), + 'user_idle' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'user_offline' : (Color.LIGHT4, Background.COLOR), + 'user_inactive' : (Color.LIGHT4, Background.COLOR), + 'user_bot' : (Color.LIGHT4, Background.COLOR), + 'title' : (Color.LIGHT4, Background.COLOR), + 'column_title' : (Color.LIGHT4, Background.COLOR), + 'time' : (Color.BRIGHT_BLUE, Background.COLOR), + 'bar' : (Color.LIGHT4, Color.GRAY_245), + 'msg_emoji' : (Color.NEUTRAL_PURPLE, Background.COLOR), + 'reaction' : (Color.NEUTRAL_PURPLE, Background.COLOR), + 'reaction_mine' : (Color.LIGHT1, Color.NEUTRAL_PURPLE), + 'msg_heading' : (Color.LIGHT1, Color.BRIGHT_GREEN), + 'msg_math' : (Color.LIGHT1, Color.GRAY_245), + 'msg_mention' : (Color.BRIGHT_RED, Background.COLOR), + 'msg_link' : (Color.BRIGHT_BLUE, Background.COLOR), + 'msg_link_index' : (Color.BRIGHT_BLUE, Background.COLOR), + 'msg_quote' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'msg_bold' : (Color.LIGHT4, Background.COLOR), + 'msg_time' : (Color.LIGHT1, Color.LIGHT4), + 'footer' : (Color.LIGHT1, Color.LIGHT4), + 'footer_contrast' : (Color.LIGHT4, Background.COLOR), + 'starred' : (Color.BRIGHT_RED, Background.COLOR), + 'unread_count' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'starred_count' : (Color.LIGHT4, Background.COLOR), + 'table_head' : (Color.LIGHT4, Background.COLOR), + 'filter_results' : (Color.LIGHT1, Color.BRIGHT_GREEN), + 'edit_topic' : (Color.LIGHT1, Color.GRAY_245), + 'edit_tag' : (Color.LIGHT1, Color.GRAY_245), + 'edit_author' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'edit_time' : (Color.BRIGHT_BLUE, Background.COLOR), + 'current_user' : (Color.LIGHT4, Background.COLOR), + 'muted' : (Color.BRIGHT_BLUE, Background.COLOR), + 'popup_border' : (Color.LIGHT4, Background.COLOR), + 'popup_category' : (Color.BRIGHT_BLUE, Background.COLOR), + 'popup_contrast' : (Color.LIGHT1, Color.GRAY_245), + 'popup_important' : (Color.BRIGHT_RED, Background.COLOR), + 'widget_disabled' : (Color.GRAY_245, Background.COLOR), + 'area:help' : (Color.LIGHT1, Color.BRIGHT_GREEN), + 'area:msg' : (Color.LIGHT1, Color.NEUTRAL_PURPLE), + 'area:stream' : (Color.LIGHT1, Color.BRIGHT_BLUE), + 'area:error' : (Color.LIGHT1, Color.BRIGHT_RED), + 'area:user' : (Color.LIGHT1, Color.BRIGHT_YELLOW), + 'search_error' : (Color.BRIGHT_RED, Background.COLOR), + 'task:success' : (Color.LIGHT1, Color.BRIGHT_GREEN), + 'task:error' : (Color.LIGHT1, Color.BRIGHT_RED), + 'task:warning' : (Color.LIGHT1, Color.NEUTRAL_PURPLE), + 'ui_code' : (Color.LIGHT1, Color.LIGHT4), +} + +META = { + 'background': Color.LIGHT1, + 'pygments': { + 'styles' : SolarizedLightStyle().styles, + 'background': 'h223', + 'overrides' : { + 'c' : '#586e75, italics', # base01 + 'cp' : '#d33682', # magenta + 'cpf' : '#586e75', # base01 + 'ge' : '#839496, italics', # base0 + 'gh' : '#839496, bold', # base0 + 'gu' : '#839496, underline', # base0 + 'gp' : '#268bd2, bold', # blue + 'gs' : '#839496, bold', # base0 + 'err' : '#dc322f', # red + 'n' : '#bdae93', # gruvbox: light4 + 'p' : '#bdae93', # gruvbox: light4 + 'w' : '#bdae93', # gruvbox: light4 + } + } +} +# fmt: on \ No newline at end of file diff --git a/zulipterminal/ui_tools/views.py b/zulipterminal/ui_tools/views.py index 02b3afbd0b..22061f0644 100644 --- a/zulipterminal/ui_tools/views.py +++ b/zulipterminal/ui_tools/views.py @@ -846,7 +846,7 @@ def streams_view(self) -> Any: self.view.stream_w = StreamsView(streams_btn_list, self.view) w = urwid.LineBox( self.view.stream_w, - title="Streams", + title="Channels", title_attr="column_title", tlcorner=COLUMN_TITLE_BAR_LINE, tline=COLUMN_TITLE_BAR_LINE, @@ -914,7 +914,7 @@ def show_topic_view(self, stream_button: Any) -> None: ) def keypress(self, size: urwid_Size, key: str) -> Optional[str]: - if is_command_key("SEARCH_STREAMS", key) or is_command_key( + if is_command_key("SEARCH_CHANNELS", key) or is_command_key( "SEARCH_TOPICS", key ): self.focus_position = 1 @@ -1116,6 +1116,8 @@ def __init__( else [] ) + print(self.feature_level_content) + contents = [ ("Application", [("Zulip Terminal", zt_version)]), ("Server", [("Version", server_version)] + self.feature_level_content), @@ -1422,14 +1424,14 @@ def __init__(self, controller: Any, stream_id: int) -> None: if stream["history_public_to_subscribers"] else "Not Public to Users" ) - member_keys = ", ".join(map(repr, display_keys_for_command("STREAM_MEMBERS"))) + member_keys = ", ".join(map(repr, display_keys_for_command("CHANNEL_MEMBERS"))) self._stream_email = controller.model.get_stream_email_address(stream_id) if self._stream_email is None: stream_copy_text = "< Stream email is unavailable >" else: email_keys = ", ".join( - map(repr, display_keys_for_command("COPY_STREAM_EMAIL")) + map(repr, display_keys_for_command("COPY_CHANNEL_EMAIL")) ) stream_copy_text = f"Press {email_keys} to copy Stream email address" From 95c3d74d7cfa1fa6392262dafa87171f62ecb16c Mon Sep 17 00:00:00 2001 From: Gopinath-Mahendiran Date: Tue, 1 Apr 2025 19:16:02 +0530 Subject: [PATCH 3/6] added four themes to the themes directory --- zulipterminal/cli/run.py | 4 +- zulipterminal/config/themes.py | 14 +- zulipterminal/core.py | 19 +-- zulipterminal/themes/gruvbox_dark.py | 4 +- .../themes/gruvbox_dark_high_contrast.py | 2 +- .../themes/gruvbox_dark_low_contrast.py | 2 +- .../themes/gruvbox_light_high_contrast.py | 70 ++++---- .../themes/gruvbox_light_low_contrast.py | 2 +- zulipterminal/themes/zt_dark.py | 154 +++++++++--------- 9 files changed, 131 insertions(+), 140 deletions(-) diff --git a/zulipterminal/cli/run.py b/zulipterminal/cli/run.py index 31d1d166b7..b9c3491963 100755 --- a/zulipterminal/cli/run.py +++ b/zulipterminal/cli/run.py @@ -6,12 +6,12 @@ import configparser import logging import os +import re import stat import sys import traceback from enum import Enum -import re -from os import path , remove +from os import path, remove from typing import Dict, List, NamedTuple, Optional, Tuple import requests diff --git a/zulipterminal/config/themes.py b/zulipterminal/config/themes.py index e9aeebfe6f..0856d7e33d 100644 --- a/zulipterminal/config/themes.py +++ b/zulipterminal/config/themes.py @@ -7,15 +7,15 @@ from zulipterminal.config.color import Background, term16 from zulipterminal.themes import ( - gruvbox_dark_high_contrast, gruvbox_dark, - gruvbox_light, - zt_blue, zt_dark, - zt_light, + gruvbox_dark_high_contrast, gruvbox_dark_low_contrast, + gruvbox_light, gruvbox_light_high_contrast, - gruvbox_light_low_contrast - + gruvbox_light_low_contrast, + zt_blue, + zt_dark, + zt_light, ) @@ -109,7 +109,7 @@ "gruvbox_dark_high_contrast": gruvbox_dark_high_contrast, "gruvbox_dark_low_contrast": gruvbox_dark_low_contrast, "gruvbox_light_high_contrast": gruvbox_light_high_contrast, - "gruvbox_light_low_contrast": gruvbox_light_low_contrast, + "gruvbox_light_low_contrast": gruvbox_light_low_contrast, # "sample": sample, } diff --git a/zulipterminal/core.py b/zulipterminal/core.py index f4e7c7f90c..61c5f79922 100644 --- a/zulipterminal/core.py +++ b/zulipterminal/core.py @@ -2,19 +2,16 @@ Defines the `Controller`, which sets up the `Model`, `View`, and how they interact """ -import os import itertools +import os import signal import sys import time import webbrowser -import requests from functools import partial from platform import platform from types import TracebackType from typing import Any, Dict, List, Optional, Tuple, Type, Union -import subprocess -import configparser import pyperclip import urwid @@ -101,19 +98,7 @@ def __init__( self.show_loading() client_identifier = f"ZulipTerminal/{ZT_VERSION} {platform()}" - - api_key = '' - config_file = os.path.expanduser(config_file) - if os.path.exists(config_file): - config = configparser.ConfigParser() - config.read(config_file) - api_config = dict(config.items('api')) - api_key = api_config['key'] - command = ['python3', os.path.join(os.path.dirname(__file__), '../tools/encrypt.py'), '--decrypt', api_key] - - decryped_key = subprocess.run(command, stdout=subprocess.PIPE, text=True) - decrypted_key= decryped_key.stdout.strip() - self.client = zulip.Client(config_file=config_file, client=client_identifier,api_key=decrypted_key) + self.client = zulip.Client(config_file=config_file, client=client_identifier) self.model = Model(self) self.view = View(self) # Start polling for events after view is rendered. diff --git a/zulipterminal/themes/gruvbox_dark.py b/zulipterminal/themes/gruvbox_dark.py index 8641e479d8..447abd7438 100644 --- a/zulipterminal/themes/gruvbox_dark.py +++ b/zulipterminal/themes/gruvbox_dark.py @@ -10,7 +10,7 @@ from zulipterminal.config.color import DefaultBoldColor as Color -# fmt: off +# fmt: off STYLES = { # style_name : foreground background None : (Color.WHITE, Background.COLOR), @@ -88,4 +88,4 @@ } } } -# fmt: on \ No newline at end of file +# fmt: on diff --git a/zulipterminal/themes/gruvbox_dark_high_contrast.py b/zulipterminal/themes/gruvbox_dark_high_contrast.py index 673f3c67f5..c41cc6fc8b 100644 --- a/zulipterminal/themes/gruvbox_dark_high_contrast.py +++ b/zulipterminal/themes/gruvbox_dark_high_contrast.py @@ -98,4 +98,4 @@ } } } -# fmt: on \ No newline at end of file +# fmt: on diff --git a/zulipterminal/themes/gruvbox_dark_low_contrast.py b/zulipterminal/themes/gruvbox_dark_low_contrast.py index ec4dbc5bf7..7ce64f3bed 100644 --- a/zulipterminal/themes/gruvbox_dark_low_contrast.py +++ b/zulipterminal/themes/gruvbox_dark_low_contrast.py @@ -98,4 +98,4 @@ } } } -# fmt: on \ No newline at end of file +# fmt: on diff --git a/zulipterminal/themes/gruvbox_light_high_contrast.py b/zulipterminal/themes/gruvbox_light_high_contrast.py index dddc3d03e1..11a8bea8af 100644 --- a/zulipterminal/themes/gruvbox_light_high_contrast.py +++ b/zulipterminal/themes/gruvbox_light_high_contrast.py @@ -1,14 +1,12 @@ """ -GRUVBOX LIGHT HIGH CONTRAST ----------------------------- +CUSTOM HIGH CONTRAST +--------------------- -For syntax highlighting, this theme uses the solarized light styles -from pygments. This could be updated to a gruvbox style when the style -is released. +This theme is inspired by the observed colors in the provided screenshot. +It uses a high-contrast color palette for better readability. -For further details on themefiles look at the theme contribution guide +For further details on themefiles look at the theme contribution guide. """ - from pygments.styles.solarized import SolarizedLightStyle from zulipterminal.config.color import Background @@ -20,60 +18,60 @@ STYLES = { # style_name : foreground background None : (Color.DARK0_HARD, Background.COLOR), - 'selected' : (Color.LIGHT0_HARD, Color.NEUTRAL_BLUE), - 'msg_selected' : (Color.LIGHT0_HARD, Color.NEUTRAL_BLUE), - 'header' : (Color.NEUTRAL_BLUE, Color.BRIGHT_BLUE), - 'general_narrow' : (Color.LIGHT0_HARD, Color.BRIGHT_BLUE), + 'selected' : (Color.LIGHT0_HARD, Color.BRIGHT_YELLOW), + 'msg_selected' : (Color.LIGHT0_HARD, Color.BRIGHT_YELLOW), + 'header' : (Color.BRIGHT_ORANGE, Color.DARK0_HARD), + 'general_narrow' : (Color.LIGHT0_HARD, Color.DARK0_HARD), 'general_bar' : (Color.DARK0_HARD, Background.COLOR), - 'msg_sender' : (Color.NEUTRAL_YELLOW__BOLD, Background.COLOR), - 'unread' : (Color.NEUTRAL_PURPLE, Background.COLOR), + 'msg_sender' : (Color.BRIGHT_GREEN, Background.COLOR), + 'unread' : (Color.BRIGHT_RED, Background.COLOR), 'user_active' : (Color.BRIGHT_GREEN, Background.COLOR), - 'user_idle' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'user_idle' : (Color.BRIGHT_YELLOW, Background.COLOR), 'user_offline' : (Color.DARK0_HARD, Background.COLOR), 'user_inactive' : (Color.DARK0_HARD, Background.COLOR), 'user_bot' : (Color.DARK0_HARD, Background.COLOR), - 'title' : (Color.DARK0_HARD__BOLD, Background.COLOR), - 'column_title' : (Color.DARK0_HARD__BOLD, Background.COLOR), + 'title' : (Color.DARK0_HARD, Background.COLOR), + 'column_title' : (Color.DARK0_HARD, Background.COLOR), 'time' : (Color.BRIGHT_BLUE, Background.COLOR), 'bar' : (Color.DARK0_HARD, Color.GRAY_244), - 'msg_emoji' : (Color.NEUTRAL_PURPLE, Background.COLOR), - 'reaction' : (Color.NEUTRAL_PURPLE__BOLD, Background.COLOR), - 'reaction_mine' : (Color.LIGHT0_HARD, Color.NEUTRAL_PURPLE), - 'msg_heading' : (Color.LIGHT0_HARD__BOLD, Color.BRIGHT_GREEN), + 'msg_emoji' : (Color.BRIGHT_PURPLE, Background.COLOR), + 'reaction' : (Color.BRIGHT_PURPLE, Background.COLOR), + 'reaction_mine' : (Color.LIGHT0_HARD, Color.BRIGHT_PURPLE), + 'msg_heading' : (Color.LIGHT0_HARD, Color.BRIGHT_GREEN), 'msg_math' : (Color.LIGHT0_HARD, Color.GRAY_244), - 'msg_mention' : (Color.BRIGHT_RED__BOLD, Background.COLOR), + 'msg_mention' : (Color.BRIGHT_RED, Background.COLOR), 'msg_link' : (Color.BRIGHT_BLUE, Background.COLOR), - 'msg_link_index' : (Color.BRIGHT_BLUE__BOLD, Background.COLOR), - 'msg_quote' : (Color.NEUTRAL_YELLOW, Background.COLOR), - 'msg_bold' : (Color.DARK0_HARD__BOLD, Background.COLOR), + 'msg_link_index' : (Color.BRIGHT_BLUE, Background.COLOR), + 'msg_quote' : (Color.BRIGHT_YELLOW, Background.COLOR), + 'msg_bold' : (Color.DARK0_HARD, Background.COLOR), 'msg_time' : (Color.LIGHT0_HARD, Color.DARK0_HARD), - 'footer' : (Color.LIGHT0_HARD, Color.LIGHT4), + 'footer' : (Color.LIGHT0_HARD, Color.DARK2), 'footer_contrast' : (Color.DARK0_HARD, Background.COLOR), - 'starred' : (Color.BRIGHT_RED__BOLD, Background.COLOR), - 'unread_count' : (Color.NEUTRAL_YELLOW, Background.COLOR), - 'starred_count' : (Color.LIGHT4, Background.COLOR), - 'table_head' : (Color.DARK0_HARD__BOLD, Background.COLOR), + 'starred' : (Color.BRIGHT_RED, Background.COLOR), + 'unread_count' : (Color.BRIGHT_YELLOW, Background.COLOR), + 'starred_count' : (Color.DARK2, Background.COLOR), + 'table_head' : (Color.DARK0_HARD, Background.COLOR), 'filter_results' : (Color.LIGHT0_HARD, Color.BRIGHT_GREEN), 'edit_topic' : (Color.LIGHT0_HARD, Color.GRAY_244), 'edit_tag' : (Color.LIGHT0_HARD, Color.GRAY_244), - 'edit_author' : (Color.NEUTRAL_YELLOW, Background.COLOR), + 'edit_author' : (Color.BRIGHT_YELLOW, Background.COLOR), 'edit_time' : (Color.BRIGHT_BLUE, Background.COLOR), 'current_user' : (Color.DARK0_HARD, Background.COLOR), 'muted' : (Color.BRIGHT_BLUE, Background.COLOR), 'popup_border' : (Color.DARK0_HARD, Background.COLOR), - 'popup_category' : (Color.BRIGHT_BLUE__BOLD, Background.COLOR), + 'popup_category' : (Color.BRIGHT_BLUE, Background.COLOR), 'popup_contrast' : (Color.LIGHT0_HARD, Color.GRAY_244), - 'popup_important' : (Color.BRIGHT_RED__BOLD, Background.COLOR), + 'popup_important' : (Color.BRIGHT_RED, Background.COLOR), 'widget_disabled' : (Color.GRAY_244, Background.COLOR), 'area:help' : (Color.LIGHT0_HARD, Color.BRIGHT_GREEN), - 'area:msg' : (Color.LIGHT0_HARD, Color.NEUTRAL_PURPLE), + 'area:msg' : (Color.LIGHT0_HARD, Color.BRIGHT_PURPLE), 'area:stream' : (Color.LIGHT0_HARD, Color.BRIGHT_BLUE), 'area:error' : (Color.LIGHT0_HARD, Color.BRIGHT_RED), 'area:user' : (Color.LIGHT0_HARD, Color.BRIGHT_YELLOW), 'search_error' : (Color.BRIGHT_RED, Background.COLOR), 'task:success' : (Color.LIGHT0_HARD, Color.BRIGHT_GREEN), 'task:error' : (Color.LIGHT0_HARD, Color.BRIGHT_RED), - 'task:warning' : (Color.LIGHT0_HARD, Color.NEUTRAL_PURPLE), + 'task:warning' : (Color.LIGHT0_HARD, Color.BRIGHT_PURPLE), 'ui_code' : (Color.LIGHT0_HARD, Color.DARK0_HARD), } @@ -81,7 +79,7 @@ 'background': Color.LIGHT0_HARD, 'pygments': { 'styles' : SolarizedLightStyle().styles, - 'background': 'h230', + 'background': '#ffffff', 'overrides' : { 'c' : '#586e75, italics', # base01 'cp' : '#d33682', # magenta @@ -98,4 +96,4 @@ } } } -# fmt: on \ No newline at end of file +# fmt: on diff --git a/zulipterminal/themes/gruvbox_light_low_contrast.py b/zulipterminal/themes/gruvbox_light_low_contrast.py index 649322d07f..8552881671 100644 --- a/zulipterminal/themes/gruvbox_light_low_contrast.py +++ b/zulipterminal/themes/gruvbox_light_low_contrast.py @@ -98,4 +98,4 @@ } } } -# fmt: on \ No newline at end of file +# fmt: on diff --git a/zulipterminal/themes/zt_dark.py b/zulipterminal/themes/zt_dark.py index 447abd7438..becc320902 100644 --- a/zulipterminal/themes/zt_dark.py +++ b/zulipterminal/themes/zt_dark.py @@ -1,90 +1,98 @@ """ -ZT DARK -------- -This theme uses the default color scheme. +CUSTOM HIGH CONTRAST +--------------------- + +This theme is inspired by the observed colors in the provided screenshot. +It uses a high-contrast color palette for better readability. + For further details on themefiles look at the theme contribution guide. """ -from pygments.styles.material import MaterialStyle +from pygments.styles.solarized import SolarizedLightStyle from zulipterminal.config.color import Background -from zulipterminal.config.color import DefaultBoldColor as Color +from zulipterminal.themes.colors_gruvbox import DefaultBoldColor as Color # fmt: off + STYLES = { - # style_name : foreground background - None : (Color.WHITE, Background.COLOR), - 'selected' : (Color.WHITE, Color.DARK_BLUE), - 'msg_selected' : (Color.WHITE, Color.DARK_BLUE), - 'header' : (Color.DARK_CYAN, Color.DARK_BLUE), - 'general_narrow' : (Color.WHITE, Color.DARK_BLUE), - 'general_bar' : (Color.WHITE, Background.COLOR), - 'msg_sender' : (Color.YELLOW__BOLD, Background.COLOR), - 'unread' : (Color.DARK_BLUE, Background.COLOR), - 'user_active' : (Color.LIGHT_GREEN, Background.COLOR), - 'user_idle' : (Color.YELLOW, Background.COLOR), - 'user_offline' : (Color.WHITE, Background.COLOR), - 'user_inactive' : (Color.WHITE, Background.COLOR), - 'user_bot' : (Color.WHITE, Background.COLOR), - 'title' : (Color.WHITE__BOLD, Background.COLOR), - 'column_title' : (Color.WHITE__BOLD, Background.COLOR), - 'time' : (Color.LIGHT_BLUE, Background.COLOR), - 'bar' : (Color.WHITE, Color.DARK_GRAY), - 'msg_emoji' : (Color.LIGHT_MAGENTA, Background.COLOR), - 'reaction' : (Color.LIGHT_MAGENTA__BOLD, Background.COLOR), - 'reaction_mine' : (Color.BLACK, Color.LIGHT_MAGENTA), - 'msg_heading' : (Color.LIGHT_CYAN__BOLD, Color.DARK_MAGENTA), - 'msg_math' : (Color.LIGHT_GRAY, Color.DARK_GRAY), - 'msg_mention' : (Color.LIGHT_RED__BOLD, Background.COLOR), - 'msg_link' : (Color.LIGHT_BLUE, Background.COLOR), - 'msg_link_index' : (Color.LIGHT_BLUE__BOLD, Background.COLOR), - 'msg_quote' : (Color.BROWN, Background.COLOR), - 'msg_bold' : (Color.WHITE__BOLD, Background.COLOR), - 'msg_time' : (Color.BLACK, Color.WHITE), - 'footer' : (Color.BLACK, Color.LIGHT_GRAY), - 'footer_contrast' : (Color.WHITE, Background.COLOR), - 'starred' : (Color.LIGHT_RED__BOLD, Background.COLOR), - 'unread_count' : (Color.YELLOW, Background.COLOR), - 'starred_count' : (Color.LIGHT_GRAY, Background.COLOR), - 'table_head' : (Color.WHITE__BOLD, Background.COLOR), - 'filter_results' : (Color.WHITE, Color.DARK_GREEN), - 'edit_topic' : (Color.WHITE, Color.DARK_GRAY), - 'edit_tag' : (Color.WHITE, Color.DARK_GRAY), - 'edit_author' : (Color.YELLOW, Background.COLOR), - 'edit_time' : (Color.LIGHT_BLUE, Background.COLOR), - 'current_user' : (Color.WHITE, Background.COLOR), - 'muted' : (Color.LIGHT_BLUE, Background.COLOR), - 'popup_border' : (Color.WHITE, Background.COLOR), - 'popup_category' : (Color.LIGHT_BLUE__BOLD, Background.COLOR), - 'popup_contrast' : (Color.WHITE, Color.DARK_GRAY), - 'popup_important' : (Color.LIGHT_RED__BOLD, Background.COLOR), - 'widget_disabled' : (Color.DARK_GRAY, Background.COLOR), - 'area:help' : (Color.WHITE, Color.DARK_GREEN), - 'area:msg' : (Color.WHITE, Color.BROWN), - 'area:stream' : (Color.WHITE, Color.DARK_CYAN), - 'area:error' : (Color.WHITE, Color.DARK_RED), - 'area:user' : (Color.WHITE, Color.DARK_BLUE), - 'search_error' : (Color.LIGHT_RED, Background.COLOR), - 'task:success' : (Color.WHITE, Color.DARK_GREEN), - 'task:error' : (Color.WHITE, Color.DARK_RED), - 'task:warning' : (Color.WHITE, Color.BROWN), - 'ui_code' : (Color.BLACK, Color.WHITE), + # style_name : foreground background + None : (Color.DARK0_HARD, Color.LIGHT0_HARD), + 'selected' : (Color.LIGHT0_HARD, Color.BRIGHT_YELLOW), + 'msg_selected' : (Color.LIGHT0_HARD, Color.BRIGHT_YELLOW), + 'header' : (Color.BRIGHT_ORANGE, Color.DARK0_HARD), + 'general_narrow' : (Color.LIGHT0_HARD, Color.DARK0_HARD), + 'general_bar' : (Color.DARK0_HARD, Color.LIGHT0_HARD), + 'msg_sender' : (Color.BRIGHT_GREEN, Color.LIGHT0_HARD), + 'unread' : (Color.BRIGHT_RED, Color.LIGHT0_HARD), + 'user_active' : (Color.BRIGHT_GREEN, Color.LIGHT0_HARD), + 'user_idle' : (Color.BRIGHT_YELLOW, Color.LIGHT0_HARD), + 'user_offline' : (Color.DARK0_HARD, Color.LIGHT0_HARD), + 'user_inactive' : (Color.DARK0_HARD, Color.LIGHT0_HARD), + 'user_bot' : (Color.DARK0_HARD, Color.LIGHT0_HARD), + 'title' : (Color.DARK0_HARD, Color.LIGHT0_HARD), + 'column_title' : (Color.DARK0_HARD, Color.LIGHT0_HARD), + 'time' : (Color.BRIGHT_BLUE, Color.LIGHT0_HARD), + 'bar' : (Color.DARK0_HARD, Color.GRAY_244), + 'msg_emoji' : (Color.BRIGHT_PURPLE, Color.LIGHT0_HARD), + 'reaction' : (Color.BRIGHT_PURPLE, Color.LIGHT0_HARD), + 'reaction_mine' : (Color.LIGHT0_HARD, Color.BRIGHT_PURPLE), + 'msg_heading' : (Color.LIGHT0_HARD, Color.BRIGHT_GREEN), + 'msg_math' : (Color.LIGHT0_HARD, Color.GRAY_244), + 'msg_mention' : (Color.BRIGHT_RED, Color.LIGHT0_HARD), + 'msg_link' : (Color.BRIGHT_BLUE, Color.LIGHT0_HARD), + 'msg_link_index' : (Color.BRIGHT_BLUE, Color.LIGHT0_HARD), + 'msg_quote' : (Color.BRIGHT_YELLOW, Color.LIGHT0_HARD), + 'msg_bold' : (Color.DARK0_HARD, Color.LIGHT0_HARD), + 'msg_time' : (Color.LIGHT0_HARD, Color.DARK0_HARD), + 'footer' : (Color.LIGHT0_HARD, Color.DARK2), + 'footer_contrast' : (Color.DARK0_HARD, Color.LIGHT0_HARD), + 'starred' : (Color.BRIGHT_RED, Color.LIGHT0_HARD), + 'unread_count' : (Color.BRIGHT_YELLOW, Color.LIGHT0_HARD), + 'starred_count' : (Color.DARK2, Color.LIGHT0_HARD), + 'table_head' : (Color.DARK0_HARD, Color.LIGHT0_HARD), + 'filter_results' : (Color.LIGHT0_HARD, Color.BRIGHT_GREEN), + 'edit_topic' : (Color.LIGHT0_HARD, Color.GRAY_244), + 'edit_tag' : (Color.LIGHT0_HARD, Color.GRAY_244), + 'edit_author' : (Color.BRIGHT_YELLOW, Color.LIGHT0_HARD), + 'edit_time' : (Color.BRIGHT_BLUE, Color.LIGHT0_HARD), + 'current_user' : (Color.DARK0_HARD, Color.LIGHT0_HARD), + 'muted' : (Color.BRIGHT_BLUE, Color.LIGHT0_HARD), + 'popup_border' : (Color.DARK0_HARD, Color.LIGHT0_HARD), + 'popup_category' : (Color.BRIGHT_BLUE, Color.LIGHT0_HARD), + 'popup_contrast' : (Color.LIGHT0_HARD, Color.GRAY_244), + 'popup_important' : (Color.BRIGHT_RED, Color.LIGHT0_HARD), + 'widget_disabled' : (Color.GRAY_244, Color.LIGHT0_HARD), + 'area:help' : (Color.LIGHT0_HARD, Color.BRIGHT_GREEN), + 'area:msg' : (Color.LIGHT0_HARD, Color.BRIGHT_PURPLE), + 'area:stream' : (Color.LIGHT0_HARD, Color.BRIGHT_BLUE), + 'area:error' : (Color.LIGHT0_HARD, Color.BRIGHT_RED), + 'area:user' : (Color.LIGHT0_HARD, Color.BRIGHT_YELLOW), + 'search_error' : (Color.BRIGHT_RED, Color.LIGHT0_HARD), + 'task:success' : (Color.LIGHT0_HARD, Color.BRIGHT_GREEN), + 'task:error' : (Color.LIGHT0_HARD, Color.BRIGHT_RED), + 'task:warning' : (Color.LIGHT0_HARD, Color.BRIGHT_PURPLE), + 'ui_code' : (Color.LIGHT0_HARD, Color.DARK0_HARD), } META = { - 'background': Color.BLACK, + 'background': Color.LIGHT0_HARD, 'pygments': { - 'styles' : MaterialStyle().styles, - 'background': 'h235', + 'styles' : SolarizedLightStyle().styles, + 'background': '#ffffff', 'overrides' : { - 'kn' : MaterialStyle().cyan + ', italics', - 'sd' : MaterialStyle().faded + ', italics', - 'ow' : MaterialStyle().cyan + ', italics', - 'c' : MaterialStyle().faded + ', italics', - 'n' : MaterialStyle().paleblue, - 'no' : MaterialStyle().paleblue, - 'nx' : MaterialStyle().paleblue, - 'w' : MaterialStyle().paleblue, # inline/plain-codeblock + 'c' : '#586e75, italics', # base01 + 'cp' : '#d33682', # magenta + 'cpf' : '#586e75', # base01 + 'ge' : '#839496, italics', # base0 + 'gh' : '#839496, bold', # base0 + 'gu' : '#839496, underline', # base0 + 'gp' : '#268bd2, bold', # blue + 'gs' : '#839496, bold', # base0 + 'err' : '#dc322f', # red + 'n' : '#bdae93', # gruvbox: light4 + 'p' : '#bdae93', # gruvbox: light4 + 'w' : '#bdae93', # gruvbox: light4 } } } From f3419cae4d733976b98ab06270e0a9e13fa965b5 Mon Sep 17 00:00:00 2001 From: Gopinath-Mahendiran Date: Tue, 1 Apr 2025 22:04:11 +0530 Subject: [PATCH 4/6] fix linting issue --- zulipterminal/ui_tools/views.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/zulipterminal/ui_tools/views.py b/zulipterminal/ui_tools/views.py index 22061f0644..f03924b08d 100644 --- a/zulipterminal/ui_tools/views.py +++ b/zulipterminal/ui_tools/views.py @@ -846,7 +846,7 @@ def streams_view(self) -> Any: self.view.stream_w = StreamsView(streams_btn_list, self.view) w = urwid.LineBox( self.view.stream_w, - title="Channels", + title="Streams", title_attr="column_title", tlcorner=COLUMN_TITLE_BAR_LINE, tline=COLUMN_TITLE_BAR_LINE, @@ -914,7 +914,7 @@ def show_topic_view(self, stream_button: Any) -> None: ) def keypress(self, size: urwid_Size, key: str) -> Optional[str]: - if is_command_key("SEARCH_CHANNELS", key) or is_command_key( + if is_command_key("SEARCH_STREAMS", key) or is_command_key( "SEARCH_TOPICS", key ): self.focus_position = 1 @@ -1116,8 +1116,6 @@ def __init__( else [] ) - print(self.feature_level_content) - contents = [ ("Application", [("Zulip Terminal", zt_version)]), ("Server", [("Version", server_version)] + self.feature_level_content), @@ -1424,14 +1422,14 @@ def __init__(self, controller: Any, stream_id: int) -> None: if stream["history_public_to_subscribers"] else "Not Public to Users" ) - member_keys = ", ".join(map(repr, display_keys_for_command("CHANNEL_MEMBERS"))) + member_keys = ", ".join(map(repr, display_keys_for_command("STREAM_MEMBERS"))) self._stream_email = controller.model.get_stream_email_address(stream_id) if self._stream_email is None: stream_copy_text = "< Stream email is unavailable >" else: email_keys = ", ".join( - map(repr, display_keys_for_command("COPY_CHANNEL_EMAIL")) + map(repr, display_keys_for_command("COPY_STREAM_EMAIL")) ) stream_copy_text = f"Press {email_keys} to copy Stream email address" @@ -2177,4 +2175,4 @@ def keypress(self, size: urwid_Size, key: str) -> str: self.controller.exit_editor_mode() self.controller.exit_popup() return key - return super().keypress(size, key) + return super().keypress(size, key) \ No newline at end of file From 1f7086cc26da92b1605e53f18075a619129564b2 Mon Sep 17 00:00:00 2001 From: Gopinath-Mahendiran Date: Tue, 1 Apr 2025 23:10:53 +0530 Subject: [PATCH 5/6] fix the linting issue , ensure pass --- zulipterminal/cli/run.py | 1 - zulipterminal/themes/zt_dark.py | 2 -- zulipterminal/ui_tools/views.py | 2 +- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/zulipterminal/cli/run.py b/zulipterminal/cli/run.py index b9c3491963..a5cce2cf2d 100755 --- a/zulipterminal/cli/run.py +++ b/zulipterminal/cli/run.py @@ -6,7 +6,6 @@ import configparser import logging import os -import re import stat import sys import traceback diff --git a/zulipterminal/themes/zt_dark.py b/zulipterminal/themes/zt_dark.py index becc320902..8646f4c745 100644 --- a/zulipterminal/themes/zt_dark.py +++ b/zulipterminal/themes/zt_dark.py @@ -8,8 +8,6 @@ For further details on themefiles look at the theme contribution guide. """ from pygments.styles.solarized import SolarizedLightStyle - -from zulipterminal.config.color import Background from zulipterminal.themes.colors_gruvbox import DefaultBoldColor as Color diff --git a/zulipterminal/ui_tools/views.py b/zulipterminal/ui_tools/views.py index f03924b08d..02b3afbd0b 100644 --- a/zulipterminal/ui_tools/views.py +++ b/zulipterminal/ui_tools/views.py @@ -2175,4 +2175,4 @@ def keypress(self, size: urwid_Size, key: str) -> str: self.controller.exit_editor_mode() self.controller.exit_popup() return key - return super().keypress(size, key) \ No newline at end of file + return super().keypress(size, key) From 10e938ee253a9b5cc66ad8aeddc4ac7a42f3e345 Mon Sep 17 00:00:00 2001 From: Gopinath-Mahendiran Date: Tue, 1 Apr 2025 23:13:32 +0530 Subject: [PATCH 6/6] fix isort lint issue --- zulipterminal/themes/zt_dark.py | 1 + 1 file changed, 1 insertion(+) diff --git a/zulipterminal/themes/zt_dark.py b/zulipterminal/themes/zt_dark.py index 8646f4c745..e68d10711b 100644 --- a/zulipterminal/themes/zt_dark.py +++ b/zulipterminal/themes/zt_dark.py @@ -8,6 +8,7 @@ For further details on themefiles look at the theme contribution guide. """ from pygments.styles.solarized import SolarizedLightStyle + from zulipterminal.themes.colors_gruvbox import DefaultBoldColor as Color