feat: introduction of system_profiles
This commit is contained in:
parent
116aaaacff
commit
855b932cbd
15 changed files with 117 additions and 67 deletions
|
@ -28,32 +28,12 @@
|
|||
};
|
||||
|
||||
imports = [
|
||||
# steam and other stuff seems to depend on perl
|
||||
#"${modulesPath}/profiles/perlless.nix"
|
||||
|
||||
#nixos-hardware.nixosModules.lenovo-thinkpad-t14-amd-gen1
|
||||
./hardware-configuration.nix
|
||||
./boot.nix
|
||||
|
||||
../../modules
|
||||
|
||||
../../modules/users
|
||||
|
||||
../../modules/hardware
|
||||
|
||||
../../modules/sec_auth
|
||||
|
||||
../../modules/software
|
||||
../../modules/software/browser
|
||||
../../modules/software/nix-helper
|
||||
../../modules/software/shells
|
||||
../../modules/software/office
|
||||
|
||||
../../modules/wm_and_de
|
||||
|
||||
../../modules/pkg_mgrmnt
|
||||
|
||||
../../system_profiles/defaults.nix
|
||||
../../system_profiles/desktop.nix
|
||||
# ../../experiments
|
||||
];
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
#nixos-hardware.nixosModules.lenovo-thinkpad-t14-amd-gen1
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = ["nvme" "ehci_pci" "xhci_pci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
|
||||
|
|
|
@ -5,7 +5,10 @@ inArgs: hostname: hostOptions: let
|
|||
else inArgs.nixpkgs.lib.nixosSystem;
|
||||
in
|
||||
nixosSystem {
|
||||
specialArgs = {inArgs = inArgs;};
|
||||
specialArgs = {
|
||||
inArgs = inArgs;
|
||||
rootPath = inArgs.self;
|
||||
};
|
||||
modules = [
|
||||
../hosts/${hostname}
|
||||
#./debug.nix
|
||||
|
|
|
@ -2,11 +2,16 @@
|
|||
imports = [
|
||||
./accessibility.nix
|
||||
./customisation.nix
|
||||
|
||||
# should only be imported directly or via system_profiles
|
||||
#./dhcp-all-interfaces.nix
|
||||
|
||||
./environment.nix
|
||||
./firewall.nix
|
||||
./locale.nix
|
||||
./networking.nix
|
||||
#./plymouth.nix
|
||||
#./plymouth.nix # increases boot time too much
|
||||
#./serial-console.nix # probably only for servers
|
||||
./theming.nix
|
||||
];
|
||||
}
|
||||
|
|
9
modules/dhcp-all-interfaces.nix
Normal file
9
modules/dhcp-all-interfaces.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
# Enables DHCP on each ethernet and wireless interface.
|
||||
# In case of scripted networking (the default) this is the recommended approach.
|
||||
# When using systemd-networkd it's still possible to use this option,
|
||||
# but it's recommended to use it in conjunction with
|
||||
# explicit per-interface declarations with:
|
||||
# `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
}
|
23
readme.md
Normal file
23
readme.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
# My flake config
|
||||
|
||||
Some awesome descriptive text here
|
||||
|
||||
## folder structure
|
||||
|
||||
### system_profiles
|
||||
|
||||
This whole folder is for the most part just a system to clean up importing
|
||||
|
||||
- In files in this (`system_profiles`) directory:
|
||||
- should never import anything from parent directories
|
||||
- can import things from the child directories
|
||||
- The `importers` directory:
|
||||
- Should only import things outside (above/parent) of the `system_profiles` directories.
|
||||
- Probably only from the module directory or maybe a future nix-modules directory,
|
||||
this rule is not set in stone yet
|
||||
- should **not** import anything outside of this repository
|
||||
- The `components` directory:
|
||||
- Should never import anything from this repository
|
||||
- It can import things from nixpkgs
|
||||
- Should set only basic "system" settings
|
||||
("system" is not well defined)
|
|
@ -1,6 +1,6 @@
|
|||
# For when to deploy to a container,
|
||||
# can be used with minify to make things smaller
|
||||
{lib, ...}: {
|
||||
boot.isContainer = lib.mkDefault true;
|
||||
boot.kernel.enable = lib.mkDefault false;
|
||||
|
||||
imports = [./mini.nix];
|
||||
}
|
16
system_profiles/components/minify.nix
Normal file
16
system_profiles/components/minify.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
# This makes an installation smaller at the cost of
|
||||
# features (and maybe even stability)
|
||||
{lib, modulesPath, ...}: {
|
||||
imports = [
|
||||
(modulesPath + "/profiles/minimal.nix")
|
||||
#(modulesPath + "/profiles/perlless.nix")
|
||||
];
|
||||
|
||||
disabledModules = [
|
||||
(modulesPath + "/profiles/all-hardware.nix")
|
||||
(modulesPath + "/profiles/base.nix")
|
||||
];
|
||||
|
||||
environment.defaultPackages = lib.mkDefault [];
|
||||
nixpkgs.overlays = lib.mkDefault [(self: super: {})];
|
||||
}
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# This loads some nix and nixpkgs specific settints
|
||||
# i often need
|
||||
{lib, pkgs, ...}: {
|
||||
# Disable if you don't want unfree packages
|
||||
nixpkgs.config.allowUnfree = lib.mkDefault true;
|
||||
|
||||
|
@ -15,11 +13,9 @@
|
|||
|
||||
channel.enable = lib.mkDefault false;
|
||||
|
||||
settings.experimental-features = lib.mkDefault ["nix-command" "flakes"];
|
||||
settings.experimental-features = lib.mkDefault [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
};
|
||||
|
||||
imports = [
|
||||
../modules/locale.nix
|
||||
../modules/sec_auth/sudo-rs.nix
|
||||
];
|
||||
}
|
8
system_profiles/desktop.nix
Normal file
8
system_profiles/desktop.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
imports = [
|
||||
./components/nix-defaults.nix
|
||||
|
||||
./importers/desktop.nix
|
||||
./importers/general.nix
|
||||
];
|
||||
}
|
22
system_profiles/importers/desktop.nix
Normal file
22
system_profiles/importers/desktop.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
# This basicly imports the whole modules folder
|
||||
{rootPath, ...}: {
|
||||
imports = [
|
||||
(rootPath + /modules)
|
||||
|
||||
(rootPath + /modules/hardware)
|
||||
|
||||
(rootPath + /modules/pkg_mgrmnt)
|
||||
|
||||
(rootPath + /modules/sec_auth)
|
||||
|
||||
(rootPath + /modules/software)
|
||||
(rootPath + /modules/software/browser)
|
||||
(rootPath + /modules/software/nix-helper)
|
||||
(rootPath + /modules/software/office)
|
||||
(rootPath + /modules/software/shells)
|
||||
|
||||
(rootPath + /modules/users)
|
||||
|
||||
(rootPath + /modules/wm_and_de)
|
||||
];
|
||||
}
|
7
system_profiles/importers/general.nix
Normal file
7
system_profiles/importers/general.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
# This loads some "general" defaults
|
||||
{rootPath, ...}: {
|
||||
imports = [
|
||||
(rootPath + /modules/locale.nix)
|
||||
(rootPath + /modules/sec_auth/sudo-rs.nix)
|
||||
];
|
||||
}
|
7
system_profiles/importers/server.nix
Normal file
7
system_profiles/importers/server.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{rootPath, ...}: {
|
||||
imports = [
|
||||
(rootPath + /modules/customisation.nix)
|
||||
(rootPath + /modules/software/neovim.nix)
|
||||
(rootPath + /modules/software/packages/core.nix)
|
||||
];
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/profiles/minimal.nix")
|
||||
#(modulesPath + "/profiles/perlless.nix")
|
||||
|
||||
{
|
||||
environment.defaultPackages = lib.mkDefault [];
|
||||
nixpkgs.overlays = lib.mkDefault [(self: super: {})];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
}
|
||||
];
|
||||
|
||||
disabledModules = [
|
||||
(modulesPath + "/profiles/all-hardware.nix")
|
||||
(modulesPath + "/profiles/base.nix")
|
||||
];
|
||||
}
|
|
@ -1,10 +1,9 @@
|
|||
{
|
||||
imports = [
|
||||
./defaults.nix
|
||||
./mini.nix
|
||||
./components/minify.nix
|
||||
./components/nix-defaults.nix
|
||||
|
||||
../modules/customisation.nix
|
||||
../modules/software/neovim.nix
|
||||
../modules/software/packages/core.nix
|
||||
./importers/general.nix
|
||||
./importers/server.nix
|
||||
];
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue