diff --git a/flake.lock b/flake.lock index cd441ac..02e25cf 100644 --- a/flake.lock +++ b/flake.lock @@ -23,6 +23,21 @@ "type": "github" } }, + "catppuccin": { + "locked": { + "lastModified": 1712482981, + "narHash": "sha256-LJOOpTey9Y29C/TK4h9KP7v4HvqDL3mLyT9hSWCfFlI=", + "owner": "catppuccin", + "repo": "nix", + "rev": "4043beb6c792a40e9c513aa261f4ba10601a4457", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "nix", + "type": "github" + } + }, "catppuccin-vsc": { "inputs": { "nixpkgs": [ @@ -340,6 +355,7 @@ "root": { "inputs": { "agenix": "agenix", + "catppuccin": "catppuccin", "catppuccin-vsc": "catppuccin-vsc", "home-manager": "home-manager_2", "home-manager-unstable": "home-manager-unstable", diff --git a/flake.nix b/flake.nix index 81171bf..90defdb 100644 --- a/flake.nix +++ b/flake.nix @@ -68,6 +68,8 @@ nix-flatpak.url = "github:gmodena/nix-flatpak/main"; nur.url = "github:nix-community/NUR"; + + catppuccin.url = "github:catppuccin/nix"; }; outputs = {...} @ inputs: @@ -131,6 +133,7 @@ agenix.nixosModules.default home-manager-unstable.nixosModule nix-index-db-unstable.nixosModules.nix-index + catppuccin.nixosModules.catppuccin ./roles/common ./roles/desktop ./roles/kde @@ -151,6 +154,7 @@ home-manager-unstable.nixosModule nixos-hardware.nixosModules.microsoft-surface-go nix-index-db-unstable.nixosModules.nix-index + catppuccin.nixosModules.catppuccin ./roles/common ./roles/desktop ./roles/kde @@ -169,6 +173,7 @@ jovian.nixosModules.default home-manager-unstable.nixosModule nix-index-db-unstable.nixosModules.nix-index + catppuccin.nixosModules.catppuccin ./roles/common ./roles/desktop ./roles/kde @@ -190,6 +195,7 @@ home-manager-unstable.nixosModule nix-index-db-unstable.nixosModules.nix-index nixos-hardware.nixosModules.gpd-win-max-2-2023 + catppuccin.nixosModules.catppuccin ./roles/common ./roles/desktop ./roles/kde @@ -209,6 +215,7 @@ agenix.nixosModules.default home-manager.nixosModule nix-index-db.nixosModules.nix-index + catppuccin.nixosModules.catppuccin ./roles/common ./roles/server ./machines/Everest diff --git a/roles/common/configuration.nix b/roles/common/configuration.nix index 53fa7ba..8af3482 100755 --- a/roles/common/configuration.nix +++ b/roles/common/configuration.nix @@ -90,13 +90,18 @@ ) ]; + catppuccin.flavour = "mocha"; + home-manager = { backupFileExtension = "hm-backup"; useGlobalPkgs = true; verbose = true; - users.toast = {...}: { + sharedModules = [flakeSelf.inputs.catppuccin.homeManagerModules.catppuccin]; + users.toast = {osConfig, ...}: { + catppuccin.flavour = osConfig.catppuccin.flavour; home.stateVersion = "23.11"; xdg = { + enable = true; userDirs = { enable = true; createDirectories = true; @@ -113,11 +118,7 @@ ]; }; - boot.loader.grub = { - theme = "${pkgs.catppuccin}/grub"; - backgroundColor = "#1E1E2E"; - splashImage = "${pkgs.catppuccin}/grub/background.png"; - }; + boot.loader.grub.catppuccin.enable = true; /* I used to keep the host keys in the repo as a secret, but since I use the diff --git a/roles/common/programs/bat.nix b/roles/common/programs/bat.nix index 021d531..cce65c9 100644 --- a/roles/common/programs/bat.nix +++ b/roles/common/programs/bat.nix @@ -1,25 +1,8 @@ -{ - config, - pkgs, - ... -}: let - themeName = - if config.system.nixos.release == "23.11" - then "Catppuccin-mocha" - else "Catppuccin Mocha"; -in { +{...}: { home-manager = { users.toast.programs.bat = { enable = true; - config = { - theme = "catppuccin-mocha"; - }; - themes = { - catppuccin-mocha = { - src = pkgs.catppuccin; - file = "bat/${themeName}.tmTheme"; - }; - }; + catppuccin.enable = true; }; }; } diff --git a/roles/common/programs/btop.nix b/roles/common/programs/btop.nix index c0bf0de..1e25cbe 100644 --- a/roles/common/programs/btop.nix +++ b/roles/common/programs/btop.nix @@ -1,14 +1,9 @@ -{pkgs, ...}: { +{...}: { home-manager = { users.toast = { programs.btop = { enable = true; - settings = { - color_theme = "catppuccin_mocha"; - }; - }; - xdg.configFile = { - "btop/themes".source = "${pkgs.catppuccin}/btop"; + catppuccin.enable = true; }; }; }; diff --git a/roles/common/programs/git.nix b/roles/common/programs/git.nix index 3b125df..f9f2b4e 100644 --- a/roles/common/programs/git.nix +++ b/roles/common/programs/git.nix @@ -1,11 +1,4 @@ -{pkgs, ...}: let - catppuccinDelta = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "delta"; - rev = "main"; - hash = "sha256-0QQLkfLBVuB2re6tjtPNuOQZNK0MDBAIFgNGHZM8afs="; - }; -in { +{...}: { home-manager.users.toast = { programs.git = { enable = true; @@ -13,12 +6,8 @@ in { userEmail = "toast003@tutamail.com"; delta = { enable = true; - options = { - syntax-theme = "catppuccin-mocha"; - features = "catppuccin-mocha"; - }; + catppuccin.enable = true; }; - includes = [{path = "${catppuccinDelta}/themes/mocha.gitconfig";}]; extraConfig = { init.defaultBranch = "main"; diff.colorMoved = "default"; diff --git a/roles/common/programs/helix.nix b/roles/common/programs/helix.nix index 70fa320..c5ea603 100644 --- a/roles/common/programs/helix.nix +++ b/roles/common/programs/helix.nix @@ -7,8 +7,11 @@ nixpkgs-fmt nil ]; + catppuccin = { + enable = true; + useItalics = true; + }; settings = { - theme = "catppuccin_mocha"; editor = { mouse = true; cursorline = true; diff --git a/roles/common/programs/starship.nix b/roles/common/programs/starship.nix index 8e60667..527034a 100644 --- a/roles/common/programs/starship.nix +++ b/roles/common/programs/starship.nix @@ -49,4 +49,13 @@ in { } ]; }; + # The catppuccin module only works for home-manager, so this + # sets up starship with home-manager using the system config + home-manager.users.toast = {osConfig, ...}: { + programs.starship = { + enable = true; + catppuccin.enable = true; + settings = osConfig.programs.starship.settings; + }; + }; }