summaryrefslogtreecommitdiff
path: root/home-manager/modules/aesthetics/targets
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/modules/aesthetics/targets')
-rw-r--r--home-manager/modules/aesthetics/targets/default.nix11
-rw-r--r--home-manager/modules/aesthetics/targets/foot.nix55
-rw-r--r--home-manager/modules/aesthetics/targets/gtk.nix119
-rw-r--r--home-manager/modules/aesthetics/targets/helix.nix28
-rw-r--r--home-manager/modules/aesthetics/targets/mako.nix23
-rw-r--r--home-manager/modules/aesthetics/targets/qutebrowser.nix213
-rw-r--r--home-manager/modules/aesthetics/targets/vesktop.nix65
-rw-r--r--home-manager/modules/aesthetics/targets/zellij.nix28
8 files changed, 542 insertions, 0 deletions
diff --git a/home-manager/modules/aesthetics/targets/default.nix b/home-manager/modules/aesthetics/targets/default.nix
new file mode 100644
index 0000000..7dba76d
--- /dev/null
+++ b/home-manager/modules/aesthetics/targets/default.nix
@@ -0,0 +1,11 @@
+{...}: {
+ imports = [
+ ./mako.nix
+ ./zellij.nix
+ ./qutebrowser.nix
+ ./helix.nix
+ ./gtk.nix
+ ./foot.nix
+ ./vesktop.nix
+ ];
+}
diff --git a/home-manager/modules/aesthetics/targets/foot.nix b/home-manager/modules/aesthetics/targets/foot.nix
new file mode 100644
index 0000000..c6c2283
--- /dev/null
+++ b/home-manager/modules/aesthetics/targets/foot.nix
@@ -0,0 +1,55 @@
+{ config, lib, ... }: let
+ cfg = config.aesthetics.targets.foot;
+ aes = config.aesthetics;
+in {
+ options.aesthetics.targets.foot.enable = lib.mkOption {
+ type = lib.types.bool;
+ default = (aes.enableAllTargets && aes.hasGui);
+ description = "Whether to enable the aesthetics foot target.";
+ };
+ config = lib.mkIf (cfg.enable && config.programs.foot.enable) {
+ programs.foot.settings = {
+ main.font = "${aes.font.name}:size=${aes.font.size.small}";
+ tweak.font-monospace-warn = false;
+ colors = with aes.scheme; {
+ background = base00;
+ foreground = base05;
+
+ # normal
+ regular0 = base00;
+ regular1 = base08;
+ regular2 = base0B;
+ regular3 = base0A;
+ regular4 = base0D;
+ regular5 = base0E;
+ regular6 = base0C;
+ regular7 = base05;
+
+ # bright
+ bright0 = base03;
+ bright1 = base09;
+ bright2 = base01;
+ bright3 = base02;
+ bright4 = base04;
+ bright5 = base06;
+ bright6 = base0F;
+ bright7 = base07;
+
+ # extended
+ "16" = base09;
+ "17" = base0F;
+ "18" = base01;
+ "19" = base02;
+ "20" = base04;
+ "21" = base06;
+
+ # misc
+ selection-background = base05;
+ selection-foreground = base00;
+ urls = base04;
+ jump-labels = "${base00} ${base0A}";
+ scrollback-indicator = "${base00} ${base04}";
+ };
+ };
+ };
+}
diff --git a/home-manager/modules/aesthetics/targets/gtk.nix b/home-manager/modules/aesthetics/targets/gtk.nix
new file mode 100644
index 0000000..795365d
--- /dev/null
+++ b/home-manager/modules/aesthetics/targets/gtk.nix
@@ -0,0 +1,119 @@
+{
+ config,
+ pkgs,
+ lib,
+ ...
+}: let
+ cfg = config.aesthetics.targets.gtk;
+ aes = config.aesthetics;
+
+ gtkCSS = with aes.scheme; ''
+ @define-color accent_color #${base0D};
+ @define-color accent_bg_color #${base0D};
+ @define-color accent_fg_color #${base00};
+ @define-color destructive_color #${base08};
+ @define-color destructive_bg_color #${base08};
+ @define-color destructive_fg_color #${base00};
+ @define-color success_color #${base0B};
+ @define-color success_bg_color #${base0B};
+ @define-color success_fg_color #${base00};
+ @define-color warning_color #${base0E};
+ @define-color warning_bg_color #${base0E};
+ @define-color warning_fg_color #${base00};
+ @define-color error_color #${base08};
+ @define-color error_bg_color #${base08};
+ @define-color error_fg_color #${base00};
+ @define-color window_bg_color #${base00};
+ @define-color window_fg_color #${base05};
+ @define-color view_bg_color #${base00};
+ @define-color view_fg_color #${base05};
+ @define-color headerbar_bg_color #${base01};
+ @define-color headerbar_fg_color #${base05};
+ @define-color headerbar_border_color #${base01};
+ @define-color headerbar_backdrop_color @window_bg_color;
+ @define-color headerbar_shade_color rgba(0, 0, 0, 0.07);
+ @define-color headerbar_darker_shade_color rgba(0, 0, 0, 0.07);
+ @define-color sidebar_bg_color #${base01};
+ @define-color sidebar_fg_color #${base05};
+ @define-color sidebar_backdrop_color @window_bg_color;
+ @define-color sidebar_shade_color rgba(0, 0, 0, 0.07);
+ @define-color secondary_sidebar_bg_color @sidebar_bg_color;
+ @define-color secondary_sidebar_fg_color @sidebar_fg_color;
+ @define-color secondary_sidebar_backdrop_color @sidebar_backdrop_color;
+ @define-color secondary_sidebar_shade_color @sidebar_shade_color;
+ @define-color card_bg_color #${base01};
+ @define-color card_fg_color #${base05};
+ @define-color card_shade_color rgba(0, 0, 0, 0.07);
+ @define-color dialog_bg_color #${base01};
+ @define-color dialog_fg_color #${base05};
+ @define-color popover_bg_color #${base01};
+ @define-color popover_fg_color #${base05};
+ @define-color popover_shade_color rgba(0, 0, 0, 0.07);
+ @define-color shade_color rgba(0, 0, 0, 0.07);
+ @define-color scrollbar_outline_color #${base02};
+ @define-color blue_1 #${base0D};
+ @define-color blue_2 #${base0D};
+ @define-color blue_3 #${base0D};
+ @define-color blue_4 #${base0D};
+ @define-color blue_5 #${base0D};
+ @define-color green_1 #${base0B};
+ @define-color green_2 #${base0B};
+ @define-color green_3 #${base0B};
+ @define-color green_4 #${base0B};
+ @define-color green_5 #${base0B};
+ @define-color yellow_1 #${base0A};
+ @define-color yellow_2 #${base0A};
+ @define-color yellow_3 #${base0A};
+ @define-color yellow_4 #${base0A};
+ @define-color yellow_5 #${base0A};
+ @define-color orange_1 #${base09};
+ @define-color orange_2 #${base09};
+ @define-color orange_3 #${base09};
+ @define-color orange_4 #${base09};
+ @define-color orange_5 #${base09};
+ @define-color red_1 #${base08};
+ @define-color red_2 #${base08};
+ @define-color red_3 #${base08};
+ @define-color red_4 #${base08};
+ @define-color red_5 #${base08};
+ @define-color purple_1 #${base0E};
+ @define-color purple_2 #${base0E};
+ @define-color purple_3 #${base0E};
+ @define-color purple_4 #${base0E};
+ @define-color purple_5 #${base0E};
+ @define-color brown_1 #${base0F};
+ @define-color brown_2 #${base0F};
+ @define-color brown_3 #${base0F};
+ @define-color brown_4 #${base0F};
+ @define-color brown_5 #${base0F};
+ @define-color light_1 #${base01};
+ @define-color light_2 #${base01};
+ @define-color light_3 #${base01};
+ @define-color light_4 #${base01};
+ @define-color light_5 #${base01};
+ @define-color dark_1 #${base01};
+ @define-color dark_2 #${base01};
+ @define-color dark_3 #${base01};
+ @define-color dark_4 #${base01};
+ @define-color dark_5 #${base01};
+ '';
+in {
+ options.aesthetics.targets.gtk.enable = lib.mkOption {
+ type = lib.types.bool;
+ default = aes.enableAllTargets && aes.hasGui;
+ description = "Whether to enable the aesthetics GTK target.";
+ };
+ config = lib.mkIf cfg.enable {
+ gtk = {
+ enable = true;
+ theme = {
+ package = pkgs.adw-gtk3;
+ name = "adw-gtk3";
+ };
+ };
+ xdg.configFile = {
+ "gtk-3.0/gtk.css".text = gtkCSS;
+ "gtk-4.0/gtk.css".text = gtkCSS;
+ };
+ };
+}
diff --git a/home-manager/modules/aesthetics/targets/helix.nix b/home-manager/modules/aesthetics/targets/helix.nix
new file mode 100644
index 0000000..dde557e
--- /dev/null
+++ b/home-manager/modules/aesthetics/targets/helix.nix
@@ -0,0 +1,28 @@
+{ config, lib, ... }: let
+ cfg = config.aesthetics.targets.helix;
+ aes = config.aesthetics;
+in {
+ options.aesthetics.targets.helix = {
+ enable = lib.mkOption {
+ type = lib.types.bool;
+ default = aes.enableAllTargets;
+ description = "Whether to enable the aesthetics helix target.";
+ };
+ theme = lib.mkOption {
+ type = lib.types.str;
+ default = "default";
+ description = "The name of the theme to use for helix.";
+ };
+ };
+ config = lib.mkIf (cfg.enable && config.programs.helix.enable) {
+ programs.helix.settings.theme = "custom-default";
+ home.file."helix-theme" = {
+ target = ".config/helix/themes/custom-default.toml";
+ text = /*toml*/ ''
+ inherits = "${cfg.theme}"
+ "ui.background" = { }
+ "ui.statusline" = { bg = "" }
+ '';
+ };
+ };
+}
diff --git a/home-manager/modules/aesthetics/targets/mako.nix b/home-manager/modules/aesthetics/targets/mako.nix
new file mode 100644
index 0000000..2ade32e
--- /dev/null
+++ b/home-manager/modules/aesthetics/targets/mako.nix
@@ -0,0 +1,23 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.aesthetics.targets.mako;
+ aes = config.aesthetics;
+in {
+ options.aesthetics.targets.mako.enable = lib.mkOption {
+ type = lib.types.bool;
+ default = aes.enableAllTargets && aes.hasGui;
+ description = "Whether to enable the aesthetics mako target.";
+ };
+ config = lib.mkIf (cfg.enable && config.services.mako.enable) {
+ services.mako.settings = with aes.scheme; {
+ background-color = "#${base00}";
+ border-color = "#${base0C}";
+ text-color = "#${base05}";
+ progress-color = "over #${base02}";
+ font = "${aes.font.name} ${aes.font.size.small}";
+ };
+ };
+}
diff --git a/home-manager/modules/aesthetics/targets/qutebrowser.nix b/home-manager/modules/aesthetics/targets/qutebrowser.nix
new file mode 100644
index 0000000..ef7f17d
--- /dev/null
+++ b/home-manager/modules/aesthetics/targets/qutebrowser.nix
@@ -0,0 +1,213 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.aesthetics.targets.qutebrowser;
+ aes = config.aesthetics;
+in {
+ options.aesthetics.targets.qutebrowser.enable = lib.mkOption {
+ type = lib.types.bool;
+ default = aes.enableAllTargets && aes.hasGui;
+ description = "Whether to enable the aesthetics qutebrowser target.";
+ };
+ config = lib.mkIf (cfg.enable && config.programs.qutebrowser.enable) {
+ programs.qutebrowser.settings = {
+ fonts = {
+ default_family = aes.font.name;
+ default_size = "${aes.font.size.small}pt";
+ };
+ colors = with aes.scheme; let
+ background = "#${base00}";
+ secondary-background = "#${base01}";
+ selection-background = "#${base03}";
+ foreground = "#${base05}";
+ inverted-foreground = "#${base00}";
+ error = "#${base08}";
+ info = "#${base0B}";
+ secondary-info = "#${base0C}";
+ warning = "#${base0E}";
+ in {
+ completion = {
+ category = {
+ bg = background;
+ fg = info;
+ border = {
+ bottom = background;
+ top = background;
+ };
+ };
+ even.bg = background;
+ fg = foreground;
+ item.selected = {
+ bg = selection-background;
+ border = {
+ bottom = selection-background;
+ top = selection-background;
+ };
+ fg = foreground;
+ };
+ match.fg = info;
+ odd.bg = secondary-background;
+ scrollbar = {
+ bg = background;
+ fg = foreground;
+ };
+ };
+ contextmenu = {
+ disabled = {
+ bg = secondary-background;
+ fg = inverted-foreground;
+ };
+ menu = {
+ bg = background;
+ fg = foreground;
+ };
+ selected = {
+ bg = selection-background;
+ fg = foreground;
+ };
+ };
+ downloads = {
+ bar.bg = background;
+ error = {
+ bg = error;
+ fg = inverted-foreground;
+ };
+ start = {
+ bg = info;
+ fg = inverted-foreground;
+ };
+ stop = {
+ bg = secondary-info;
+ fg = inverted-foreground;
+ };
+ };
+ hints = {
+ bg = secondary-background;
+ fg = foreground;
+ match.fg = info;
+ };
+ keyhint = {
+ bg = background;
+ fg = foreground;
+ suffix.fg = foreground;
+ };
+ messages = {
+ error = {
+ bg = error;
+ fg = inverted-foreground;
+ border = error;
+ };
+ info = {
+ bg = info;
+ fg = inverted-foreground;
+ border = info;
+ };
+ warning = {
+ bg = warning;
+ fg = inverted-foreground;
+ border = warning;
+ };
+ };
+ prompts = {
+ bg = background;
+ border = background;
+ fg = foreground;
+ selected.bg = secondary-background;
+ };
+ statusbar = {
+ caret = {
+ bg = selection-background;
+ fg = foreground;
+ selection = {
+ bg = selection-background;
+ fg = foreground;
+ };
+ };
+ command = {
+ bg = background;
+ fg = foreground;
+ private = {
+ bg = secondary-background;
+ fg = foreground;
+ };
+ };
+ insert = {
+ bg = info;
+ fg = inverted-foreground;
+ };
+ normal = {
+ bg = background;
+ fg = foreground;
+ };
+ passthrough = {
+ bg = info;
+ fg = inverted-foreground;
+ };
+ private = {
+ bg = secondary-background;
+ fg = foreground;
+ };
+ progress.bg = info;
+ url = {
+ error.fg = error;
+ fg = foreground;
+ hover.fg = foreground;
+ success = {
+ http.fg = secondary-info;
+ https.fg = info;
+ };
+ warn.fg = warning;
+ };
+ };
+ tabs = {
+ bar.bg = background;
+ even = {
+ bg = secondary-background;
+ fg = foreground;
+ };
+ indicator = {
+ inherit error;
+ start = secondary-info;
+ stop = info;
+ };
+ odd = {
+ bg = background;
+ fg = foreground;
+ };
+ pinned = {
+ even = {
+ bg = info;
+ fg = inverted-foreground;
+ };
+ odd = {
+ bg = secondary-info;
+ fg = inverted-foreground;
+ };
+ selected = {
+ even = {
+ bg = selection-background;
+ fg = foreground;
+ };
+ odd = {
+ bg = selection-background;
+ fg = foreground;
+ };
+ };
+ };
+ selected = {
+ even = {
+ bg = selection-background;
+ fg = foreground;
+ };
+ odd = {
+ bg = selection-background;
+ fg = foreground;
+ };
+ };
+ };
+ };
+ };
+ };
+}
diff --git a/home-manager/modules/aesthetics/targets/vesktop.nix b/home-manager/modules/aesthetics/targets/vesktop.nix
new file mode 100644
index 0000000..968df1a
--- /dev/null
+++ b/home-manager/modules/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;
+ }
+ '';
+ };
+}
diff --git a/home-manager/modules/aesthetics/targets/zellij.nix b/home-manager/modules/aesthetics/targets/zellij.nix
new file mode 100644
index 0000000..cefd8ab
--- /dev/null
+++ b/home-manager/modules/aesthetics/targets/zellij.nix
@@ -0,0 +1,28 @@
+{ config, lib, ... }: let
+ cfg = config.aesthetics.targets.zellij;
+ aes = config.aesthetics;
+in {
+ options.aesthetics.targets.zellij.enable = lib.mkOption {
+ type = lib.types.bool;
+ default = aes.enableAllTargets;
+ description = "Whether to enable the aesthetics zellij target.";
+ };
+ config = lib.mkIf (cfg.enable && config.programs.zellij.enable) {
+ programs.zellij.settings = {
+ theme = "base16";
+ themes.base16 = with aes.scheme; {
+ bg = "#${base03}";
+ fg = "#${base05}";
+ red = "#${base08}";
+ green = "#${base0B}";
+ blue = "#${base0D}";
+ yellow = "#${base0A}";
+ magenta = "#${base0E}";
+ orange = "#${base09}";
+ cyan = "#${base0C}";
+ black = "#${base00}";
+ white = "#${base07}";
+ };
+ };
+ };
+}