Add home-manager, per-user configs, and tmux configuration

This commit is contained in:
Eli Ribble 2025-07-11 21:24:59 +00:00
parent f539899dbe
commit 152327bd85
8 changed files with 115 additions and 8 deletions

View file

@ -22,6 +22,8 @@
pkgs.gitMinimal
];
myModules.tmux.enable = true;
services.openssh.enable = true;
system.stateVersion = "25.05";

View file

@ -20,6 +20,27 @@
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1752208517,
"narHash": "sha256-aRY1cYOdVdXdNjcL/Twpa27CknO7pVHxooPsBizDraE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c6a01e54af81b381695db796a43360bf6db5702f",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
},
"nixos-facter-modules": {
"locked": {
"lastModified": 1750412875,
@ -54,6 +75,7 @@
"root": {
"inputs": {
"disko": "disko",
"home-manager": "home-manager",
"nixos-facter-modules": "nixos-facter-modules",
"nixpkgs": "nixpkgs"
}

View file

@ -1,25 +1,53 @@
{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
inputs.disko.url = "github:nix-community/disko";
inputs.disko.inputs.nixpkgs.follows = "nixpkgs";
inputs.nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
inputs = {
disko = {
inputs.nixpkgs.follows = "nixpkgs";
url = "github:nix-community/disko";
};
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
};
outputs =
{
nixpkgs,
disko,
home-manager,
nixpkgs,
nixos-facter-modules,
...
}:
{
let
configFiles = pkgs.stdenv.mkDerivation {
installPhase = ''
mkdir -p $out
cp -r * $out/
'';
name = "config-files";
src = ./configs;
};
pkgs = nixpkgs.legacyPackages.${system};
system = "x86_64-linux";
in {
# tested with 2GB/2CPU droplet, 1GB droplets do not have enough RAM for kexec
nixosConfigurations.digitalocean = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
system = "${system}";
modules = [
./configuration.nix
./digitalocean.nix
disko.nixosModules.disko
{ disko.devices.disk.disk1.device = "/dev/vda"; }
./configuration.nix
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.sharedModules = [];
home-manager.extraSpecialArgs = { inherit configFiles; };
}
./modules
./users
];
};
};

View file

@ -0,0 +1,5 @@
{
imports = [
./system
];
}

View file

@ -0,0 +1,5 @@
{
imports = [
./system
];
}

View file

@ -0,0 +1,5 @@
{
imports = [
./tmux.nix
];
}

View file

@ -0,0 +1,18 @@
{ config, lib, pkgs, configFiles, ... }:
with lib;
{
options.myModules.tmux.enable = mkEnableOption "custom tmux configuration";
config = mkIf config.myModules.tmux.enable {
environment.systemPackages = [ pkgs.tmux ];
environment.etc."tmux.conf".source = "${configFiles}/tmux/tmux.conf";
# Alternative: if you want per-user configs
# users.users = mkMerge (map (user: {
# ${user}.home = "${configPath}/configs/tmux/tmux.conf";
# }) config.myModules.tmux.users);
};
}