diff --git a/nix-darwin/zsh-completion-fix.nix b/nix-darwin/zsh-completion-fix.nix new file mode 100644 index 0000000..be3c186 --- /dev/null +++ b/nix-darwin/zsh-completion-fix.nix @@ -0,0 +1,16 @@ +# Fix broken autocompletion. See https://github.com/nix-community/home-manager/issues/2562. +{ flake, ... }: + +{ + home-manager.users.${flake.config.people.myself}.imports = [ + ({ config, ... }: { + programs.zsh.initExtraBeforeCompInit = '' + fpath+=("${config.home.profileDirectory}"/share/zsh/site-functions "${config.home.profileDirectory}"/share/zsh/$ZSH_VERSION/functions "${config.home.profileDirectory}"/share/zsh/vendor-completions) + ''; + }) + ]; + + # Even though we enable zsh in home-manager, we still need to enable the + # nix-darwin module to make completions work. + programs.zsh.enable = true; +} diff --git a/systems/darwin.nix b/systems/darwin.nix index 80a069c..51b58a7 100644 --- a/systems/darwin.nix +++ b/systems/darwin.nix @@ -5,6 +5,7 @@ imports = [ flake.inputs.self.darwinModules.default ../nix-darwin/ci.nix + ../nix-darwin/zsh-completion-fix.nix ]; nixpkgs.hostPlatform = "aarch64-darwin";