# vim: ts=2 { config, pkgs, lib, ... }: let cfg = config.soispha.users; in { options.soispha.users = { # enable = lib.mkEnableOption (lib.mdDoc "users"); hashedPassword = lib.mkOption { type = lib.types.str; example = lib.literalExpression "$y$jFT$ONrCqZIJKB7engmfA4orD/$0GO58/wV5wrYWj0cyONhyujZPjFmbT0XKtx2AvXLG0B"; default = "$y$jFT$ONrCqZIJKB7engmfA4orD/$0GO58/wV5wrYWj0cyONhyujZPjFmbT0XKtx2AvXLG0B"; description = lib.mdDoc "Hashed password for the user"; }; }; config = { users = { mutableUsers = false; users.soispha = { isNormalUser = true; home = "/home/soispha"; createHome = true; shell = pkgs.zsh; initialHashedPassword = cfg.hashedPassword; extraGroups = ["wheel"]; uid = 1000; }; }; system.activationScripts.home_permissions = pkgs.lib.stringAfter ["users"] '' mkdir /home/soispha chmod 700 /home/soispha chown -hR soispha:users /home/soispha ''; }; }