summaryrefslogtreecommitdiff
path: root/modules/user/aesthetics/targets/vesktop.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/user/aesthetics/targets/vesktop.nix')
-rw-r--r--modules/user/aesthetics/targets/vesktop.nix65
1 files changed, 65 insertions, 0 deletions
diff --git a/modules/user/aesthetics/targets/vesktop.nix b/modules/user/aesthetics/targets/vesktop.nix
new file mode 100644
index 0000000..968df1a
--- /dev/null
+++ b/modules/user/aesthetics/targets/vesktop.nix
@@ -0,0 +1,65 @@
+{ config, lib, ... }: let
+ cfg = config.aesthetics.targets.vesktop;
+ aes = config.aesthetics;
+in {
+ options.aesthetics.targets.vesktop.enable = lib.mkOption {
+ type = lib.types.bool;
+ default = (aes.enableAllTargets && aes.hasGui);
+ description = "Whether to enable the aesthetics vesktop target.";
+ };
+ config = lib.mkIf cfg.enable {
+ xdg.configFile."vesktop/themes/stylix.theme.css".text = with aes.scheme; ''
+ :root {
+ --base00: #${base00}; /* Black */
+ --base01: #${base01}; /* Bright Black */
+ --base02: #${base02}; /* Grey */
+ --base03: #${base03}; /* Brighter Grey */
+ --base04: #${base04}; /* Bright Grey */
+ --base05: #${base05}; /* White */
+ --base06: #${base06}; /* Brighter White */
+ --base07: #${base07}; /* Bright White */
+ --base08: #${base08}; /* Red */
+ --base09: #${base09}; /* Orange */
+ --base0A: #${base0A}; /* Yellow */
+ --base0B: #${base0B}; /* Green */
+ --base0C: #${base0C}; /* Cyan */
+ --base0D: #${base0D}; /* Blue */
+ --base0E: #${base0E}; /* Purple */
+ --base0F: #${base0F}; /* Magenta */
+
+ --primary-630: var(--base00); /* Autocomplete background */
+ --primary-660: var(--base00); /* Search input background */
+ }
+
+ .theme-light, .theme-dark {
+ --search-popout-option-fade: none; /* Disable fade for search popout */
+ --bg-overlay-2: var(--base00); /* These 2 are needed for proper threads coloring */
+ --home-background: var(--base00);
+ --bg-overlay-chat : var(--base00); /* Recolor forum channels */
+ --background-primary: var(--base00);
+ --background-secondary: var(--base01);
+ --background-secondary-alt: var(--base01);
+ --channeltextarea-background: var(--base01);
+ --background-tertiary: var(--base00);
+ --background-accent: var(--base0E);
+ --background-floating: var(--base01);
+ --background-modifier-hover: #{{base00-hex}}4c; /* 30% of base00 */
+ --background-modifier-selected: var(--base00);
+ --text-normal: var(--base05);
+ --text-secondary: var(--base03);
+ --text-muted: var(--base04);
+ --text-link: var(--base0C);
+ --interactive-normal: var(--base05);
+ --interactive-hover: var(--base05);
+ --interactive-active: var(--base07);
+ --interactive-muted: var(--base03);
+ --channels-default: var(--base04);
+ --channel-icon: var(--base04);
+ --header-primary: var(--base06);
+ --header-secondary: var(--base04);
+ --scrollbar-thin-track: transparent;
+ --scrollbar-auto-track: transparent;
+ }
+ '';
+ };
+}