use nh from nixpkgs, move common options from hosts/ to modules/common/

This commit is contained in:
Nikodem Rabuliński 2024-01-21 11:50:13 +01:00
parent d46e1d0f32
commit 07c2d7e460
4 changed files with 41 additions and 90 deletions

37
flake.lock generated
View file

@ -353,24 +353,6 @@
"type": "gitlab"
}
},
"nh": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1705251288,
"narHash": "sha256-TwCR7tZvrjsvz6SmgjWYOne7Qz7J2jn4Cr4Er0Yj+LA=",
"owner": "viperML",
"repo": "nh",
"rev": "36eba281576afe0f67e5aafb4e7a414f256dba31",
"type": "github"
},
"original": {
"owner": "viperML",
"repo": "nh",
"type": "github"
}
},
"nix-std": {
"locked": {
"lastModified": 1701658249,
@ -449,22 +431,6 @@
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1701263465,
"narHash": "sha256-lNXUIlkfyDyp9Ox21hr+wsEf/IBklLvb6bYcyeXbdRc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "50aa30a13c4ab5e7ba282da460a3e3d44e9d0eb3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1705697961,
"narHash": "sha256-XepT3WS516evSFYkme3GrcI3+7uwXHqtHbip+t24J7E=",
@ -551,8 +517,7 @@
"hercules-ci-effects": "hercules-ci-effects",
"home-manager": "home-manager",
"mailserver": "mailserver",
"nh": "nh",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_3",
"nvidia-patch": "nvidia-patch",
"racket": "racket",
"wrapper-manager": "wrapper-manager",

View file

@ -25,12 +25,11 @@
...
}: {
devShells.default = pkgs.mkShellNoCC {
packages =
[
inputs'.agenix.packages.agenix
]
packages = [
inputs'.agenix.packages.agenix
# TODO: Contribute darwin support to nh
++ lib.optionals (!pkgs.stdenv.isDarwin) [inputs'.nh.packages.default];
pkgs.nh
];
};
formatter = pkgs.alejandra;
@ -84,9 +83,6 @@
hercules-ci-effects = {
url = "github:hercules-ci/hercules-ci-effects";
};
nh = {
url = "github:viperML/nh";
};
conduit-src = {
url = "gitlab:famedly/conduit?ref=next";
flake = false;

View file

@ -17,40 +17,11 @@
];
builders = let
# FIXME: Move to common
sharedOptions = {
inputs',
lib,
...
}: {
_file = ./default.nix;
settei = {
username = lib.mkDefault "niko";
sane-defaults = {
enable = lib.mkDefault true;
allSshKeys = config.assets.sshKeys.user;
tailnet = "discus-macaroni.ts.net";
};
flake-qol = {
enable = true;
inputs = inputs // {settei = self;};
};
user = {
enable = true;
config = {
home.packages = let
extraPkgs = [inputs'.nh.packages.default];
in
[inputs'.settei.packages.base-packages] ++ extraPkgs;
programs.git.enable = true;
home.sessionVariables.EDITOR = "hx";
};
};
};
time.timeZone = lib.mkDefault "Europe/Warsaw";
settei.sane-defaults.allSshKeys = config.assets.sshKeys.user;
settei.flake-qol.inputs = inputs // {settei = self;};
};
in {
nixos = name: module:

View file

@ -8,29 +8,48 @@
...
}: let
sharedConfig = {
settei.user.config = {
programs.git = {
settei = {
username = lib.mkDefault "niko";
sane-defaults = {
enable = lib.mkDefault true;
tailnet = "discus-macaroni.ts.net";
};
flake-qol.enable = true;
user = {
enable = true;
difftastic.enable = true;
lfs.enable = true;
userName = "Nikodem Rabuliński";
userEmail = lib.mkDefault "nikodem@rabulinski.com";
signing = {
key = config.settei.sane-defaults.allSshKeys.${configurationName};
signByDefault = true;
};
extraConfig = {
gpg.format = "ssh";
push.followTags = true;
config = {
home.packages = let
extraPkgs = [pkgs.nh];
in
[inputs'.settei.packages.base-packages] ++ extraPkgs;
home.sessionVariables.EDITOR = "hx";
programs.git = {
enable = true;
difftastic.enable = true;
lfs.enable = true;
userName = "Nikodem Rabuliński";
userEmail = lib.mkDefault "nikodem@rabulinski.com";
signing = {
key = config.settei.sane-defaults.allSshKeys.${configurationName};
signByDefault = true;
};
extraConfig = {
gpg.format = "ssh";
push.followTags = true;
};
};
programs.fish.enable = true;
};
};
programs.fish.enable = true;
};
programs.fish.enable = true;
users.users.${username}.shell = pkgs.fish;
time.timeZone = lib.mkDefault "Europe/Warsaw";
# NixOS' fish module doesn't allow setting what package to use for fish,
# so I need to override the fish package.
nixpkgs.overlays = [(_: _: {inherit (inputs'.settei.packages) fish;})];