diff --git a/flake.lock b/flake.lock index 4f7b05e..7d8268c 100644 --- a/flake.lock +++ b/flake.lock @@ -60,6 +60,74 @@ "type": "github" } }, + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1755819240, + "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1754405784, + "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1752979451, + "narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "27cf1e66e50abc622fb76a3019012dc07c678fac", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + } + }, "brew-src": { "flake": false, "locked": { @@ -174,6 +242,22 @@ "type": "github" } }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1758112371, + "narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -307,6 +391,27 @@ "type": "github" } }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1756770412, + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "4524271976b625a4a605beefd893f270620fd751", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-schemas": { "locked": { "lastModified": 1721999734, @@ -397,6 +502,22 @@ "type": "github" } }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -440,6 +561,25 @@ "type": "github" } }, + "gnome-shell": { + "flake": false, + "locked": { + "host": "gitlab.gnome.org", + "lastModified": 1762869044, + "narHash": "sha256-nwm/GJ2Syigf7VccLAZ66mFC8mZJFqpJmIxSGKl7+Ds=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "680e3d195a92203f28d4bf8c6e8bb537cc3ed4ad", + "type": "gitlab" + }, + "original": { + "host": "gitlab.gnome.org", + "owner": "GNOME", + "ref": "gnome-49", + "repo": "gnome-shell", + "type": "gitlab" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -1222,6 +1362,31 @@ "type": "github" } }, + "nur": { + "inputs": { + "flake-parts": [ + "stylix", + "flake-parts" + ], + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1758998580, + "narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=", + "owner": "nix-community", + "repo": "NUR", + "rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -1347,6 +1512,7 @@ "snowfall-lib": "snowfall-lib", "sops-nix": "sops-nix", "steam-rom-manager": "steam-rom-manager", + "stylix": "stylix", "treefmt-nix": "treefmt-nix" } }, @@ -1475,6 +1641,40 @@ "type": "github" } }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-parts": "flake-parts_3", + "gnome-shell": "gnome-shell", + "nixpkgs": [ + "nixpkgs" + ], + "nur": "nur", + "systems": "systems_4", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1764550443, + "narHash": "sha256-ArO2V1YEHmEILilTj4KPtqF4gqc1q2HBrrrmygQ/UyU=", + "owner": "nix-community", + "repo": "stylix", + "rev": "794b6e1fa75177ebfeb32967f135858a1ab1ba15", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "stylix", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1689347949, @@ -1520,6 +1720,102 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "tinted-foot": { + "flake": false, + "locked": { + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1735730497, + "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "type": "github" + } + }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1757716333, + "narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "317a5e10c35825a6c905d912e480dfe8e71c7559", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1757811970, + "narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1757811247, + "narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ diff --git a/flake.nix b/flake.nix index 12f87b7..5c94deb 100644 --- a/flake.nix +++ b/flake.nix @@ -91,6 +91,11 @@ url = "github:cpick/nix-rosetta-builder"; inputs.nixpkgs.follows = "nixpkgs"; }; + + stylix = { + url = "github:nix-community/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; # We will handle this in the next section. @@ -117,6 +122,7 @@ sops-nix.nixosModules.sops home-manager.nixosModules.home-manager nix-index-database.nixosModules.nix-index + stylix.nixosModules.stylix ]; # common darwin modules @@ -126,6 +132,7 @@ nix-plist-manager.darwinModules.default nix-rosetta-builder.darwinModules.default nix-index-database.darwinModules.nix-index + stylix.darwinModules.stylix ]; # Host config diff --git a/homes/aarch64-linux/matt@macbook-pro-nixos/default.nix b/homes/aarch64-linux/matt@macbook-pro-nixos/default.nix index 5b08b26..49d6624 100755 --- a/homes/aarch64-linux/matt@macbook-pro-nixos/default.nix +++ b/homes/aarch64-linux/matt@macbook-pro-nixos/default.nix @@ -12,8 +12,6 @@ let update-flake = "nix flake update mac-nixpkgs mac-nixos-apple-silicon mac-home-manager mac-impermanence mac-sops-nix --flake /etc/nixos"; update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.3 --build-host admin@10.0.1.3 --flake ~/nix-config#jallen-nas"; }; - fontName = "JetBrainsMono NFM"; - fontPackage = pkgs.nerd-fonts.jetbrains-mono; # Displays display = { input = "eDP-1"; @@ -80,14 +78,9 @@ in btop.enable = true; kitty = { enable = true; - font = { - name = fontName; - package = fontPackage; - }; }; mako = { enable = true; - fontName = fontName; }; nwg-dock.enable = true; nwg-drawer.enable = true; diff --git a/homes/x86_64-linux/matt@matt-nixos/default.nix b/homes/x86_64-linux/matt@matt-nixos/default.nix index 9672194..a80d85f 100755 --- a/homes/x86_64-linux/matt@matt-nixos/default.nix +++ b/homes/x86_64-linux/matt@matt-nixos/default.nix @@ -106,14 +106,9 @@ in btop = enabled; kitty = { enable = true; - font = { - name = "JetBrainsMono NFM"; - package = pkgs.nerd-fonts.jetbrains-mono; - }; }; mako = { enable = true; - fontName = "JetBrainsMono NFM"; }; nwg-dock = enabled; nwg-drawer = enabled; diff --git a/modules/darwin/home/default.nix b/modules/darwin/home/default.nix index 2fb3f7f..f49cf70 100644 --- a/modules/darwin/home/default.nix +++ b/modules/darwin/home/default.nix @@ -45,6 +45,7 @@ sops-nix.homeManagerModules.sops nix-plist-manager.homeManagerModules.default nix-index-database.homeModules.nix-index + stylix.homeModules.stylix # Add any other external HM modules here ]; diff --git a/modules/home/programs/btop/default.nix b/modules/home/programs/btop/default.nix index 2c998b6..20c34a9 100755 --- a/modules/home/programs/btop/default.nix +++ b/modules/home/programs/btop/default.nix @@ -10,7 +10,7 @@ in programs.btop = { enable = true; settings = { - color_theme = "global"; + color_theme = mkDefault "global"; theme_background = true; truecolor = true; force_tty = false; diff --git a/modules/home/programs/hyprland/default.nix b/modules/home/programs/hyprland/default.nix index b4d4c6c..82e1e17 100644 --- a/modules/home/programs/hyprland/default.nix +++ b/modules/home/programs/hyprland/default.nix @@ -176,14 +176,14 @@ in { monitor = ""; path = "/run/wallpaper.jpg"; # supports png, jpg, webp (no animations, though) - color = "rgba(25, 20, 20, 1.0)"; + color = mkForce "rgba(25, 20, 20, 1.0)"; # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations - blur_passes = "3"; # 0 disables blurring - blur_size = "7"; + blur_passes = mkForce "3"; # 0 disables blurring + blur_size = mkForce "7"; noise = "0.0117"; contrast = "0.8916"; - brightness = "0.8172"; + brightness = mkForce "0.8172"; vibrancy = "0.1696"; vibrancy_darkness = "0.0"; } @@ -195,7 +195,7 @@ in text = "cmd[update:1000] echo -e \"$(LC_TIME=en_US.UTF-8 date +\"%A, %B %d\")\""; color = "#eceff4"; font_size = "25"; - font_family = "JetBrainsMono NFM"; + font_family = lib.mkDefault "JetBrainsMono NFM"; position = "0, 350"; halign = "center"; valign = "center"; @@ -206,7 +206,7 @@ in text = "cmd[update:1000] echo \"$(date +\"%I:%M\")\""; color = "#eceff4"; font_size = "120"; - font_family = "JetBrainsMono NFM Bold"; + font_family = lib.mkDefault "JetBrainsMono NFM Bold"; position = "0, 230"; halign = "center"; valign = "center"; @@ -220,7 +220,7 @@ in dots_spacing = 0.2; dots_center = true; font_size = 18; - font_family = "JetBrainsMono NFM Bold"; + font_family = lib.mkDefault "JetBrainsMono NFM Bold"; position = "0, 0"; halign = "center"; valign = "center"; @@ -231,7 +231,7 @@ in text = "cmd[update:30000] waybar-weather --hyprlock"; color = "#eceff4"; font_size = "25"; - font_family = "JetBrainsMono NFM"; + font_family = lib.mkDefault "JetBrainsMono NFM"; position = "-100, 100"; halign = "right"; valign = "bottom"; @@ -242,7 +242,7 @@ in text = "cmd[update:1000] waybar-media"; color = "#eceff4"; font_size = "15"; - font_family = "JetBrainsMono NFM"; + font_family = lib.mkDefault "JetBrainsMono NFM"; position = "100, 100"; halign = "left"; valign = "bottom"; @@ -265,7 +265,7 @@ in { size = "200, 50"; position = "0, -80"; - font_family = "JetBrainsMono NFM"; + font_family = lib.mkDefault "JetBrainsMono NFM"; monitor = cfg.primaryDisplay; dots_center = true; fade_on_empty = true; @@ -486,8 +486,8 @@ in gaps_in = 5; gaps_out = 10; border_size = 1; - "col.active_border" = "rgb(8aadf4) rgb(24273A) rgb(24273A) rgb(8aadf4) 45deg"; - "col.inactive_border" = "rgb(24273A) rgb(24273A) rgb(24273A) rgb(24273A) 45deg"; + # "col.active_border" = "rgb(8aadf4) rgb(24273A) rgb(24273A) rgb(8aadf4) 45deg"; + # "col.inactive_border" = "rgb(24273A) rgb(24273A) rgb(24273A) rgb(24273A) 45deg"; layout = "dwindle"; allow_tearing = cfg.allowTearing; }; diff --git a/modules/home/programs/hyprland/theme.nix b/modules/home/programs/hyprland/theme.nix index 6d6b3b7..303dfb8 100644 --- a/modules/home/programs/hyprland/theme.nix +++ b/modules/home/programs/hyprland/theme.nix @@ -57,7 +57,7 @@ in dconf = { enable = true; settings = { - "org/gnome/desktop/interface".color-scheme = "prefer-dark"; + "org/gnome/desktop/interface".color-scheme = mkForce "prefer-dark"; "org/gnome/desktop/interface".cursor-theme = cursorTheme; "org/gnome/desktop/interface".gtk-theme = gtkTheme; "org/gnome/desktop/interface".icon-theme = iconTheme; @@ -91,9 +91,9 @@ in }; font = { - name = fontName; - package = fontPackage; - size = fontSize; + name = mkDefault fontName; + package = mkDefault fontPackage; + size = mkDefault fontSize; }; }; }; diff --git a/modules/home/programs/kitty/default.nix b/modules/home/programs/kitty/default.nix index f0e4678..5daf916 100755 --- a/modules/home/programs/kitty/default.nix +++ b/modules/home/programs/kitty/default.nix @@ -13,20 +13,20 @@ in shellIntegration.enableZshIntegration = true; font = { - name = cfg.font.name; - package = cfg.font.package; - size = cfg.font.size; + name = mkDefault cfg.font.name; + package = mkDefault cfg.font.package; + size = mkDefault cfg.font.size; }; settings = { - bold_font = "auto"; + bold_font = "auto"; italic_font = "auto"; bold_italic_font = "auto"; mouse_hide_wait = "2.0"; cursor_shape = "block"; url_style = "dotted"; confirm_os_window_close = "0"; - background_opacity = "0.85"; + background_opacity = mkForce "0.85"; # The basic colors foreground = palette.colors.text; diff --git a/modules/home/programs/mako/default.nix b/modules/home/programs/mako/default.nix index 5d06360..9c7e8df 100755 --- a/modules/home/programs/mako/default.nix +++ b/modules/home/programs/mako/default.nix @@ -10,7 +10,7 @@ in services.mako = { enable = true; settings = { - font = cfg.fontName; + font = mkDefault cfg.fontName; icons = true; ignore-timeout = true; sort = "-time"; @@ -22,10 +22,10 @@ in max-icon-size = 64; default-timeout = 5000; - background-color = palette.colors.bg; - text-color = palette.colors.text; - border-color = palette.colors.primary; - progress-color = "over ${palette.colors.info}"; + background-color = mkDefault palette.colors.bg; + text-color = mkDefault palette.colors.text; + border-color = mkDefault palette.colors.primary; + progress-color = mkDefault "over ${palette.colors.info}"; }; }; }; diff --git a/modules/home/programs/waybar/default.nix b/modules/home/programs/waybar/default.nix index 4522b4c..e2f58a5 100755 --- a/modules/home/programs/waybar/default.nix +++ b/modules/home/programs/waybar/default.nix @@ -45,7 +45,7 @@ let @keyframes blinker { 50% { - color: ${palette.colors.danger}; + color: @base08; } } diff --git a/modules/home/stylix/default.nix b/modules/home/stylix/default.nix new file mode 100644 index 0000000..2ee0c3c --- /dev/null +++ b/modules/home/stylix/default.nix @@ -0,0 +1,37 @@ +{ pkgs, lib, ... }: +{ + stylix = { + enable = true; + stylix.enableReleaseChecks = false; + base16Scheme = "${pkgs.base16-schemes}/share/themes/nord.yaml"; + + fonts = lib.mkForce { + serif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Serif"; + }; + + sansSerif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Sans"; + }; + + monospace = { + package = pkgs.nerd-fonts.jetbrains-mono; + name = "JetBrainsMono NFM"; + }; + + emoji = { + package = pkgs.noto-fonts-color-emoji; + name = "Noto Color Emoji"; + }; + }; + + targets = { + hyprlock.enable = false; + gnome.enable = false; + gtk.enable = false; + qt.enable = false; + }; + }; +} \ No newline at end of file diff --git a/modules/nixos/home/default.nix b/modules/nixos/home/default.nix index f3f6d07..d78d83d 100644 --- a/modules/nixos/home/default.nix +++ b/modules/nixos/home/default.nix @@ -65,6 +65,7 @@ in sops-nix.homeManagerModules.sops nix-plist-manager.homeManagerModules.default nix-index-database.homeModules.nix-index + stylix.homeModules.stylix # Add any other external HM modules here ] ++ (if (!isArm) then with inputs; [ steam-rom-manager.homeManagerModules.default ] else [ ]) diff --git a/modules/nixos/services/common/default.nix b/modules/nixos/services/common/default.nix index 498d9de..da477c7 100644 --- a/modules/nixos/services/common/default.nix +++ b/modules/nixos/services/common/default.nix @@ -7,8 +7,8 @@ hwRender = true; fonts = [ { - name = "JetBrainsMono NFM"; - package = pkgs.nerd-fonts.jetbrains-mono; + name = lib.mkDefault "JetBrainsMono NFM"; + package = lib.mkDefault pkgs.nerd-fonts.jetbrains-mono; } ]; }; diff --git a/systems/aarch64-linux/pi4/default.nix b/systems/aarch64-linux/pi4/default.nix index c1d596f..792e922 100755 --- a/systems/aarch64-linux/pi4/default.nix +++ b/systems/aarch64-linux/pi4/default.nix @@ -3,6 +3,7 @@ # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). { + lib, pkgs, namespace, ... @@ -77,8 +78,8 @@ hwRender = true; fonts = [ { - name = "JetBrainsMono NFM"; - package = pkgs.nerd-fonts.jetbrains-mono; + name = lib.mkDefault "JetBrainsMono NFM"; + package = lib.mkDefault pkgs.nerd-fonts.jetbrains-mono; } ]; };