{ inputs, ... }: let username = "john"; in { flake.modules = { nixos.zsh = { pkgs, ... }: { users.users."${username}".shell = pkgs.zsh; programs.zsh.enable = true; # Already being imported by the john.nix module # home-manager.sharedModules = [ # inputs.self.modules.homeManager.zsh # ]; }; homeManager.zsh = { pkgs, config, ... }: { programs.zsh = { enable = true; package = pkgs.zsh; enableCompletion = true; autosuggestion.enable = true; # syntaxHighlighting.enable = true; initContent = "HOST=$(hostname -s)"; dotDir = "${config.xdg.configHome}/zsh"; history = { append = true; ignoreAllDups = true; ignorePatterns = [ "history" "ls" "eza" "clear" ]; save = 1000; size = 1000; share = true; }; oh-my-zsh = { enable = true; # theme = "risto"; theme = "agnoster"; plugins = [ "sudo" "dotenv" "git" "ssh" "ssh-agent" ]; }; }; }; }; }