{
  flake.modules =
    let
      stateVersion = "25.05";
    in
    {
      homeManager.base =
        {
          config,
          inputs,
          ...
        }:
        {
          imports = [
            inputs.sops-nix.homeManagerModules.sops
          ];

          home = {
            inherit stateVersion;
          };

          catppuccin = {
            flavor = "mocha";
            accent = "lavender";
          };
        };

      nixos.base =
        {
          config,
          inputs,
          pkgs,
          lib,
          ...
        }:
        {
          imports = [
            inputs.sops-nix.nixosModules.sops
            inputs.niri-flake.nixosModules.niri
            inputs.catppuccin.nixosModules.catppuccin
          ];

          catppuccin = {
            flavor = "mocha";
            accent = "lavender";
          };

          environment.systemPackages = with pkgs; [
            sops
            age
            ssh-to-age
          ];

          services.gnome.gnome-keyring.enable = true;

          services.dbus.packages = [
            pkgs.gnome-keyring
            pkgs.gcr
          ];

          sops = {
            defaultSopsFile = ../../../secrets/secrets.yaml;
            defaultSopsFormat = "yaml";

            age = {
              sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
              keyFile = lib.mkIf (
                config.networking.hostName == "yggdrasil"
              ) "/home/cholli/.config/sops/age/keys.txt";
            };

          };

          system = {
            # This value determines the NixOS release from which the default
            # settings for stateful data, like file locations and database versions
            # on your system were taken. It‘s perfectly fine and recommended to leave
            # this value at the release version of the first install of this system.
            # Before changing this value read the documentation for this option
            # (e.g. man configuration.nix or on https://search.nixos.org/options?&show=system.stateVersion&from=0&size=50&sort=relevance&type=packages&query=stateVersion).
            inherit stateVersion;
          };
        };
    };
}
