refactor: cleanup and extract user config
This commit is contained in:
@@ -1,57 +1,5 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
userSpecs = {
|
||||
kiri = {
|
||||
realName = "Jelle Spreeuwenberg";
|
||||
homeDirectory = "/home/kiri";
|
||||
emails = {
|
||||
personal = {
|
||||
address = "mail@jelles.net";
|
||||
primary = true;
|
||||
scope = "personal";
|
||||
type = "mxrouting";
|
||||
};
|
||||
old = {
|
||||
address = "mail@jellespreeuwenberg.nl";
|
||||
scope = null;
|
||||
type = "mxrouting";
|
||||
};
|
||||
uni = {
|
||||
address = "j.spreeuwenberg@student.tue.nl";
|
||||
scope = null;
|
||||
type = "office365";
|
||||
};
|
||||
work = {
|
||||
address = "jelle.spreeuwenberg@yookr.org";
|
||||
scope = "work";
|
||||
type = "office365";
|
||||
};
|
||||
};
|
||||
sourceControl = { };
|
||||
};
|
||||
|
||||
ergon = {
|
||||
realName = "Jelle Spreeuwenberg";
|
||||
homeDirectory = "/home/ergon";
|
||||
emails = {
|
||||
personal = {
|
||||
address = "mail@jelles.net";
|
||||
scope = "personal";
|
||||
type = "mxrouting";
|
||||
};
|
||||
work = {
|
||||
address = "jelle.spreeuwenberg@yookr.org";
|
||||
primary = true;
|
||||
scope = "work";
|
||||
type = "office365";
|
||||
};
|
||||
};
|
||||
sourceControl.projectScope = "work";
|
||||
};
|
||||
};
|
||||
|
||||
accounts = lib.mapAttrs (name: spec: spec // { inherit name; }) userSpecs;
|
||||
|
||||
repo = {
|
||||
contact.email = "mail@jelles.net";
|
||||
|
||||
@@ -182,13 +130,5 @@ in
|
||||
readOnly = true;
|
||||
};
|
||||
|
||||
options.meta.lib.accounts = lib.mkOption {
|
||||
type = lib.types.attrs;
|
||||
description = "Canonical account attrsets shared by host definitions.";
|
||||
internal = true;
|
||||
readOnly = true;
|
||||
};
|
||||
|
||||
config.meta.lib.repo = repo;
|
||||
config.meta.lib.accounts = accounts;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ let
|
||||
homeModules = config.flake.modules.homeManager;
|
||||
in
|
||||
{
|
||||
flake.modules.nixos.workstation = {
|
||||
flake.modules.nixos.workstation-base = {
|
||||
imports = [
|
||||
nixosModules.audio
|
||||
nixosModules.bluetooth
|
||||
@@ -30,7 +30,7 @@ in
|
||||
environment.localBinInPath = true;
|
||||
};
|
||||
|
||||
flake.modules.homeManager.workstation = {
|
||||
flake.modules.homeManager.workstation-base = {
|
||||
imports = [
|
||||
homeModules.ai
|
||||
homeModules.bitwarden
|
||||
|
||||
@@ -7,13 +7,15 @@ let
|
||||
nixosModules = config.flake.modules.nixos;
|
||||
homeModules = config.flake.modules.homeManager;
|
||||
metaLib = config.meta.lib;
|
||||
workstationHomeImports = [ homeModules.workstation ];
|
||||
workstationHomeImports = [ homeModules.workstation-base ];
|
||||
kiriHomeImports = workstationHomeImports ++ [
|
||||
homeModules.syncthing
|
||||
homeModules.qbittorrent-client
|
||||
homeModules.kiri-workstation
|
||||
homeModules.noctalia
|
||||
];
|
||||
ergonHomeImports = workstationHomeImports ++ [
|
||||
homeModules.ergon-workstation
|
||||
homeModules.noctalia
|
||||
];
|
||||
ergonHomeImports = workstationHomeImports ++ [ homeModules.noctalia ];
|
||||
in
|
||||
{
|
||||
flake.modules.nixos.polaris = metaLib.mkHost {
|
||||
@@ -51,7 +53,7 @@ in
|
||||
};
|
||||
|
||||
imports = [
|
||||
nixosModules.workstation
|
||||
nixosModules.workstation-base
|
||||
nixosModules.steam
|
||||
./_hardware.nix
|
||||
]
|
||||
|
||||
@@ -7,24 +7,15 @@ let
|
||||
nixosModules = config.flake.modules.nixos;
|
||||
homeModules = config.flake.modules.homeManager;
|
||||
metaLib = config.meta.lib;
|
||||
workstationHomeImports = [ homeModules.workstation ];
|
||||
workstationHomeImports = [ homeModules.workstation-base ];
|
||||
portableNoctalia = homeModules.noctalia-portable;
|
||||
kiriHomeImports = workstationHomeImports ++ [
|
||||
homeModules.syncthing
|
||||
homeModules.qbittorrent-client
|
||||
homeModules.kiri-workstation
|
||||
portableNoctalia
|
||||
];
|
||||
ergonHomeImports = workstationHomeImports ++ [
|
||||
homeModules.ergon-workstation
|
||||
portableNoctalia
|
||||
(
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.rustup
|
||||
pkgs.usql
|
||||
];
|
||||
}
|
||||
)
|
||||
];
|
||||
in
|
||||
{
|
||||
@@ -71,7 +62,7 @@ in
|
||||
};
|
||||
|
||||
imports = [
|
||||
nixosModules.workstation
|
||||
nixosModules.workstation-base
|
||||
nixosModules.laptop-power
|
||||
{
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
|
||||
@@ -361,6 +361,23 @@ in
|
||||
readOnly = true;
|
||||
};
|
||||
|
||||
options.meta.lib.accounts = lib.mkOption {
|
||||
type = lib.types.attrs;
|
||||
default = { };
|
||||
apply = lib.mapAttrs (
|
||||
name: account:
|
||||
let
|
||||
accountName = account.name or name;
|
||||
in
|
||||
account
|
||||
// {
|
||||
name = accountName;
|
||||
}
|
||||
);
|
||||
description = "Canonical account attrsets shared by host definitions.";
|
||||
internal = true;
|
||||
};
|
||||
|
||||
config.meta.lib = {
|
||||
inherit
|
||||
mkInputProfiles
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
meta.lib.accounts.ergon = {
|
||||
realName = "Jelle Spreeuwenberg";
|
||||
emails = {
|
||||
personal = {
|
||||
address = "mail@jelles.net";
|
||||
scope = "personal";
|
||||
type = "mxrouting";
|
||||
};
|
||||
work = {
|
||||
address = "jelle.spreeuwenberg@yookr.org";
|
||||
primary = true;
|
||||
scope = "work";
|
||||
type = "office365";
|
||||
};
|
||||
};
|
||||
sourceControl.projectScope = "work";
|
||||
};
|
||||
|
||||
flake.modules.homeManager.ergon-workstation =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.rustup
|
||||
pkgs.usql
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
homeModules = config.flake.modules.homeManager;
|
||||
in
|
||||
{
|
||||
meta.lib.accounts.kiri = {
|
||||
realName = "Jelle Spreeuwenberg";
|
||||
emails = {
|
||||
personal = {
|
||||
address = "mail@jelles.net";
|
||||
primary = true;
|
||||
scope = "personal";
|
||||
type = "mxrouting";
|
||||
};
|
||||
old = {
|
||||
address = "mail@jellespreeuwenberg.nl";
|
||||
scope = null;
|
||||
type = "mxrouting";
|
||||
};
|
||||
uni = {
|
||||
address = "j.spreeuwenberg@student.tue.nl";
|
||||
scope = null;
|
||||
type = "office365";
|
||||
};
|
||||
work = {
|
||||
address = "jelle.spreeuwenberg@yookr.org";
|
||||
scope = "work";
|
||||
type = "office365";
|
||||
};
|
||||
};
|
||||
sourceControl = { };
|
||||
};
|
||||
|
||||
flake.modules.homeManager.kiri-workstation = {
|
||||
imports = [
|
||||
homeModules.syncthing
|
||||
homeModules.qbittorrent-client
|
||||
];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user