Add home-manager, per-user configs, and tmux configuration
This commit is contained in:
parent
f539899dbe
commit
152327bd85
8 changed files with 115 additions and 8 deletions
|
|
@ -22,6 +22,8 @@
|
|||
pkgs.gitMinimal
|
||||
];
|
||||
|
||||
myModules.tmux.enable = true;
|
||||
|
||||
services.openssh.enable = true;
|
||||
|
||||
system.stateVersion = "25.05";
|
||||
|
|
|
|||
22
nixos-anywhere/flake.lock
generated
22
nixos-anywhere/flake.lock
generated
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
|||
5
nixos-anywhere/modules/default.nix
Normal file
5
nixos-anywhere/modules/default.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./system
|
||||
];
|
||||
}
|
||||
5
nixos-anywhere/modules/home/default.nix
Normal file
5
nixos-anywhere/modules/home/default.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./system
|
||||
];
|
||||
}
|
||||
5
nixos-anywhere/modules/system/default.nix
Normal file
5
nixos-anywhere/modules/system/default.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./tmux.nix
|
||||
];
|
||||
}
|
||||
18
nixos-anywhere/modules/system/tmux.nix
Normal file
18
nixos-anywhere/modules/system/tmux.nix
Normal 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);
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue