system wide color scheme and theme, controlled by nuguland system theme: dark mode / light mode color scheme: nugu -> single source of truth for colors, defines palettes for dark and light nuguland: apply nugu color scheme based on theme app types: - qt apps - gnome/gtk apps - terminal - TUIs and CLIs - electron as far as i know, there is no freedesktop system theme standard? i saw people fall back on gtk and/or qt system theme settings. needs research. typically, apps support these theming capabilities: - listen to system theme - define color scheme - define color scheme per dark/light - define colors also relevant in this context is the different types of config languages for apps: - static declarative (json, toml, ini,...) - static declartive, with structure (some kind of "import" directive) - dynamic (lua, js, ...) what i wnat to achieve: - toogle system theme with keybind -> all apps react - toggle theme based on time of day or position of sun the challenge: apps fall into vastly different categories and capabilities. it is unclear, how to support all the apps i care about. for reference: other apps like noctalia or wallust edit configuration files of supported apps. that may be the only way, but it annoys me, that i see changes in git of dotfiles, just because theme switched. the good news: the way i handle CLI and TUI apps, almost always depends on wezterm colors: i create color schemes in TUI/CLI apps that use ANSI colors, hence inherit the theme of wezterm. proposal: - extend nugu to generate color schemes for gtk (and qt?) - look for opportunities in TUI/CLI apps for better/correct ansi themes - toggle theme state with niris: do-screen-transition - qt: try to use gtk theme and colorscheme. if not possible, create qt colorscheme and handle theme questions: - does firefox benefit from custom nugu theme, or just inherit gtk theme? - is there a freedesktop standard for system theme, or do we need gtk/qt specific way? - does nuguland special case theme handling for itself, or since it is a qt app, it uses that mechanism? most important apps for themeing are: niri, nuguland, firefox and wezterm. for those we need testing via screenshots. --- workspace git/jj state in nuguland