{ config, pkgs, lib, ... }: let psCfg = config.pub-solar; in { imports = [ ./home.nix ]; users = { mutableUsers = false; users = with pkgs; pkgs.lib.setAttrByPath [ psCfg.user.name ] { # Indicates whether this is an account for a “real” user. # This automatically sets group to users, createHome to true, # home to /home/username, useDefaultShell to true, and isSystemUser to false. isNormalUser = true; description = psCfg.user.description; extraGroups = [ "wheel" "input" "networkmanager" "lp" "scanner" ]; initialHashedPassword = if psCfg.user.password != null then psCfg.user.password else ""; shell = pkgs.zsh; openssh.authorizedKeys.keys = if psCfg.user.publicKeys != null then psCfg.user.publicKeys else [ ]; }; }; }