diff --git a/settings.toml b/settings.toml index 30f1608..d1927d5 100644 --- a/settings.toml +++ b/settings.toml @@ -1,6 +1,7 @@ [General] -pause = ["escape", "F1"] # WIP +pause = ["escape", "F1"] # WIP quit = ["q"] +colorscheme = "tokyonight-night" # tokyonight-night / tokyonight-storm / tokyonight-day / tokyonight-moon [Movement] left = ["left", "keypad 4"] @@ -10,11 +11,11 @@ down = ["down", "keypad 2"] [Rotation] cw = ["x", "up", "keypad 1", "keypad 5", "keypad 9"] # clockwise ccw = [ - "left ctrl", - "right ctrl", - "z", - "keypad 3", - "keypad 7", + "left ctrl", + "right ctrl", + "z", + "keypad 3", + "keypad 7", ] # counter-clockwise [Action] diff --git a/src/utils/colors/__init__.py b/src/utils/colors/__init__.py new file mode 100644 index 0000000..8a225dc --- /dev/null +++ b/src/utils/colors/__init__.py @@ -0,0 +1,16 @@ +from .tokyonight import TokyoNightDay, TokyoNightMoon, TokyoNightNight, TokyoNightStorm + +COLOR_DICT = { + "tokyonight-day": TokyoNightDay, + "tokyonight-moon": TokyoNightMoon, + "tokyonight-night": TokyoNightNight, + "tokyonight-storm": TokyoNightStorm, +} + +__all__ = [ + "TokyoNightMoon", + "TokyoNightDay", + "TokyoNightNight", + "TokyoNightStorm", + "COLOR_DICT", +] diff --git a/src/utils/colors/tokyonight/__init__.py b/src/utils/colors/tokyonight/__init__.py new file mode 100644 index 0000000..6bc33de --- /dev/null +++ b/src/utils/colors/tokyonight/__init__.py @@ -0,0 +1,6 @@ +from .day import TokyoNightDay +from .moon import TokyoNightMoon +from .night import TokyoNightNight +from .storm import TokyoNightStorm + +__all__ = ["TokyoNightDay", "TokyoNightMoon", "TokyoNightNight", "TokyoNightStorm"] diff --git a/src/utils/colors/tokyonight/day.py b/src/utils/colors/tokyonight/day.py new file mode 100644 index 0000000..2a89909 --- /dev/null +++ b/src/utils/colors/tokyonight/day.py @@ -0,0 +1,62 @@ +from attr import define + + +@define +class TokyoNightDay: + bg = "#e1e2e7" + bg_dark = "#e9e9ec" + bg_float = "#e9e9ec" + bg_highlight = "#c4c8da" + bg_popup = "#e9e9ec" + bg_search = "#7890dd" + bg_sidebar = "#e9e9ec" + bg_statusline = "#e9e9ec" + bg_visual = "#b6bfe2" + black = "#e9e9ed" + blue = "#2e7de9" + blue0 = "#7890dd" + blue1 = "#188092" + blue2 = "#07879d" + blue5 = "#006a83" + blue6 = "#2e5857" + blue7 = "#92a6d5" + border = "#e9e9ed" + border_highlight = "#2496ac" + comment = "#848cb5" + cyan = "#007197" + dark3 = "#8990b3" + dark5 = "#68709a" + delta_add = "#57a7bc" + delta_delete = "#d99ea2" + diff_add = "#aecde6" + diff_change = "#d6d8e3" + diff_delete = "#dfccd4" + diff_text = "#92a6d5" + error = "#c64343" + fg = "#3760bf" + fg_dark = "#6172b0" + fg_float = "#3760bf" + fg_gutter = "#a8aecb" + fg_sidebar = "#6172b0" + git_add = "#4197a4" + git_change = "#506d9c" + git_delete = "#c47981" + git_ignore = "#8990b3" + git_signs_add = "#399a96" + git_signs_change = "#6482bd" + git_signs_delete = "#c25d64" + green = "#587539" + green1 = "#387068" + green2 = "#38919f" + hint = "#118c74" + info = "#07879d" + magenta = "#9854f1" + magenta2 = "#d20065" + orange = "#b15c00" + purple = "#7847bd" + red = "#f52a65" + red1 = "#c64343" + teal = "#118c74" + terminal_black = "#a1a6c5" + warning = "#8c6c3e" + yellow = "#8c6c3e" diff --git a/src/utils/colors/tokyonight/moon.py b/src/utils/colors/tokyonight/moon.py new file mode 100644 index 0000000..e9b6e64 --- /dev/null +++ b/src/utils/colors/tokyonight/moon.py @@ -0,0 +1,62 @@ +from attr import define + + +@define +class TokyoNightMoon: + bg = "#222436" + bg_dark = "#1e2030" + bg_float = "#1e2030" + bg_highlight = "#2f334d" + bg_popup = "#1e2030" + bg_search = "#3e68d7" + bg_sidebar = "#1e2030" + bg_statusline = "#1e2030" + bg_visual = "#2d3f76" + black = "#1b1d2b" + blue = "#82aaff" + blue0 = "#3e68d7" + blue1 = "#65bcff" + blue2 = "#0db9d7" + blue5 = "#89ddff" + blue6 = "#b4f9f8" + blue7 = "#394b70" + border = "#1b1d2b" + border_highlight = "#589ed7" + comment = "#636da6" + cyan = "#86e1fc" + dark3 = "#545c7e" + dark5 = "#737aa2" + delta_add = "#305f6f" + delta_delete = "#6b2e43" + diff_add = "#273849" + diff_change = "#252a3f" + diff_delete = "#3a273a" + diff_text = "#394b70" + error = "#c53b53" + fg = "#c8d3f5" + fg_dark = "#828bb8" + fg_float = "#c8d3f5" + fg_gutter = "#3b4261" + fg_sidebar = "#828bb8" + git_add = "#b8db87" + add_change = "#7ca1f2" + add_delete = "#e26a75" + add_ignore = "#545c7e" + git_signs_add = "#627259" + git_signs_change = "#485a86" + git_signs_delete = "#b55a67" + green = "#c3e88d" + green1 = "#4fd6be" + green2 = "#41a6b5" + hint = "#4fd6be" + info = "#0db9d7" + magenta = "#c099ff" + magenta2 = "#ff007c" + orange = "#ff966c" + purple = "#fca7ea" + red = "#ff757f" + red1 = "#c53b53" + teal = "#4fd6be" + terminal_black = "#444a73" + warning = "#ffc777" + yellow = "#ffc777" diff --git a/src/utils/colors.py b/src/utils/colors/tokyonight/night.py similarity index 100% rename from src/utils/colors.py rename to src/utils/colors/tokyonight/night.py diff --git a/src/utils/colors/tokyonight/storm.py b/src/utils/colors/tokyonight/storm.py new file mode 100644 index 0000000..b8d490f --- /dev/null +++ b/src/utils/colors/tokyonight/storm.py @@ -0,0 +1,62 @@ +from attr import define + + +@define +class TokyoNightStorm: + bg = "#24283b" + bg_dark = "#1f2335" + bg_float = "#1f2335" + bg_highlight = "#292e42" + bg_popup = "#1f2335" + bg_search = "#3d59a1" + bg_sidebar = "#1f2335" + bg_statusline = "#1f2335" + bg_visual = "#2e3c64" + black = "#1d202f" + blue = "#7aa2f7" + blue0 = "#3d59a1" + blue1 = "#2ac3de" + blue2 = "#0db9d7" + blue5 = "#89ddff" + blue6 = "#b4f9f8" + blue7 = "#394b70" + border = "#1d202f" + border_highlight = "#29a4bd" + comment = "#565f89" + cyan = "#7dcfff" + dark3 = "#545c7e" + dark5 = "#737aa2" + delta_add = "#316172" + delta_delete = "#763842" + diff_add = "#283b4d" + diff_change = "#272d43" + diff_delete = "#3f2d3d" + diff_text = "#394b70" + error = "#db4b4b" + fg = "#c0caf5" + fg_dark = "#a9b1d6" + fg_float = "#c0caf5" + fg_gutter = "#3b4261" + fg_sidebar = "#a9b1d6" + git_add = "#449dab" + git_change = "#6183bb" + git_delete = "#914c54" + git_ignore = "#545c7e" + git_signs_add = "#266d6a" + git_signs_change = "#536c9e" + git_signs_delete = "#b2555b" + green = "#9ece6a" + green1 = "#73daca" + green2 = "#41a6b5" + hint = "#1abc9c" + info = "#0db9d7" + magenta = "#bb9af7" + magenta2 = "#ff007c" + orange = "#ff9e64" + purple = "#9d7cd8" + red = "#f7768e" + red1 = "#db4b4b" + teal = "#1abc9c" + terminal_black = "#414868" + warning = "#e0af68" + yellow = "#e0af68" diff --git a/src/utils/config.py b/src/utils/config.py index 169dd06..3514e60 100644 --- a/src/utils/config.py +++ b/src/utils/config.py @@ -3,8 +3,9 @@ from pathlib import Path from attr import define from pygame import Vector2 as Vec2 -from .colors import TokyoNightNight +from .colors import COLOR_DICT from .path import BASE_PATH +from .settings import read_settings from .tuples import Size PADDING = 20 @@ -91,7 +92,8 @@ class Config: window: Window = Window() font: Font = Font() music: Music = Music() - colors = TokyoNightNight() + colors = COLOR_DICT[read_settings()["General"]["colorscheme"]]() + ai = AI() fps: int = 60 diff --git a/src/utils/settings.py b/src/utils/settings.py index 34742e0..c5c616f 100644 --- a/src/utils/settings.py +++ b/src/utils/settings.py @@ -3,12 +3,10 @@ from typing import Any, Optional import toml -from .config import CONFIG, Config -from .log import log from .path import BASE_PATH -def save_settings(settings: Config, file_path: Path) -> None: +def save_settings(settings: dict[str, Any], file_path: Path) -> None: with open(file_path, "w") as file: toml.dump(settings, file)