Add minimal modular setup

This commit is contained in:
muon 2024-05-28 15:55:10 +00:00
commit e81d8c9be4
19 changed files with 351 additions and 0 deletions

View file

@ -0,0 +1,4 @@
{ pkgs, lib, ... }: {
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
}

View file

@ -0,0 +1,7 @@
{ pkgs, lib, ... }: {
imports = [
./boot.nix
./network.nix
./user.nix
];
}

View file

@ -0,0 +1,5 @@
{ pkgs, lib, ... }: {
config = {
networking.networkmanager.enable = true;
};
}

View file

@ -0,0 +1,16 @@
{ pkgs, lib, config, ... }: {
options = {
mods.user.name = lib.mkOption {
default = "muon";
description = "username of the main system user";
};
};
config = {
users.users.${config.mods.user.name} = {
isNormalUser = true;
extraGroups = [ "wheel" ];
initialPassword = "changeme";
};
};
}

View file

@ -0,0 +1,7 @@
{ pkgs, lib, ... }: {
imports = [
./core
./system
./desktop
];
}

View file

@ -0,0 +1,15 @@
{ pkgs, lib, config, ... }: {
imports = [
./xorg.nix
./sound.nix
];
options = {
mods.desktop.enable = lib.mkEnableOption "enables sound";
};
config = lib.mkIf config.mods.desktop.enable {
mods.xorg.enable = true;
mods.sound.enable = true;
};
}

View file

@ -0,0 +1,12 @@
{ pkgs, lib, config, ... }: {
options = {
mods.sound.enable = lib.mkEnableOption "enables sound";
};
config = lib.mkIf config.mods.sound.enable {
services.pipewire = {
enable = true;
pulse.enable = true;
};
};
}

View file

@ -0,0 +1,11 @@
{ pkgs, lib, config, ... }: {
options = {
mods.xorg.enable = lib.mkEnableOption "enables xorg";
};
config = lib.mkIf config.mods.xorg.enable {
services.xserver.enable = true;
services.xserver.xkb.layout = "us";
services.xserver.xkb.options = "caps:escape";
};
}

View file

@ -0,0 +1,7 @@
{ pkgs, lib, ... }: {
imports = [
./locale.nix
./programs.nix
./services.nix
];
}

View file

@ -0,0 +1,10 @@
{ pkgs, lib, config, ... }: {
time.timeZone = "Etc/UTC";
i18n.defaultLocale = "en_US.UTF-8";
console = if config.mods.xorg.enable then {
useXkbConfig = true;
} else {
keymap = "us";
};
}

View file

@ -0,0 +1,11 @@
{ pkgs, lib, ... }: {
environment.systemPackages = with pkgs; [
vim
wget
];
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
}

View file

@ -0,0 +1,3 @@
{ pkgs, lib, ... }: {
services.openssh.enable = true;
}