diff --git a/flake.lock b/flake.lock index 1c431ea..d1c4b8f 100755 --- a/flake.lock +++ b/flake.lock @@ -149,6 +149,26 @@ "type": "github" } }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1752814804, + "narHash": "sha256-irfg7lnfEpJY+3Cffkluzp2MTVw1Uq9QGxFp6qadcXI=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "d0300c8808e41da81d6edfc202f3d3833c157daf", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "ixx": { "inputs": { "flake-utils": [ @@ -400,6 +420,7 @@ "root": { "inputs": { "deploy-rs": "deploy-rs", + "home-manager": "home-manager", "lanzaboote": "lanzaboote", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_3", diff --git a/flake.nix b/flake.nix index 5c4ac17..1b78370 100755 --- a/flake.nix +++ b/flake.nix @@ -12,6 +12,12 @@ sops-nix.url = "github:Mic92/sops-nix"; # Secrets management. nixvim.url = "github:nix-community/nixvim"; # Neovim. + # Home manager. + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Secrets repo. secrets = { url = "git+ssh://git@docker.local:222/fern/secrets?ref=main"; diff --git a/helpers.nix b/helpers.nix index 79fa54a..631046e 100644 --- a/helpers.nix +++ b/helpers.nix @@ -76,8 +76,20 @@ with inputs.nixpkgs.lib; { modules = [ nixvim.nixosModules.nixvim # Neovim. + ./suites/${suite} # Collection of configuration options for different types of systems. ./hosts/${hostname} # Host-specific config. + + # Home manager. + home-manager.nixosModules.home-manager + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + backupFileExtension = "backup"; + users.fern = ./home.nix; + }; + } ] ++ extraModules; }; diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..ad824de --- /dev/null +++ b/home.nix @@ -0,0 +1,15 @@ +{ + config, + pkgs, + ... +}: { + # Me! + home.username = "fern"; + home.homeDirectory = "/home/fern"; + + # Home manager version. + home.stateVersion = "25.05"; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +} diff --git a/suites/default.nix b/suites/default.nix index fbca4d1..3d8d811 100644 --- a/suites/default.nix +++ b/suites/default.nix @@ -215,6 +215,7 @@ with lib; { settings.formatting.command = ["${pkgs.alejandra}/bin/alejandra"]; settings.options.nixos.expr = "(builtins.getFlake (builtins.toString /home/fern/Repositories/flock)).nixosConfigurations.muskduck.options"; }; + docker_compose_language_service.enable = true; }; }; diff --git a/suites/desktop/default.nix b/suites/desktop/default.nix index 47720c7..3959661 100755 --- a/suites/desktop/default.nix +++ b/suites/desktop/default.nix @@ -155,4 +155,15 @@ with lib; { services.power-profiles-daemon.enable = mkForce false; # enabled by gnome services.tlp.enable = mkForce false; # enabled by nixos-hardware services.auto-cpufreq.enable = true; + + # Home manager settings. + home-manager.users.fern = { + programs.ghostty = { + enable = true; + settings = { + font-family = "IosevkaCustom"; + theme = "GruvboxDarkHard"; + }; + }; + }; }