Skip to content

Instantly share code, notes, and snippets.

@elliottminns
Last active April 14, 2025 10:05
Show Gist options
  • Save elliottminns/211ef645ebd484eb9a5228570bb60ec3 to your computer and use it in GitHub Desktop.
Save elliottminns/211ef645ebd484eb9a5228570bb60ec3 to your computer and use it in GitHub Desktop.
system.activationScripts.applications.text = let
env = pkgs.buildEnv {
name = "system-applications";
paths = config.environment.systemPackages;
pathsToLink = "/Applications";
};
in
pkgs.lib.mkForce ''
# Set up applications.
echo "setting up /Applications..." >&2
rm -rf /Applications/Nix\ Apps
mkdir -p /Applications/Nix\ Apps
find ${env}/Applications -maxdepth 1 -type l -exec readlink '{}' + |
while read -r src; do
app_name=$(basename "$src")
echo "copying $src" >&2
${pkgs.mkalias}/bin/mkalias "$src" "/Applications/Nix Apps/$app_name"
done
'';
@shaoyanji
Copy link

I used the activation script in my config, but alacritty is still not visible in spotlight :/

it does have to be an environment system package for it to be read.

this script works for kitty for example, but doesn't for wezterm because i have it as a home manager module. the creature comfort with spotlight isn't great because aliases are a little lower than a websearch. i use raycast as a spotlight replacement through homebrew.

but what is great about this script is that it gives you an opening to adapt it to add home manager aliases, just replace /Applications/Nix\ Apps to ~/Applications/Home\ Manager (i'm not a fan of bash).

@ricardogaspar2
Copy link

Just a suggestion, I've used this utility on my flake.nix and it worked like a charm. No need to define an activation script
https://github.com/hraban/mac-app-util
Credits to the developer @hraban

Thanks for the video tutorial, it really helped.

@waseemhnyc
Copy link

+1 ☝️ to using @hraban https://github.com/hraban/mac-app-util

Worked like a charm

@frarredondo
Copy link

++1 ☝🏽using https://github.com/hraban/mac-app-util

Worked perfectly and was super easy to add to my config file.

@tylercritchlow
Copy link

++1 ☝🏽using https://github.com/hraban/mac-app-util

Worked perfectly and was super easy to add to my config file.

Do you mind sharing your flake.nix with mac-app-util? I tried it, and it doesn't work for me.

@frarredondo
Copy link

@tylercritchlow Sure! I've uploaded a copy here: https://gist.github.com/frarredondo/192930a454c992f306143bfc4eefc948

I will say that after posting my comment above i very quickly learned that very few packages were actually available for aarch64-darwin and found that i needed to install everything via homebrew so i didn't see the point in using nix at least on apple silicon atm and uninstalled it and went back to using homebrew for package management.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment