{ pkgs, lib, config, userName, wm, True, ... }: with lib; let cfg = config.module.misc.users; grp = [ "video" "audio" "networkmanager" "wheel" "docker" "libvirtd" ]; in { options = { module.misc.users = { enable = mkEnableOption ""; shell = mkOption { default = null; type = types.str; }; }; }; config = mkIf cfg.enable { programs.${cfg.shell} = True; environment.loginShellInit = '' [ "$(tty)" = "/dev/tty1" ] && exec ${wm.sh} # LAUNCH WM ''; users = { # USERS SETS defaultUserShell = pkgs.${cfg.shell}; groups.${userName} = { }; users.${userName} = { uid = 1000; home = "/home/${userName}"; createHome = true; isNormalUser = true; extraGroups = grp; }; }; }; }