{ pkgs, ... }: { # Main desktop user. users.users."seraphim" = { isNormalUser = true; description = "seraphim"; shell = pkgs.zsh; # wheel for sudo/doas, networkmanager to manage connections itself. extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; []; }; # doas (simpler sudo replacement) security.doas = { enable = true; # Give seraphim persistent passwordless-ish privileges, keeping the env. extraRules = [ { users = [ "seraphim" ]; keepEnv = true; persist = true; } ]; }; # ZSH + completion, oh-my-zsh, autosuggestions, and fzf key bindings. programs.zsh = { enable = true; enableCompletion = true; ohMyZsh.enable = true; autosuggestions = { enable = true; highlightStyle = "fg=#6c7086"; strategy = [ "history" "completion" ]; }; interactiveShellInit = '' source ${pkgs.fzf}/share/fzf/key-bindings.zsh source ${pkgs.fzf}/share/fzf/completion.zsh ''; shellAliases = { ls = "eza -al --icons=auto"; ll = "eza -al --icons=auto"; sudo = "doas"; open = "xdg-open"; }; }; }