mirror of
https://codeberg.org/leana8959/.files.git
synced 2025-12-06 06:39:14 +00:00
nix: refactored configuration
This commit is contained in:
parent
930881a355
commit
e133fc127e
5 changed files with 16 additions and 24 deletions
|
|
@ -1,114 +0,0 @@
|
|||
{
|
||||
withSystem,
|
||||
inputs,
|
||||
defaultOptions,
|
||||
self,
|
||||
...
|
||||
}:
|
||||
let
|
||||
mkNixOS =
|
||||
name: sys: opts:
|
||||
withSystem sys (
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
args = {
|
||||
inherit pkgs;
|
||||
hostname = name;
|
||||
};
|
||||
in
|
||||
inputs.nixpkgs.lib.nixosSystem {
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
"${self}/nix/hosts/_"
|
||||
"${self}/nix/hosts/${name}"
|
||||
"${self}/nix/layouts"
|
||||
inputs.agenix.nixosModules.default
|
||||
defaultOptions
|
||||
opts
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = args;
|
||||
users.leana.imports = [
|
||||
"${self}/nix/home/_"
|
||||
"${self}/nix/home/${name}"
|
||||
defaultOptions
|
||||
opts
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
mkDarwin =
|
||||
name: sys: opts:
|
||||
withSystem sys (
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
args = {
|
||||
inherit pkgs;
|
||||
hostname = name;
|
||||
};
|
||||
in
|
||||
inputs.nix-darwin.lib.darwinSystem {
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
{ nixpkgs.hostPlatform = sys; }
|
||||
"${self}/nix/hosts/_"
|
||||
"${self}/nix/hosts/_darwin"
|
||||
"${self}/nix/hosts/${name}"
|
||||
defaultOptions
|
||||
opts
|
||||
inputs.home-manager.darwinModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = args;
|
||||
users.leana.imports = [
|
||||
"${self}/nix/home/_"
|
||||
"${self}/nix/home/${name}"
|
||||
defaultOptions
|
||||
opts
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
mkHomeManager =
|
||||
name: sys: opts:
|
||||
withSystem sys (
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
args = {
|
||||
inherit pkgs;
|
||||
hostname = name;
|
||||
};
|
||||
in
|
||||
inputs.home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = args.pkgs;
|
||||
extraSpecialArgs = args;
|
||||
modules = [
|
||||
"${self}/nix/home/_"
|
||||
"${self}/nix/home/${name}"
|
||||
defaultOptions
|
||||
opts
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
many = func: builtins.mapAttrs (name: opts: func name (opts.system) (opts.settings or { }));
|
||||
in
|
||||
{
|
||||
# promote helper functions into the arguments
|
||||
_module.args = {
|
||||
mkNixOSes = many mkNixOS;
|
||||
mkHomeManagers = many mkHomeManager;
|
||||
mkDarwins = many mkDarwin;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
{
|
||||
mkDarwins,
|
||||
mkHomeManagers,
|
||||
mkNixOSes,
|
||||
...
|
||||
}:
|
||||
{
|
||||
flake = {
|
||||
darwinConfigurations = mkDarwins {
|
||||
# MacBook Pro 2021
|
||||
bismuth = {
|
||||
system = "aarch64-darwin";
|
||||
settings = {
|
||||
extraLanguageServers.enable = true;
|
||||
extraUtils.enable = true;
|
||||
cmus.enable = true;
|
||||
universityTools.enable = true;
|
||||
git.signCommits = true;
|
||||
};
|
||||
};
|
||||
# MacBook Air 2014
|
||||
tungsten = {
|
||||
system = "x86_64-darwin";
|
||||
settings.cmus.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
homeConfigurations = mkHomeManagers {
|
||||
# Raspberry Pi 4
|
||||
hydrogen.system = "aarch64-linux";
|
||||
# Oracle cloud
|
||||
oracle.system = "aarch64-linux";
|
||||
# Linode
|
||||
linode.system = "x86_64-linux";
|
||||
};
|
||||
|
||||
nixosConfigurations = mkNixOSes {
|
||||
# Thinkpad
|
||||
carbon = {
|
||||
system = "x86_64-linux";
|
||||
settings = {
|
||||
extraLanguageServers.enable = true;
|
||||
extraUtils.enable = true;
|
||||
cmus.enable = true;
|
||||
universityTools.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./combinators.nix
|
||||
./configurations.nix
|
||||
./options.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
_module.args.defaultOptions =
|
||||
{ lib, ... }:
|
||||
{
|
||||
options = {
|
||||
cmus.enable = lib.mkOption { default = false; };
|
||||
extraUtils.enable = lib.mkOption { default = false; };
|
||||
extraLanguageServers.enable = lib.mkOption { default = false; };
|
||||
universityTools.enable = lib.mkOption { default = false; };
|
||||
git.signCommits = lib.mkOption { default = false; };
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue