From 737dcda77e45cb8bb84b333f7663a9f6eabded44 Mon Sep 17 00:00:00 2001 From: Sridhar Ratnakumar <3998+srid@users.noreply.github.com> Date: Fri, 22 Mar 2024 10:11:05 -0400 Subject: [PATCH] Make `zsh` autocompletion work on macOS (#50) --- nix-darwin/zsh-completion-fix.nix | 16 ++++++++++++++++ systems/darwin.nix | 1 + 2 files changed, 17 insertions(+) create mode 100644 nix-darwin/zsh-completion-fix.nix 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";