71 lines
2.0 KiB
Nix
71 lines
2.0 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
system,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}: let
|
|
cfg = config.myConfig;
|
|
in {
|
|
imports = [./bootloader.nix ./locale.nix ./greetd.nix ./rebuild.nix ./sops.nix ./sway.nix ./wifi.nix ./music.nix ./cups.nix ./gpu/amd.nix ./touch.nix ./cache.nix ./nix.nix ./update.nix ./podman.nix ./qemu.nix ./bluetooth.nix ./network.nix ./nix-ld.nix];
|
|
|
|
options.myConfig = {
|
|
enable = lib.mkEnableOption "my custom config";
|
|
desktop = lib.mkEnableOption "custom config with desktop support";
|
|
laptop = lib.mkEnableOption "extra stuff for laptops like wifi";
|
|
user = lib.mkOption {
|
|
default = "max";
|
|
example = "foo";
|
|
description = "The main user working on this machine";
|
|
type = lib.types.nonEmptyStr;
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
myConfig = {
|
|
bootloader.enable = true;
|
|
locale.enable = true;
|
|
rebuild.enable = true;
|
|
cache.enable = true;
|
|
autoUpdate.enable = true;
|
|
podman.enable = true;
|
|
qemu.enable = true;
|
|
qemu.kvm = lib.mkIf (system == "x86_64-linux") true;
|
|
network.enable = true;
|
|
nix-ld.enable = true;
|
|
|
|
greetd.enable = lib.mkIf cfg.desktop true;
|
|
sway.enable = lib.mkIf cfg.desktop true;
|
|
music.enable = lib.mkIf cfg.desktop true;
|
|
cups.enable = lib.mkIf cfg.desktop true;
|
|
wifi.tray = lib.mkIf cfg.desktop true;
|
|
|
|
sway.laptop = lib.mkIf cfg.laptop true;
|
|
wifi.enable = lib.mkIf cfg.laptop true;
|
|
touch.enable = lib.mkIf cfg.laptop true;
|
|
bluetooth.enable = lib.mkIf cfg.laptop true;
|
|
};
|
|
|
|
users.users.${cfg.user} = {
|
|
isNormalUser = true;
|
|
description = "Max Känner";
|
|
extraGroups = ["wheel" "dialout"];
|
|
shell = pkgs.zsh;
|
|
};
|
|
|
|
home-manager = {
|
|
extraSpecialArgs = {inherit inputs;};
|
|
users.${cfg.user} = import ../../hosts/${cfg.network.hostName}/home.nix;
|
|
};
|
|
|
|
programs.ssh.startAgent = true;
|
|
programs.zsh.enable = true;
|
|
programs.steam.enable = true;
|
|
|
|
security.polkit.enable = true;
|
|
|
|
services.upower.enable = true;
|
|
};
|
|
}
|