def change_colors(color_scheme: str) -> bool: if not color_scheme: return False from kittens.themes.collection import (NoCacheFound, load_themes, text_as_opts) from kittens.themes.main import colors_as_escape_codes if color_scheme.endswith('.conf'): conf_file = resolve_abs_or_config_path(color_scheme) try: with open(conf_file) as f: opts = text_as_opts(f.read()) except FileNotFoundError: raise SystemExit( f'Failed to find the color conf file: {expandvars(conf_file)}') else: try: themes = load_themes(-1) except NoCacheFound: themes = load_themes() cs = expandvars(color_scheme) try: theme = themes[cs] except KeyError: raise SystemExit(f'Failed to find the color theme: {cs}') opts = theme.kitty_opts raw = colors_as_escape_codes(opts) print(save_colors(), sep='', end=raw, flush=True) return True
def response_from_kitty(self, boss: Boss, window: Optional[Window], payload_get: PayloadGetType) -> ResponseType: from kitty.child import default_env, set_default_env from kitty.utils import expandvars new_env = payload_get('env') or {} env = default_env().copy() for k, v in new_env.items(): if v: env[k] = expandvars(v, env) else: env.pop(k, None) set_default_env(env)
def env(val: str, current_val: Dict[str, str]) -> Iterable[Tuple[str, str]]: val = val.strip() if val: if '=' in val: key, v = val.split('=', 1) key, v = key.strip(), v.strip() if key: if v: v = expandvars(v, current_val) yield key, v else: yield val, DELETE_ENV_VAR
def env(val: str, current_val: Dict[str, str]) -> Iterable[Tuple[str, str]]: key, val = val.partition('=')[::2] key, val = key.strip(), val.strip() if key: yield key, expandvars(val, current_val)