From c112fcd6c57340a20a9d2f14ee23b310c8681034 Mon Sep 17 00:00:00 2001 From: Aly Raffauf Date: Thu, 15 Aug 2024 15:55:39 -0400 Subject: [PATCH] migrate to stylix (#90) * flake: add stylix modules * yank enough to make hosts build with stylix enabled * add initial common stylix theme * waybar: remove custom colors * rofi: reimplement theme * rofi: transparency fix * rofi: remove old theme * swayosd: use stylix colors * remove theme.colors * remove remaining theme config outside icons + gtk settings * remove darkMode toggle * restore fuzzel module * randomWallpaper: disable * configs in sway * randomWallpaper: disable hyprpaper stylix config * swaylock: restore non-theme settings * hosts: fix wallpaper * waybar: restore colors * rofi: restore theme * rofi: use proper border color * harmonize font sizes * rofi: use borderRadius setting * tmux: remove theming * hosts: add preliminary stylix configs * randomWallpaper: force hyprpaper off * fallarbor: set correct wallpaper * rofi: fix transparency issues on hyprland * sway: override stylix indicator colors --- flake.lock | 231 +++++++++++- flake.nix | 3 + homeManagerModules/apps/alacritty/default.nix | 15 - homeManagerModules/apps/fuzzel/default.nix | 15 +- homeManagerModules/apps/helix/default.nix | 1 - homeManagerModules/apps/kitty/default.nix | 8 - homeManagerModules/apps/rofi/default.nix | 335 ++++++++++-------- homeManagerModules/apps/swaylock/default.nix | 47 +-- homeManagerModules/apps/tmux/default.nix | 10 +- homeManagerModules/apps/vsCodium/default.nix | 13 +- homeManagerModules/apps/zed/default.nix | 10 +- .../desktop/hyprland/settings.nix | 17 - homeManagerModules/desktop/sway/settings.nix | 51 +-- homeManagerModules/options.nix | 76 +--- homeManagerModules/services/mako/default.nix | 5 - .../services/randomWallpaper/default.nix | 4 + .../services/swayosd/default.nix | 10 +- .../services/waybar/default.nix | 86 ++--- homeManagerModules/theme.nix | 148 ++------ homes/aly/default.nix | 13 - homes/dustin/default.nix | 5 +- hosts/fallarbor/default.nix | 1 + hosts/fallarbor/stylix.nix | 54 +++ hosts/lavaridge/default.nix | 1 + hosts/lavaridge/stylix.nix | 54 +++ hosts/mauville/default.nix | 1 + hosts/mauville/home.nix | 6 - hosts/mauville/stylix.nix | 54 +++ hosts/petalburg/default.nix | 1 + hosts/petalburg/stylix.nix | 54 +++ hosts/rustboro/default.nix | 1 + hosts/rustboro/home.nix | 6 - hosts/rustboro/stylix.nix | 54 +++ 33 files changed, 792 insertions(+), 598 deletions(-) create mode 100644 hosts/fallarbor/stylix.nix create mode 100644 hosts/lavaridge/stylix.nix create mode 100644 hosts/mauville/stylix.nix create mode 100644 hosts/petalburg/stylix.nix create mode 100644 hosts/rustboro/stylix.nix diff --git a/flake.lock b/flake.lock index 9c7782bc..d9bc0ce3 100644 --- a/flake.lock +++ b/flake.lock @@ -23,6 +23,120 @@ "type": "github" } }, + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1708890466, + "narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "665b3c6748534eb766c777298721cece9453fdae", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1622559957, + "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "type": "github" + } + }, + "base16-foot": { + "flake": false, + "locked": { + "lastModified": 1696725948, + "narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", + "owner": "tinted-theming", + "repo": "base16-foot", + "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-foot", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1720809814, + "narHash": "sha256-numb3xigRGnr/deF7wdjBwVg7fpbTH7reFDkJ75AJkY=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "34f41987bec14c0f3f6b2155c19787b1f6489625", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-kitty": { + "flake": false, + "locked": { + "lastModified": 1665001328, + "narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=", + "owner": "kdrag0n", + "repo": "base16-kitty", + "rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805", + "type": "github" + }, + "original": { + "owner": "kdrag0n", + "repo": "base16-kitty", + "type": "github" + } + }, + "base16-tmux": { + "flake": false, + "locked": { + "lastModified": 1696725902, + "narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", + "owner": "tinted-theming", + "repo": "base16-tmux", + "rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-tmux", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1716150083, + "narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "type": "github" + } + }, "darwin": { "inputs": { "nixpkgs": [ @@ -65,6 +179,55 @@ "type": "github" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1689549921, + "narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, + "gnome-shell": { + "flake": false, + "locked": { + "lastModified": 1713702291, + "narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934", + "type": "github" + }, + "original": { + "owner": "GNOME", + "ref": "46.1", + "repo": "gnome-shell", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -107,6 +270,27 @@ "type": "github" } }, + "home-manager_3": { + "inputs": { + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1715930644, + "narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "iio-hyprland": { "inputs": { "nixpkgs": [ @@ -180,6 +364,22 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1714912032, + "narHash": "sha256-clkcOIkg8G4xuJh+1onLG4HPMpbtzdLv4rHxFzgsH9c=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ee4a6e0f566fe5ec79968c57a9c2c3c25f2cf41d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nur": { "locked": { "lastModified": 1723333488, @@ -225,7 +425,36 @@ "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", "nur": "nur", - "raffauflabs": "raffauflabs" + "raffauflabs": "raffauflabs", + "stylix": "stylix" + } + }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-foot": "base16-foot", + "base16-helix": "base16-helix", + "base16-kitty": "base16-kitty", + "base16-tmux": "base16-tmux", + "base16-vim": "base16-vim", + "flake-compat": "flake-compat", + "gnome-shell": "gnome-shell", + "home-manager": "home-manager_3", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1722946882, + "narHash": "sha256-mxtnMye8gs82tdQbVC+g6v3aPOZlH150f9WyntHIkTg=", + "owner": "danth", + "repo": "stylix", + "rev": "5853f1a8bd072f2ebabfc3de3973084353cf6f1e", + "type": "github" + }, + "original": { + "owner": "danth", + "repo": "stylix", + "type": "github" } }, "systems": { diff --git a/flake.nix b/flake.nix index e80e5723..b49f5472 100644 --- a/flake.nix +++ b/flake.nix @@ -36,6 +36,8 @@ inputs.nixpkgs.follows = "nixpkgs"; url = "github:alyraffauf/raffauflabs"; }; + + stylix.url = "github:danth/stylix"; }; nixConfig = { @@ -104,6 +106,7 @@ self.inputs.agenix.nixosModules.default self.inputs.disko.nixosModules.disko self.inputs.home-manager.nixosModules.home-manager + self.inputs.stylix.nixosModules.stylix self.nixosModules.base self.nixosModules.nixos self.nixosModules.users diff --git a/homeManagerModules/apps/alacritty/default.nix b/homeManagerModules/apps/alacritty/default.nix index f3474d21..41dddbf5 100644 --- a/homeManagerModules/apps/alacritty/default.nix +++ b/homeManagerModules/apps/alacritty/default.nix @@ -11,24 +11,9 @@ in { settings = { colors = { draw_bold_text_with_bright_colors = true; - - primary = { - background = "${cfg.theme.colors.background}"; - foreground = "${cfg.theme.colors.text}"; - }; - transparent_background_colors = true; }; - font = { - normal = { - family = cfg.theme.monospaceFont.name; - style = "Regular"; - }; - - size = cfg.theme.monospaceFont.size + 1; - }; - selection.save_to_clipboard = true; window = { diff --git a/homeManagerModules/apps/fuzzel/default.nix b/homeManagerModules/apps/fuzzel/default.nix index 92d3bb40..821aad98 100644 --- a/homeManagerModules/apps/fuzzel/default.nix +++ b/homeManagerModules/apps/fuzzel/default.nix @@ -10,27 +10,16 @@ in { enable = true; settings = { border = { - radius = 10; - width = 2; + radius = cfg.theme.borderRadius; + width = 4; }; main = { - font = "${cfg.theme.monospaceFont.name}:size=${toString cfg.theme.monospaceFont.size}"; - icon-theme = "${config.gtk.iconTheme.name}"; layer = "overlay"; lines = 3; terminal = lib.getExe cfg.defaultApps.terminal; width = 36; }; - - colors = { - background = "${cfg.theme.colors.background}CC"; - border = "${cfg.theme.colors.primary}EE"; - selection = "${cfg.theme.colors.background}FF"; - selection-match = "${cfg.theme.colors.primary}FF"; - selection-text = "${cfg.theme.colors.secondary}FF"; - text = "${cfg.theme.colors.text}FF"; - }; }; }; }; diff --git a/homeManagerModules/apps/helix/default.nix b/homeManagerModules/apps/helix/default.nix index af268565..35bb0c29 100644 --- a/homeManagerModules/apps/helix/default.nix +++ b/homeManagerModules/apps/helix/default.nix @@ -68,7 +68,6 @@ }; settings = { - theme = lib.mkDefault "adwaita-dark"; editor = { auto-completion = true; auto-format = true; diff --git a/homeManagerModules/apps/kitty/default.nix b/homeManagerModules/apps/kitty/default.nix index 55905574..8661c759 100644 --- a/homeManagerModules/apps/kitty/default.nix +++ b/homeManagerModules/apps/kitty/default.nix @@ -10,19 +10,11 @@ in { programs.kitty = { enable = true; - font = { - name = cfg.theme.monospaceFont.name; - size = cfg.theme.monospaceFont.size + 1; - }; - settings = { - background_opacity = "0.6"; confirm_os_window_close = "0"; notify_on_cmd_finish = "unfocused 10.0 command ${lib.getExe pkgs.libnotify} -i ${pkgs.kitty}/share/icons/hicolor/256x256/apps/kitty.png \"Job Finished\""; tab_bar_style = "powerline"; }; - - theme = lib.mkDefault "Adwaita dark"; }; }; } diff --git a/homeManagerModules/apps/rofi/default.nix b/homeManagerModules/apps/rofi/default.nix index 2e909f9b..18576622 100644 --- a/homeManagerModules/apps/rofi/default.nix +++ b/homeManagerModules/apps/rofi/default.nix @@ -5,6 +5,18 @@ ... }: let cfg = config.ar.home; + + inherit (config.lib.formats.rasi) mkLiteral; + mkRgba = opacity: color: let + c = config.lib.stylix.colors; + r = c."${color}-rgb-r"; + g = c."${color}-rgb-g"; + b = c."${color}-rgb-b"; + in + mkLiteral + "rgba ( ${r}, ${g}, ${b}, ${opacity} % )"; + mkRgb = mkRgba "100"; + rofiOpacity = builtins.toString (builtins.ceil (config.stylix.opacity.popups * 100)); in { config = lib.mkIf cfg.apps.rofi.enable { home.packages = [ @@ -13,9 +25,11 @@ in { pkgs.rofi-rbw-wayland ]; + stylix.targets.rofi.enable = false; + programs.rofi = { enable = true; - font = "${cfg.theme.monospaceFont.name} ${toString cfg.theme.monospaceFont.size}"; + font = "${config.stylix.fonts.monospace.name} ${toString config.stylix.fonts.sizes.popups}"; location = "center"; package = pkgs.rofi-wayland; @@ -25,7 +39,173 @@ in { ]; terminal = lib.getExe cfg.defaultApps.terminal; - theme = "theme.rasi"; + theme = { + "*" = { + background = mkRgba rofiOpacity "base00"; + lightbg = mkRgba rofiOpacity "base01"; + red = mkRgba rofiOpacity "base08"; + blue = mkRgba rofiOpacity "base0D"; + lightfg = mkRgba rofiOpacity "base06"; + foreground = mkRgb "base05"; + lightbgopaque = mkRgb "base01"; + lightfgopaque = mkRgb "base06"; + + background-color = mkLiteral "transparent"; + separatorcolor = mkLiteral "@foreground"; + border-color = mkLiteral "@foreground"; + selected-normal-foreground = mkLiteral "@lightbgopaque"; + selected-normal-background = mkLiteral "@lightfgopaque"; + selected-active-foreground = mkLiteral "@lightbgopaque"; + selected-active-background = mkLiteral "@lightfgopaque"; + selected-urgent-foreground = mkLiteral "@background"; + selected-urgent-background = mkLiteral "@red"; + normal-foreground = mkLiteral "@foreground"; + normal-background = mkLiteral "transparent"; + active-foreground = mkLiteral "@blue"; + active-background = mkLiteral "transparent"; + urgent-foreground = mkLiteral "@red"; + urgent-background = mkLiteral "transparent"; + alternate-normal-foreground = mkLiteral "@foreground"; + alternate-normal-background = mkLiteral "transparent"; + alternate-active-foreground = mkLiteral "@blue"; + alternate-active-background = mkLiteral "transparent"; + alternate-urgent-foreground = mkLiteral "@red"; + alternate-urgent-background = mkLiteral "transparent"; + + # Text Colors + base-text = mkRgb "base05"; + selected-normal-text = mkRgb "base01"; + selected-active-text = mkRgb "base00"; + selected-urgent-text = mkRgb "base00"; + normal-text = mkRgb "base05"; + active-text = mkRgb "base0D"; + urgent-text = mkRgb "base08"; + alternate-normal-text = mkRgb "base05"; + alternate-active-text = mkRgb "base0D"; + alternate-urgent-text = mkRgb "base08"; + }; + + window = { + background-color = mkLiteral "@background"; + border = 4; + border-color = mkLiteral "@blue"; + border-radius = mkLiteral "${toString cfg.theme.borderRadius}"; + }; + + message = { + border-color = mkLiteral "@separatorcolor"; + border = mkLiteral "2px solid 0px 0px"; + padding = 1; + }; + + textbox.text-color = mkLiteral "@base-text"; + + listview = { + border-color = mkLiteral "@separatorcolor"; + border = mkLiteral "2px solid 0px 0px"; + spacing = 4; + scrollbar = false; + }; + + element = { + border = 0; + padding = 5; + }; + + element-text = { + background-color = mkLiteral "inherit"; + text-color = mkLiteral "inherit"; + }; + + element-icon = { + background-color = mkLiteral "inherit"; + text-color = mkLiteral "inherit"; + }; + + "element normal.normal" = { + background-color = mkLiteral "@normal-background"; + text-color = mkLiteral "@normal-text"; + }; + + "element normal.urgent" = { + background-color = mkLiteral "@urgent-background"; + text-color = mkLiteral "@urgent-text"; + }; + + "element normal.active" = { + background-color = mkLiteral "@active-background"; + text-color = mkLiteral "@active-text"; + }; + + "element selected.normal" = { + background-color = mkLiteral "@selected-normal-background"; + text-color = mkLiteral "@selected-normal-text"; + }; + + "element selected.urgent" = { + background-color = mkLiteral "@selected-urgent-background"; + text-color = mkLiteral "@selected-urgent-text"; + }; + + "element selected.active" = { + background-color = mkLiteral "@selected-active-background"; + text-color = mkLiteral "@selected-active-text"; + }; + + "element alternate.normal" = { + background-color = mkLiteral "@alternate-normal-background"; + text-color = mkLiteral "@alternate-normal-text"; + }; + + "element alternate.urgent" = { + background-color = mkLiteral "@alternate-urgent-background"; + text-color = mkLiteral "@alternate-urgent-text"; + }; + + "element alternate.active" = { + background-color = mkLiteral "@alternate-active-background"; + text-color = mkLiteral "@alternate-active-text"; + }; + + scrollbar.handle-color = mkLiteral "@normal-foreground"; + sidebar.border-color = mkLiteral "@separatorcolor"; + button.text-color = mkLiteral "@normal-text"; + + "button selected" = { + background-color = mkLiteral "@selected-normal-background"; + text-color = mkLiteral "@selected-normal-text"; + }; + + inputbar.text-color = mkLiteral "@normal-text"; + case-indicator.text-color = mkLiteral "@normal-text"; + entry.text-color = mkLiteral "@normal-text"; + prompt.text-color = mkLiteral "@normal-text"; + + "#textbox-prompt-colon" = { + expand = false; + margin = mkLiteral "0px 0.3em 0em 0em"; + str = ":"; + text-color = mkLiteral "inherit"; + }; + + case-indicator.spacing = 0; + entry.spacing = 0; + + prompt = { + spacing = 0; + margin = 1; + }; + + "#inputbar" = { + children = map mkLiteral ["prompt" "textbox-prompt-colon" "entry" "case-indicator"]; + padding = 10; + }; + + mode-switcher = { + border = mkLiteral "2px solid 0px 0px"; + border-color = mkLiteral "@separatorcolor"; + }; + }; extraConfig = { case-sensitive = false; @@ -68,157 +248,6 @@ in { clear-after 60 ''; - "rofi/theme.rasi".text = '' - * { - selected-normal-foreground: ${cfg.theme.colors.secondary}; - foreground: ${cfg.theme.colors.text}; - normal-foreground: @foreground; - alternate-normal-background: transparent; - red: ${cfg.theme.colors.secondary}CC; - selected-urgent-foreground: ${cfg.theme.colors.secondary}CC; - blue: ${cfg.theme.colors.primary}CC; - urgent-foreground: ${cfg.theme.colors.primary}CC; - alternate-urgent-background: transparent; - active-foreground: ${cfg.theme.colors.primary}CC; - lightbg: rgba ( 238, 232, 213, 80 % ); - selected-active-foreground: ${cfg.theme.colors.secondary}; - alternate-active-background: transparent; - background: transparent; - bordercolor: ${cfg.theme.colors.background}99; - alternate-normal-foreground: @foreground; - normal-background: transparent; - lightfg: ${cfg.theme.colors.primary}CC; - selected-normal-background: ${cfg.theme.colors.background}; - border-color: ${cfg.theme.colors.primary}CC; - spacing: 2; - separatorcolor: ${cfg.theme.colors.primary}CC; - urgent-background: transparent; - selected-urgent-background: ${cfg.theme.colors.primary}CC; - alternate-urgent-foreground: @urgent-foreground; - background-color: transparent; - alternate-active-foreground: @active-foreground; - active-background: transparent; - selected-active-background: ${cfg.theme.colors.background}; - } - window { - background-color: ${cfg.theme.colors.background}CC; - border: 4; - border-color: @border-color; - border-radius: ${toString cfg.theme.borderRadius}px; - padding: 0; - } - mainbox { - border: 0; - padding: 0; - } - message { - border: 2px solid 0px 0px ; - border-color: @separatorcolor; - padding: 1px ; - } - textbox { - text-color: @foreground; - } - listview { - fixed-height: 0; - border: 2px solid 0px 0px ; - border-color: @separatorcolor; - spacing: 2px ; - scrollbar: false; - padding: 5px; - } - element { - border: 0; - padding: 5px; - border-radius: 10px; - } - element-text { - background-color: inherit; - text-color: inherit; - } - element.normal.normal { - background-color: @normal-background; - text-color: @normal-foreground; - } - element.normal.urgent { - background-color: @urgent-background; - text-color: @urgent-foreground; - } - element.normal.active { - background-color: @active-background; - text-color: @active-foreground; - } - element.selected.normal { - background-color: @selected-normal-background; - text-color: @selected-normal-foreground; - } - element.selected.urgent { - background-color: @selected-urgent-background; - text-color: @selected-urgent-foreground; - } - element.selected.active { - background-color: @selected-active-background; - text-color: @selected-active-foreground; - } - element.alternate.normal { - background-color: @alternate-normal-background; - text-color: @alternate-normal-foreground; - } - element.alternate.urgent { - background-color: @alternate-urgent-background; - text-color: @alternate-urgent-foreground; - } - element.alternate.active { - background-color: @alternate-active-background; - text-color: @alternate-active-foreground; - } - scrollbar { - width: 0px ; - border: 0; - handle-width: 0px ; - padding: 0; - } - mode-switcher { - border: 2px solid 0px 0px ; - border-color: @separatorcolor; - } - button.selected { - background-color: @selected-normal-background; - text-color: @selected-normal-foreground; - } - button { - background-color: @background; - text-color: @foreground; - } - inputbar { - spacing: 0; - text-color: @normal-foreground; - padding: 10px ; - } - case-indicator { - spacing: 0; - text-color: @normal-foreground; - } - entry { - spacing: 0; - text-color: @normal-foreground; - } - prompt { - spacing: 0; - text-color: @normal-foreground; - margin: 1px; - } - inputbar { - children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; - } - textbox-prompt-colon { - expand: false; - str: ":"; - margin: 0px 0.3em 0em 0em ; - text-color: @normal-foreground; - } - ''; - "networkmanager-dmenu/config.ini".text = '' [dmenu] dmenu_command = ${lib.getExe config.programs.rofi.package} diff --git a/homeManagerModules/apps/swaylock/default.nix b/homeManagerModules/apps/swaylock/default.nix index 44a387c7..08bfbacb 100644 --- a/homeManagerModules/apps/swaylock/default.nix +++ b/homeManagerModules/apps/swaylock/default.nix @@ -9,42 +9,15 @@ in { config = lib.mkIf cfg.apps.swaylock.enable { home.packages = with pkgs; [swaylock]; - programs.swaylock.enable = true; - - xdg.configFile."swaylock/config".text = '' - bs-hl-color=e78284 - caps-lock-bs-hl-color=e78284 - caps-lock-key-hl-color=e78284 - color=303446 - daemonize - font="${cfg.theme.monospaceFont.name}" - image=${cfg.theme.wallpaper} - indicator-caps-lock - indicator-idle-visible - indicator-radius=120 - indicator-thickness=20 - inside-caps-lock-color=303446cc - inside-clear-color=303446cc - inside-color=303446cc - inside-ver-color=303446cc - inside-wrong-color=303446cc - key-hl-color=a6d189 - line-caps-lock-color=${cfg.theme.colors.background}CC - line-clear-color=${cfg.theme.colors.background}CC - line-color=${cfg.theme.colors.background}CC - line-ver-color=${cfg.theme.colors.background}CC - line-wrong-color=${cfg.theme.colors.background}CC - ring-caps-lock-color=e78284cc - ring-clear-color=85c1dccc - ring-color=${cfg.theme.colors.primary}CC - ring-ver-color=a6d189cc - ring-wrong-color=e78284cc - scaling=fill - separator-color=${cfg.theme.colors.background}CC - text-caps-lock-color=c6d0f5 - text-clear-color=c6d0f5 - text-ver-color=c6d0f5 - text-wrong-color=c6d0f5 - ''; + programs.swaylock = { + enable = true; + settings = { + daemonize = true; + indicator-thickness = 20; + indicator-radius = 120; + indicator-idle-visible = true; + indicator-caps-lock = true; + }; + }; }; } diff --git a/homeManagerModules/apps/tmux/default.nix b/homeManagerModules/apps/tmux/default.nix index 83ea38e0..09d5a64c 100644 --- a/homeManagerModules/apps/tmux/default.nix +++ b/homeManagerModules/apps/tmux/default.nix @@ -21,15 +21,7 @@ terminal = "tmux-256color"; extraConfig = '' - run-shell ${pkgs.tmuxPlugins.battery}/share/tmux-plugins/battery/battery.tmux - run-shell ${pkgs.tmuxPlugins.cpu}/share/tmux-plugins/cpu/cpu.tmux - run-shell ${pkgs.tmuxPlugins.resurrect}/share/tmux-plugins/resurrect/resurrect.tmux - run-shell ${pkgs.tmuxPlugins.weather}/share/tmux-plugins/weather/tmux-weather.tmux - set -g status-right '#{cpu_percentage} CPU | #{battery_percentage} BAT | %I:%M %p | #{weather}' - set-option -g @tmux-weather-format "%x+%t" - set-option -g @tmux-weather-units "u" - set-option -g pane-active-border-style fg=plum4 - set-option -g status-bg plum4 + set -g status-right '%I:%M %p ' ''; }; }; diff --git a/homeManagerModules/apps/vsCodium/default.nix b/homeManagerModules/apps/vsCodium/default.nix index ec923378..232a2b4c 100644 --- a/homeManagerModules/apps/vsCodium/default.nix +++ b/homeManagerModules/apps/vsCodium/default.nix @@ -34,8 +34,7 @@ in { userSettings = { "diffEditor.ignoreTrimWhitespace" = false; - "editor.fontFamily" = "'${cfg.theme.monospaceFont.name} ${toString cfg.theme.monospaceFont.size}', 'monospace', monospace"; - "editor.fontSize" = cfg.theme.monospaceFont.size + 3; + "editor.fontSize" = config.stylix.fonts.sizes.applications + 3; "editor.formatOnPaste" = true; "editor.formatOnSave" = true; "editor.formatOnType" = true; @@ -78,18 +77,11 @@ in { "shellformat.flag" = "-i 4"; "terminal.external.linuxExec" = lib.getExe cfg.defaultApps.terminal; - "terminal.integrated.fontSize" = cfg.theme.monospaceFont.size + 3; + "terminal.integrated.fontSize" = config.stylix.fonts.sizes.terminal + 3; "update.mode" = "none"; "window.menuBarVisibility" = "hidden"; "window.titleBarStyle" = lib.mkDefault "native"; "window.zoomPerWindow" = false; - "workbench.colorTheme" = - if cfg.theme.darkMode - then "Adwaita Dark" - else "Adwaita Light"; - "workbench.iconTheme" = "vs-seti"; - "workbench.preferredDarkColorTheme" = "Adwaita Dark"; - "workbench.preferredLightColorTheme" = "Adwaita Light"; }; extensions = with pkgs.vscode-extensions; [ @@ -102,7 +94,6 @@ in { ms-python.python ms-vscode.cpptools-extension-pack oderwat.indent-rainbow - piousdeer.adwaita-theme rubymaniac.vscode-paste-and-indent rust-lang.rust-analyzer tomoki1207.pdf diff --git a/homeManagerModules/apps/zed/default.nix b/homeManagerModules/apps/zed/default.nix index e419cc90..a4fd6a8c 100644 --- a/homeManagerModules/apps/zed/default.nix +++ b/homeManagerModules/apps/zed/default.nix @@ -48,8 +48,8 @@ in { auto_update = false; autosave.after_delay.milliseconds = 1000; - buffer_font_family = cfg.theme.monospaceFont.name; - buffer_font_size = cfg.theme.monospaceFont.size + 3; + buffer_font_family = config.stylix.fonts.monospace.name; + buffer_font_size = config.stylix.fonts.sizes.applications + 2; current_line_highlight = "line"; indent_guides = { @@ -89,7 +89,7 @@ in { metrics = false; }; - terminal.font_size = cfg.theme.monospaceFont.size + 3; + terminal.font_size = config.stylix.fonts.sizes.terminal + 2; theme = { dark = "Adwaita Pastel Dark"; @@ -97,8 +97,8 @@ in { mode = "system"; }; - ui_font_family = cfg.theme.sansFont.name; - ui_font_size = cfg.theme.sansFont.size + 5; + ui_font_family = config.stylix.fonts.sansSerif.name; + ui_font_size = config.stylix.fonts.sizes.applications + 4; use_autoclose = false; vim_mode = false; }; diff --git a/homeManagerModules/desktop/hyprland/settings.nix b/homeManagerModules/desktop/hyprland/settings.nix index 48648377..fd8cb998 100644 --- a/homeManagerModules/desktop/hyprland/settings.nix +++ b/homeManagerModules/desktop/hyprland/settings.nix @@ -100,7 +100,6 @@ in { size = 8; }; - "col.shadow" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.shadow}EE)"; dim_special = 0.5; drop_shadow = true; @@ -149,8 +148,6 @@ in { }; general = { - "col.active_border" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.secondary}CC) rgba(${lib.strings.removePrefix "#" cfg.theme.colors.primary}CC) 45deg"; - "col.inactive_border" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.inactive}99)"; allow_tearing = false; border_size = 4; gaps_in = 5; @@ -164,20 +161,8 @@ in { }; group = { - "col.border_active" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.secondary}CC) rgba(${lib.strings.removePrefix "#" cfg.theme.colors.primary}CC) 45deg"; - "col.border_inactive" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.inactive}99)"; - "col.border_locked_active" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.secondary}CC) rgba(${lib.strings.removePrefix "#" cfg.theme.colors.primary}CC) 45deg"; - "col.border_locked_inactive" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.inactive}99)"; - groupbar = { - "col.active" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.primary}CC)"; - "col.inactive" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.inactive}CC)"; - "col.locked_active" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.primary}CC)"; - "col.locked_inactive" = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.inactive}CC)"; - font_family = cfg.theme.sansFont.name; - font_size = cfg.theme.sansFont.size; height = 24; - text_color = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.text}FF)"; }; }; @@ -187,11 +172,9 @@ in { }; misc = { - background_color = "rgba(${lib.strings.removePrefix "#" cfg.theme.colors.background}FF)"; disable_hyprland_logo = true; disable_splash_rendering = true; focus_on_activate = true; - font_family = cfg.theme.sansFont.name; vfr = true; }; diff --git a/homeManagerModules/desktop/sway/settings.nix b/homeManagerModules/desktop/sway/settings.nix index 79a4afdc..5e993581 100644 --- a/homeManagerModules/desktop/sway/settings.nix +++ b/homeManagerModules/desktop/sway/settings.nix @@ -5,9 +5,12 @@ ... }: let cfg = config.ar.home; + focused = config.lib.stylix.colors.withHashtag.base0D; helpers = import ../wayland/helpers.nix {inherit config lib pkgs;}; modifier = "Mod4"; scripts = import ./scripts.nix {inherit config lib pkgs;}; + unfocused = config.lib.stylix.colors.withHashtag.base03; + urgent = config.lib.stylix.colors.withHashtag.base08; in { enable = true; checkConfig = false; @@ -30,31 +33,11 @@ in { modifier = modifier; colors = { - background = "${cfg.theme.colors.primary}CC"; - - focused = { - background = "${cfg.theme.colors.primary}CC"; - border = "${cfg.theme.colors.primary}CC"; - childBorder = "${cfg.theme.colors.primary}CC"; - indicator = "${cfg.theme.colors.primary}CC"; - text = "${cfg.theme.colors.text}"; - }; - - focusedInactive = { - background = "${cfg.theme.colors.inactive}99"; - border = "${cfg.theme.colors.inactive}99"; - childBorder = "${cfg.theme.colors.inactive}99"; - indicator = "${cfg.theme.colors.inactive}99"; - text = "${cfg.theme.colors.text}"; - }; - - unfocused = { - background = "${cfg.theme.colors.inactive}99"; - border = "${cfg.theme.colors.inactive}99"; - childBorder = "${cfg.theme.colors.inactive}99"; - indicator = "${cfg.theme.colors.inactive}99"; - text = "${cfg.theme.colors.text}"; - }; + focused.indicator = lib.mkForce focused; + focusedInactive.indicator = lib.mkForce unfocused; + placeholder.indicator = lib.mkForce unfocused; + unfocused.indicator = lib.mkForce unfocused; + urgent.indicator = lib.mkForce urgent; }; defaultWorkspace = "workspace number 1"; @@ -79,12 +62,6 @@ in { newWindow = "focus"; }; - fonts = { - names = [cfg.theme.sansFont.name]; - style = "Bold"; - size = cfg.theme.sansFont.size + 0.0; - }; - gaps = { inner = 5; outer = 6; @@ -183,12 +160,10 @@ in { }; }; - startup = - [ - {command = "${pkgs.mate.mate-polkit}/libexec/polkit-mate-authentication-agent-1";} - {command = lib.getExe pkgs.autotiling;} - ] - ++ lib.optional (!cfg.services.randomWallpaper.enable) {command = "${lib.getExe pkgs.swaybg} -i ${cfg.theme.wallpaper}";}; + startup = [ + {command = "${pkgs.mate.mate-polkit}/libexec/polkit-mate-authentication-agent-1";} + {command = lib.getExe pkgs.autotiling;} + ]; window = { titlebar = false; @@ -284,7 +259,7 @@ in { # corner_radius ${toString cfg.theme.borderRadius} shadows enable shadows_on_csd enable - shadow_color ${cfg.theme.colors.shadow} + shadow_color ${config.lib.stylix.colors.withHashtag."base00"}CC default_dim_inactive 0.05 diff --git a/homeManagerModules/options.nix b/homeManagerModules/options.nix index 3d171357..1d61927e 100644 --- a/homeManagerModules/options.nix +++ b/homeManagerModules/options.nix @@ -198,94 +198,20 @@ in { waybar.enable = lib.mkEnableOption "Waybar wayland panel."; }; - theme = let - mkFontOption = typ: nam: pkg: siz: { - name = lib.mkOption { - description = "Default ${typ} font name."; - default = nam; - type = lib.types.str; - }; - - package = lib.mkOption { - description = "Default ${typ} font package."; - default = pkg; - type = lib.types.package; - }; - - size = lib.mkOption { - description = "Default ${typ} font size."; - default = siz; - type = lib.types.int; - }; - }; - in { + theme = { enable = lib.mkEnableOption "Gtk, Qt, and application colors."; - darkMode = lib.mkOption { - description = "Whether to prefer dark mode apps or not."; - default = cfg.theme.enable; - type = lib.types.bool; - }; - borderRadius = lib.mkOption { description = "Global border radius."; default = 10; type = lib.types.int; }; - colors = { - text = lib.mkOption { - description = "Text color."; - default = "#FFFFFF"; - type = lib.types.str; - }; - - background = lib.mkOption { - description = "Background color."; - default = "#242424"; - type = lib.types.str; - }; - - primary = lib.mkOption { - description = "Primary color."; - default = "#78AEED"; #"#CA9EE6"; - type = lib.types.str; - }; - - secondary = lib.mkOption { - description = "Secondary color."; - default = "#CA9EE6"; #"#99D1DB"; - type = lib.types.str; - }; - - inactive = lib.mkOption { - description = "Inactive color."; - default = "#242424"; - type = lib.types.str; - }; - - shadow = lib.mkOption { - description = "Drop shadow color."; - default = "#1A1A1A"; - type = lib.types.str; - }; - }; - - sansFont = mkFontOption "sans serif" "UbuntuSans Nerd Font" (pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}) 11; - serifFont = mkFontOption "serif" "Vegur" pkgs.vegur 11; - monospaceFont = mkFontOption "monospace" "UbuntuSansMono Nerd Font" (pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}) 11; - gtk.hideTitleBar = lib.mkOption { description = "Whether to hide GTK3/4 titlebars (useful for some window managers)."; default = false; type = lib.types.bool; }; - - wallpaper = lib.mkOption { - description = "Default wallpaper."; - default = "${config.xdg.dataHome}/backgrounds/jr-korpa-9XngoIpxcEo-unsplash.jpg"; - type = lib.types.str; - }; }; }; } diff --git a/homeManagerModules/services/mako/default.nix b/homeManagerModules/services/mako/default.nix index 985f7e5e..d4ba3c93 100644 --- a/homeManagerModules/services/mako/default.nix +++ b/homeManagerModules/services/mako/default.nix @@ -10,13 +10,10 @@ in { services.mako = { actions = true; anchor = "bottom-right"; - backgroundColor = "${cfg.theme.colors.background}99"; - borderColor = "${cfg.theme.colors.primary}CC"; borderRadius = cfg.theme.borderRadius; borderSize = 4; defaultTimeout = 10000; enable = true; - font = "${cfg.theme.sansFont.name} ${toString cfg.theme.sansFont.size}"; groupBy = "app-name"; height = 300; iconPath = "${pkgs.papirus-icon-theme}/share/icons/Papirus/"; @@ -24,9 +21,7 @@ in { layer = "top"; margin = "20,0"; padding = "15"; - progressColor = "source ${cfg.theme.colors.secondary}"; sort = "+time"; - textColor = "${cfg.theme.colors.text}"; width = 400; extraConfig = '' diff --git a/homeManagerModules/services/randomWallpaper/default.nix b/homeManagerModules/services/randomWallpaper/default.nix index e0032a9d..d53eaf9e 100644 --- a/homeManagerModules/services/randomWallpaper/default.nix +++ b/homeManagerModules/services/randomWallpaper/default.nix @@ -86,6 +86,10 @@ ''; in { config = lib.mkIf config.ar.home.services.randomWallpaper.enable { + services.hyprpaper.enable = lib.mkForce false; + stylix.targets.hyprpaper.enable = lib.mkForce false; + wayland.windowManager.sway.config.output."*" = lib.mkForce {}; # Dirty. TODO: make more elegant. + systemd.user.services.randomWallpaper = { Unit = { After = "graphical-session.target"; diff --git a/homeManagerModules/services/swayosd/default.nix b/homeManagerModules/services/swayosd/default.nix index 22d62a1d..886ad083 100644 --- a/homeManagerModules/services/swayosd/default.nix +++ b/homeManagerModules/services/swayosd/default.nix @@ -27,8 +27,8 @@ in { window#osd { padding: 12px 20px; border-radius: ${toString cfg.theme.borderRadius}px; - border: 4px solid alpha(${cfg.theme.colors.primary}, 0.8); - background: alpha(${cfg.theme.colors.background}, 0.8); + border: 4px solid alpha(${config.lib.stylix.colors.withHashtag."base07"}, ${toString config.stylix.opacity.popups}); + background: alpha(${config.lib.stylix.colors.withHashtag."base01"}, ${toString config.stylix.opacity.popups}); } window#osd #container { @@ -37,7 +37,7 @@ in { window#osd image, window#osd label { - color: ${cfg.theme.colors.secondary}; + color: ${config.lib.stylix.colors.withHashtag."base06"}; } window#osd progressbar:disabled, @@ -56,14 +56,14 @@ in { min-height: inherit; border-radius: inherit; border: none; - background: alpha(${cfg.theme.colors.secondary}, 0.5); + background: alpha(${config.lib.stylix.colors.withHashtag."base06"}, 0.5); } window#osd progress { min-height: inherit; border-radius: inherit; border: none; - background: ${cfg.theme.colors.secondary}; + background: ${config.lib.stylix.colors.withHashtag."base06"}; } ''; diff --git a/homeManagerModules/services/waybar/default.nix b/homeManagerModules/services/waybar/default.nix index e1bba9bc..3107b8de 100644 --- a/homeManagerModules/services/waybar/default.nix +++ b/homeManagerModules/services/waybar/default.nix @@ -268,36 +268,6 @@ in { }; style = '' - * { - border-radius: 0px; - border: none; - font-family: "${cfg.theme.sansFont.name}", FontAwesome, sans-serif; - font-size: ${toString (cfg.theme.sansFont.size + 3)}px; - font-weight: bold; - } - - window#waybar { - background-color: alpha(${cfg.theme.colors.background}, 0.8); - color: ${cfg.theme.colors.text}; - } - - tooltip { - background-color: ${cfg.theme.colors.background}; - color: ${cfg.theme.colors.text}; - } - - #workspaces button { - border-radius: ${toString cfg.theme.borderRadius}; - color: ${cfg.theme.colors.text}; - margin: 0px 0px; - padding: 0px 5px; - } - - #workspaces button.active, - #workspaces button.focused { - color: ${cfg.theme.colors.secondary}; - } - #battery, #bluetooth, #clock, @@ -317,21 +287,6 @@ in { padding: 0px 5px; } - #battery.charging, - #power-profiles-daemon.power-saver { - color: ${cfg.theme.colors.primary}; - } - - #battery.critical:not(.charging), - #custom-dnd.on, - #idle_inhibitor.activated, - #network.disabled, - #network.disconnected, - #power-profiles-daemon.performance, - #pulseaudio.muted { - color: ${cfg.theme.colors.secondary}; - } - #clock, #tablet, #hardware, @@ -341,15 +296,40 @@ in { #submap, #tray, #workspaces { - margin: 5px 5px; + margin: 0px 5px; padding: 0px 2.5px; } + #workspaces button { + border-radius: ${toString cfg.theme.borderRadius}; + } + + #workspaces button.active, + #workspaces button.focused { + color: ${config.lib.stylix.colors.withHashtag."base0D"}; + } + + #battery.charging, + #power-profiles-daemon.power-saver { + color: ${config.lib.stylix.colors.withHashtag."base0B"}; + } + + #battery.critical:not(.charging), + #custom-dnd.on, + #idle_inhibitor.activated, + #network.disabled, + #network.disconnected, + #power-profiles-daemon.performance, + #pulseaudio.muted { + color: ${config.lib.stylix.colors.withHashtag."base08"}; + } + #submap, #mode { - background-color: ${cfg.theme.colors.secondary}; + background-color: ${config.lib.stylix.colors.withHashtag."base08"}; border-radius: ${toString cfg.theme.borderRadius}; - color: ${cfg.theme.colors.background}; + color: ${config.lib.stylix.colors.withHashtag."base00"}; + font-weight: bold; } ''; @@ -364,14 +344,14 @@ in { xdg.configFile."nwg-drawer/drawer.css".text = '' window { - background-color: alpha (${cfg.theme.colors.background}, 0.8); - color: ${cfg.theme.colors.text} + background-color: alpha (${config.lib.stylix.colors.withHashtag."base00"}, ${toString config.stylix.opacity.popups}); + color: ${config.lib.stylix.colors.withHashtag."base05"} } /* search entry */ entry { background-color: rgba (0, 0, 0, 0.2); - border: 4px solid ${cfg.theme.colors.primary}; + border: alpha(${config.lib.stylix.colors.withHashtag."base07"}, ${toString config.stylix.opacity.popups}); border-radius: ${toString cfg.theme.borderRadius}px } @@ -382,10 +362,10 @@ in { } button:active, button:hover, button:focused { - background-color: alpha (${cfg.theme.colors.text}, 0.2); + background-color: alpha (${config.lib.stylix.colors.withHashtag."base05"}, 0.2); border: none; border-radius: ${toString cfg.theme.borderRadius}px; - color: ${cfg.theme.colors.secondary} + color: ${config.lib.stylix.colors.withHashtag."base0D"} } #category-button { diff --git a/homeManagerModules/theme.nix b/homeManagerModules/theme.nix index 51394bb2..2e733fe2 100644 --- a/homeManagerModules/theme.nix +++ b/homeManagerModules/theme.nix @@ -7,151 +7,53 @@ cfg = config.ar.home.theme; gtk = { - extraConfig = lib.attrsets.optionalAttrs (cfg.darkMode) {gtk-application-prefer-dark-theme = 1;}; + extraCss = + lib.strings.optionalString + cfg.gtk.hideTitleBar + '' + /* No (default) title bar on wayland */ + headerbar.default-decoration { + /* You may need to tweak these values depending on your GTK theme */ + margin-bottom: 50px; + margin-top: -100px; - extraCss = '' - @define-color accent_bg_color ${cfg.colors.primary}; - @define-color accent_color @accent_bg_color; - @define-color accent_fg_color ${cfg.colors.text}; - @define-color window_bg_color ${cfg.colors.background}; - @define-color window_fg_color ${cfg.colors.text}; - @define-color view_bg_color ${cfg.colors.background}; - @define-color view_fg_color @window_fg_color; - @define-color headerbar_bg_color ${cfg.colors.background}; - @define-color headerbar_backdrop_color @window_bg_color; - @define-color headerbar_fg_color @window_fg_color; + background: transparent; + padding: 0; + border: 0; + min-height: 0; + font-size: 0; + box-shadow: none; + } - @define-color popover_bg_color ${cfg.colors.background}; - @define-color popover_fg_color @view_fg_color; - @define-color dialog_bg_color @popover_bg_color; - @define-color dialog_fg_color @popover_fg_color; - @define-color card_bg_color @popover_bg_color; - @define-color card_fg_color @window_fg_color; - @define-color sidebar_bg_color @headerbar_bg_color; - @define-color sidebar_fg_color @window_fg_color; - @define-color sidebar_backdrop_color @window_bg_color; - @define-color sidebar_shade_color rgba(0,0,0,0.25); - - ${ - lib.strings.optionalString - cfg.gtk.hideTitleBar - '' - /* No (default) title bar on wayland */ - headerbar.default-decoration { - /* You may need to tweak these values depending on your GTK theme */ - margin-bottom: 50px; - margin-top: -100px; - - background: transparent; - padding: 0; - border: 0; - min-height: 0; - font-size: 0; - box-shadow: none; - } - - /* rm -rf window shadows */ - window.csd, /* gtk4? */ - window.csd decoration { /* gtk3 */ - box-shadow: none; - } - '' - } - ''; + /* rm -rf window shadows */ + window.csd, /* gtk4? */ + window.csd decoration { /* gtk3 */ + box-shadow: none; + } + ''; }; in { config = lib.mkIf cfg.enable { home = { packages = [ - cfg.monospaceFont.package - cfg.sansFont.package - cfg.serifFont.package pkgs.adwaita-qt pkgs.gnome.adwaita-icon-theme pkgs.liberation_ttf ]; - - pointerCursor = { - gtk.enable = true; - name = "Bibata-Modern-Classic"; - package = pkgs.bibata-cursors; - size = lib.mkDefault 24; - - x11 = { - enable = true; - defaultCursor = config.home.pointerCursor.name; - }; - }; - }; - - fonts.fontconfig = { - enable = true; - - defaultFonts = { - monospace = [cfg.monospaceFont.name]; - sansSerif = [cfg.sansFont.name]; - serif = [cfg.serifFont.name]; - }; }; gtk = { - enable = true; - - theme = { - name = - if cfg.darkMode - then "adw-gtk3-dark" - else "adw-gtk3"; - - package = pkgs.adw-gtk3; - }; - - font = {inherit (cfg.sansFont) name package size;}; - iconTheme = { name = - if cfg.darkMode + if config.stylix.polarity == "dark" then "Papirus-Dark" else "Papirus"; package = pkgs.papirus-icon-theme.override {color = "adwaita";}; }; - gtk3 = {inherit (gtk) extraConfig extraCss;}; - gtk4 = {inherit (gtk) extraConfig extraCss;}; - }; - - qt = { - enable = true; - platformTheme.name = "qtct"; - - style = { - name = - if cfg.darkMode - then "Adwaita-Dark" - else "Adwaita"; - - package = pkgs.adwaita-qt6; - }; - }; - - dconf.settings = { - "org/gnome/desktop/background" = { - picture-uri = "file://${cfg.wallpaper}"; - picture-uri-dark = "file://${cfg.wallpaper}"; - }; - - "org/gnome/desktop/interface" = { - color-scheme = - if cfg.darkMode - then "prefer-dark" - else "prefer-light"; - - document-font-name = "${cfg.serifFont.name} ${toString cfg.serifFont.size}"; - monospace-font-name = "${cfg.monospaceFont.name} ${toString cfg.monospaceFont.size}"; - }; - - "org/gnome/desktop/wm/preferences".titlebar-font = "${cfg.sansFont.name} ${toString cfg.sansFont.size}"; + gtk3 = {inherit (gtk) extraCss;}; + gtk4 = {inherit (gtk) extraCss;}; }; }; } diff --git a/homes/aly/default.nix b/homes/aly/default.nix index 37148c8c..a7c392c8 100644 --- a/homes/aly/default.nix +++ b/homes/aly/default.nix @@ -57,9 +57,7 @@ self: { }; gitui.enable = true; - helix.settings.theme = "rose-pine-moon"; home-manager.enable = true; - kitty.theme = "Rosé Pine Moon"; rbw = { enable = true; @@ -118,17 +116,6 @@ self: { theme = { enable = true; borderRadius = 0; - - colors = { - text = "#e0def4"; - background = "#2a273f"; - primary = "#3e8fb0"; - secondary = "#f6c177"; - inactive = "#393552"; - shadow = "#232136"; - }; - - wallpaper = "${config.xdg.dataHome}/backgrounds/wallhaven-6d7xmx.jpg"; }; }; } diff --git a/homes/dustin/default.nix b/homes/dustin/default.nix index 9148e97a..4a1e3509 100644 --- a/homes/dustin/default.nix +++ b/homes/dustin/default.nix @@ -93,9 +93,6 @@ self: { randomWallpaper.enable = false; }; - theme = { - enable = true; - wallpaper = "${config.xdg.dataHome}/backgrounds/wallhaven-6d66dl.jpg"; - }; + theme.enable = true; }; } diff --git a/hosts/fallarbor/default.nix b/hosts/fallarbor/default.nix index 6b12ea6c..babf1912 100644 --- a/hosts/fallarbor/default.nix +++ b/hosts/fallarbor/default.nix @@ -10,6 +10,7 @@ ./disko.nix ./home.nix ./secrets.nix + ./stylix.nix self.inputs.nixhw.nixosModules.framework-13-intel-11th ]; diff --git a/hosts/fallarbor/stylix.nix b/hosts/fallarbor/stylix.nix new file mode 100644 index 00000000..32fdb535 --- /dev/null +++ b/hosts/fallarbor/stylix.nix @@ -0,0 +1,54 @@ +{pkgs, ...}: { + stylix = { + enable = true; + base16Scheme = "${pkgs.base16-schemes}/share/themes/default-dark.yaml"; + + image = let + wallpapers = builtins.fetchGit { + url = "https://github.com/alyraffauf/wallpapers.git"; + rev = "21018eef106928c7c44d206c6c3730cce5f781f3"; + ref = "master"; + }; + in "${wallpapers}/wallhaven-6d66dl.jpg"; + + imageScalingMode = "fill"; + polarity = "dark"; + + cursor = { + name = "Bibata-Modern-Classic"; + package = pkgs.bibata-cursors; + size = 24; + }; + + fonts = { + monospace = { + name = "UbuntuSansMono Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}; + }; + + sansSerif = { + name = "UbuntuSans Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}; + }; + + serif = { + name = "Vegur"; + package = pkgs.vegur; + }; + + sizes = { + applications = 12; + desktop = 11; + popups = 12; + terminal = 13; + }; + }; + + opacity = { + applications = 1.0; + desktop = 0.8; + terminal = 0.8; + popups = 0.8; + }; + }; +} diff --git a/hosts/lavaridge/default.nix b/hosts/lavaridge/default.nix index abac8145..6b2891a2 100644 --- a/hosts/lavaridge/default.nix +++ b/hosts/lavaridge/default.nix @@ -11,6 +11,7 @@ ./disko.nix ./home.nix ./secrets.nix + ./stylix.nix self.inputs.nixhw.nixosModules.framework-13-amd-7000 ]; diff --git a/hosts/lavaridge/stylix.nix b/hosts/lavaridge/stylix.nix new file mode 100644 index 00000000..704f82ef --- /dev/null +++ b/hosts/lavaridge/stylix.nix @@ -0,0 +1,54 @@ +{pkgs, ...}: { + stylix = { + enable = true; + base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-moon.yaml"; + + image = let + wallpapers = builtins.fetchGit { + url = "https://github.com/alyraffauf/wallpapers.git"; + rev = "21018eef106928c7c44d206c6c3730cce5f781f3"; + ref = "master"; + }; + in "${wallpapers}/wallhaven-mp886k.jpg"; + + imageScalingMode = "fill"; + polarity = "dark"; + + cursor = { + name = "Bibata-Modern-Classic"; + package = pkgs.bibata-cursors; + size = 24; + }; + + fonts = { + monospace = { + name = "UbuntuSansMono Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}; + }; + + sansSerif = { + name = "UbuntuSans Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}; + }; + + serif = { + name = "Vegur"; + package = pkgs.vegur; + }; + + sizes = { + applications = 12; + desktop = 11; + popups = 12; + terminal = 13; + }; + }; + + opacity = { + applications = 1.0; + desktop = 0.8; + terminal = 0.8; + popups = 0.8; + }; + }; +} diff --git a/hosts/mauville/default.nix b/hosts/mauville/default.nix index 55fa826c..38505509 100644 --- a/hosts/mauville/default.nix +++ b/hosts/mauville/default.nix @@ -15,6 +15,7 @@ in { ./disko.nix ./home.nix ./secrets.nix + ./stylix.nix self.inputs.nixhw.nixosModules.common-amd-cpu self.inputs.nixhw.nixosModules.common-amd-gpu self.inputs.nixhw.nixosModules.common-bluetooth diff --git a/hosts/mauville/home.nix b/hosts/mauville/home.nix index 8f5e9062..adafa5db 100644 --- a/hosts/mauville/home.nix +++ b/hosts/mauville/home.nix @@ -20,12 +20,6 @@ enable = true; preset = "LoudnessEqualizer"; }; - - theme = { - monospaceFont.size = 14; - sansFont.size = 14; - serifFont.size = 14; - }; }; } ]; diff --git a/hosts/mauville/stylix.nix b/hosts/mauville/stylix.nix new file mode 100644 index 00000000..4a1b7e9e --- /dev/null +++ b/hosts/mauville/stylix.nix @@ -0,0 +1,54 @@ +{pkgs, ...}: { + stylix = { + enable = true; + base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-dawn.yaml"; + + image = let + wallpapers = builtins.fetchGit { + url = "https://github.com/alyraffauf/wallpapers.git"; + rev = "21018eef106928c7c44d206c6c3730cce5f781f3"; + ref = "master"; + }; + in "${wallpapers}/wallhaven-mp886k.jpg"; + + imageScalingMode = "fill"; + polarity = "light"; + + cursor = { + name = "Bibata-Modern-Classic"; + package = pkgs.bibata-cursors; + size = 24; + }; + + fonts = { + monospace = { + name = "UbuntuSansMono Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}; + }; + + sansSerif = { + name = "UbuntuSans Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}; + }; + + serif = { + name = "Vegur"; + package = pkgs.vegur; + }; + + sizes = { + applications = 12; + desktop = 11; + popups = 12; + terminal = 13; + }; + }; + + opacity = { + applications = 1.0; + desktop = 0.8; + terminal = 0.8; + popups = 0.8; + }; + }; +} diff --git a/hosts/petalburg/default.nix b/hosts/petalburg/default.nix index 4fbcb981..fb30c5ad 100644 --- a/hosts/petalburg/default.nix +++ b/hosts/petalburg/default.nix @@ -9,6 +9,7 @@ ./disko.nix ./home.nix ./secrets.nix + ./stylix.nix self.inputs.nixhw.nixosModules.lenovo-yoga-9i-intel-13th ]; diff --git a/hosts/petalburg/stylix.nix b/hosts/petalburg/stylix.nix new file mode 100644 index 00000000..704f82ef --- /dev/null +++ b/hosts/petalburg/stylix.nix @@ -0,0 +1,54 @@ +{pkgs, ...}: { + stylix = { + enable = true; + base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-moon.yaml"; + + image = let + wallpapers = builtins.fetchGit { + url = "https://github.com/alyraffauf/wallpapers.git"; + rev = "21018eef106928c7c44d206c6c3730cce5f781f3"; + ref = "master"; + }; + in "${wallpapers}/wallhaven-mp886k.jpg"; + + imageScalingMode = "fill"; + polarity = "dark"; + + cursor = { + name = "Bibata-Modern-Classic"; + package = pkgs.bibata-cursors; + size = 24; + }; + + fonts = { + monospace = { + name = "UbuntuSansMono Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}; + }; + + sansSerif = { + name = "UbuntuSans Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}; + }; + + serif = { + name = "Vegur"; + package = pkgs.vegur; + }; + + sizes = { + applications = 12; + desktop = 11; + popups = 12; + terminal = 13; + }; + }; + + opacity = { + applications = 1.0; + desktop = 0.8; + terminal = 0.8; + popups = 0.8; + }; + }; +} diff --git a/hosts/rustboro/default.nix b/hosts/rustboro/default.nix index ac53eb62..ad911fd4 100644 --- a/hosts/rustboro/default.nix +++ b/hosts/rustboro/default.nix @@ -10,6 +10,7 @@ ./disko.nix ./home.nix ./secrets.nix + ./stylix.nix self.inputs.nixhw.nixosModules.thinkpad-t440p ]; diff --git a/hosts/rustboro/home.nix b/hosts/rustboro/home.nix index 3dbec73e..e1eb15a3 100644 --- a/hosts/rustboro/home.nix +++ b/hosts/rustboro/home.nix @@ -10,12 +10,6 @@ enable = true; preset = "LoudnessEqualizer"; }; - - theme = { - monospaceFont.size = 14; - sansFont.size = 14; - serifFont.size = 14; - }; }; } ]; diff --git a/hosts/rustboro/stylix.nix b/hosts/rustboro/stylix.nix new file mode 100644 index 00000000..4a1b7e9e --- /dev/null +++ b/hosts/rustboro/stylix.nix @@ -0,0 +1,54 @@ +{pkgs, ...}: { + stylix = { + enable = true; + base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-dawn.yaml"; + + image = let + wallpapers = builtins.fetchGit { + url = "https://github.com/alyraffauf/wallpapers.git"; + rev = "21018eef106928c7c44d206c6c3730cce5f781f3"; + ref = "master"; + }; + in "${wallpapers}/wallhaven-mp886k.jpg"; + + imageScalingMode = "fill"; + polarity = "light"; + + cursor = { + name = "Bibata-Modern-Classic"; + package = pkgs.bibata-cursors; + size = 24; + }; + + fonts = { + monospace = { + name = "UbuntuSansMono Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}; + }; + + sansSerif = { + name = "UbuntuSans Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}; + }; + + serif = { + name = "Vegur"; + package = pkgs.vegur; + }; + + sizes = { + applications = 12; + desktop = 11; + popups = 12; + terminal = 13; + }; + }; + + opacity = { + applications = 1.0; + desktop = 0.8; + terminal = 0.8; + popups = 0.8; + }; + }; +}