{ config, pkgs, lib, user, flakeRoot, ... }: let zshConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/zsh"; assetsDir = "${flakeRoot}/assets/common/conf/zsh"; in { home-manager.users.${user.username} = { home.packages = with pkgs; [ zsh-syntax-highlighting starship ]; programs.zsh = { enable = true; enableCompletion = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; oh-my-zsh = { enable = true; theme = "agnoster"; plugins = [ "git" "docker" "kubectl" "history" "command-not-found" "extract" ]; }; shellAliases = { ls = "exa --icons -a --group-directories-first"; ll = "exa --icons -la --group-directories-first"; }; }; # Use the .zshrc file from assets xdg.configFile."zsh/.zshrc".source = "${assetsDir}/.zshrc"; }; }