summaryrefslogtreecommitdiff
path: root/sys/preset/user.nix
diff options
context:
space:
mode:
Diffstat (limited to 'sys/preset/user.nix')
-rw-r--r--sys/preset/user.nix79
1 files changed, 79 insertions, 0 deletions
diff --git a/sys/preset/user.nix b/sys/preset/user.nix
new file mode 100644
index 0000000..56b6866
--- /dev/null
+++ b/sys/preset/user.nix
@@ -0,0 +1,79 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ inherit (lib) mkDefault;
+ cfg = config.local.preset.user;
+in {
+ options.local.preset.user = {
+ enable = lib.mkEnableOption "user-like preset";
+ };
+
+ config = lib.mkIf cfg.enable {
+ local = {
+ installUsers = mkDefault "single";
+
+ auth = {
+ oath.enable = mkDefault true;
+
+ openssh = {
+ enable = mkDefault true;
+
+ hostKeys = {
+ rsa = mkDefault true;
+ ecdsa = mkDefault true;
+ ed25519 = mkDefault true;
+ };
+ };
+ };
+
+ boot = {
+ kernel = mkDefault pkgs.linuxPackages_latest;
+ loader = mkDefault "grub";
+
+ efi = {
+ enable = mkDefault true;
+ removable = mkDefault false;
+ };
+
+ firmware.mode = mkDefault "redistributable";
+ detachedLuks.enable = mkDefault true;
+
+ stack.btrfsToplevelMultidrive = {
+ enable = mkDefault true;
+
+ toplevel.root = mkDefault "/root";
+ secondary.home = mkDefault "/home";
+ };
+ };
+
+ hardware = {
+ yubico = {
+ enable = mkDefault true;
+ pamAuth = mkDefault true;
+ };
+
+ bluetooth.enable = mkDefault true;
+ };
+
+ net.enable = true;
+
+ seat = {
+ enable = true;
+ graphical = mkDefault true;
+ };
+
+ #trivionomiconMotd.enable = true;
+ };
+
+ services.nullmailer = {
+ enable = mkDefault true;
+
+ config = {
+ me = "${config.networking.hostName}@${config.networking.domain}";
+ };
+ };
+ };
+}