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.nix63
1 files changed, 63 insertions, 0 deletions
diff --git a/sys/preset/user.nix b/sys/preset/user.nix
new file mode 100644
index 0000000..5f06f15
--- /dev/null
+++ b/sys/preset/user.nix
@@ -0,0 +1,63 @@
+{ 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 = {
+ auth = {
+ oath.enable = mkDefault true;
+
+ openssh = {
+ enable = mkDefault true;
+
+ hostKeys = {
+ rsa = mkDefault true;
+ ecdsa = mkDefault true;
+ ed25519 = mkDefault true;
+ };
+ };
+ };
+
+ boot = {
+ enable = mkDefault true;
+
+ 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;
+ bluetooth.enable = mkDefault true;
+ };
+
+ net.enable = true;
+
+ seat = {
+ enable = true;
+ graphical = mkDefault true;
+ installUsers = mkDefault "single";
+ };
+ };
+ };
+}