Source code for ebenezer.config.colors

"""
colors.py
---------

This module provides a class to manage color settings for Qtile.

Classes:
    AppSettingsColors:
        Manages color settings including foreground, background, and other color configurations.
"""

from typing import List


[docs] class AppSettingsColors: raw: dict = {} theme: str | None = None fg_normal = "#fff" fg_focus = "#fff" fg_urgent = "#bababa" bg_normal = "#000" bg_focus = "#000" bg_urgent = "#5c6b73" bg_systray = "#5c6b73" bg_selected = "#5c6b73" fg_blue = "#bababa" fg_light_blue = "#bababa" fg_yellow = "#bababa" fg_red = "#bababa" fg_orange = "#bababa" fg_purple = "#bababa" fg_green = "#bababa" fg_gray = "#9db4c0" fg_black = "#000000" fg_white = "#ffffff" fg_selected = "#000" bg_topbar = "#5c6b73" bg_topbar_selected = "#000" bg_topbar_arrow = "#5c6b73" border_color_normal = "#bababa" border_color_active = "#bababa" border_color_marked = "#bababa" titlebar_bg_focus = "#000" titlebar_bg_normal = "#000" taglist_bg_focus = "#5c6b73" group_focus = "#fff" group_normal = "#5c6b73" lock_screen_blank_color = "#00000000" lock_screen_clear_color = "#ffffff22" lock_screen_default_color = "#9db4c0" lock_screen_key_color = "#8a8ea800" lock_screen_text_color = "#4BC1CC" lock_screen_wrong_color = "#D50000" lock_screen_verifying_color = "#41445800" lock_screen_quote_foreground_color = "#000" lock_screen_quote_text_color = "#fff" rofi_background = "#000" rofi_background_alt = "#fff" rofi_foreground = "#fff" rofi_selected = "#5c6b73" rofi_active = "#4BC1CC" rofi_urgent = "#D50000" rofi_border = "#5c6b73" rofi_border_alt = "#9db4c0" def __init__(self, **kwargs): """ Initializes the AppSettingsColors with optional keyword arguments. Args: **kwargs: Arbitrary keyword arguments to initialize the color settings. """ self.theme = kwargs.pop("theme", None) self.raw = kwargs self._bind_colors( kwargs, [ "fg_normal", "fg_focus", "fg_urgent", "bg_normal", "bg_focus", "bg_urgent", "bg_systray", "bg_selected", "fg_blue", "fg_light_blue", "fg_yellow", "fg_red", "fg_orange", "fg_purple", "fg_green", "fg_gray", "fg_black", "fg_white", "fg_selected", "bg_topbar", "bg_topbar_selected", "bg_topbar_arrow", "group_normal", "group_focus", "border_color_normal", "border_color_active", "border_color_marked", "titlebar_bg_focus", "titlebar_bg_normal", "taglist_bg_focus", "lock_screen_blank_color", "lock_screen_default_color", "lock_screen_key_color", "lock_screen_text_color", "lock_screen_wrong_color", "lock_screen_verifying_color", "lock_screen_quote_foreground_color", "lock_screen_quote_text_color", "rofi_background", "rofi_background_alt", "rofi_foreground", "rofi_selected", "rofi_active", "rofi_urgent", "rofi_border", "rofi_border_alt", ], )
[docs] def get_color(self, color_name: str) -> str: """ Retrieves the color value for the given color name. Args: color_name (str): The name of the color. Returns: str: The color value. """ if color_name.startswith("#"): return color_name return self.__dict__.get(color_name) or self.fg_normal
def _bind_colors(self, args: dict, colors: List[str]): """ Binds the color values to the class attributes. Args: args (dict): The dictionary of color values. colors (List[str]): The list of color attribute names. """ for color in colors: setattr(self, color, args.get(color, getattr(self, color)))