dotfiles.nix/darwin/homebrew.nix

87 lines
2.1 KiB
Nix

{ config, pkgs, ... }: {
environment.shellInit = ''
eval "$(${config.homebrew.brewPrefix}/brew shellenv)"
'';
# https://docs.brew.sh/Shell-Completion#configuring-completions-in-fish
# For some reason if the Fish completions are added at the end of `fish_complete_path` they don't
# seem to work, but they do work if added at the start.
programs.fish.interactiveShellInit = ''
if test -d (brew --prefix)"/share/fish/completions"
set -p fish_complete_path (brew --prefix)/share/fish/completions
end
if test -d (brew --prefix)"/share/fish/vendor_completions.d"
set -p fish_complete_path (brew --prefix)/share/fish/vendor_completions.d
end
'';
homebrew.enable = pkgs.lib.homebrew-enabled;
homebrew.onActivation.autoUpdate = true;
homebrew.onActivation.upgrade = true;
homebrew.onActivation.cleanup = "zap";
homebrew.global.brewfile = true;
homebrew.taps = [
"homebrew/cask"
"homebrew/cask-drivers"
"homebrew/cask-fonts"
"homebrew/cask-versions"
"homebrew/core"
"homebrew/services"
"nrlquaker/createzap"
"unisonweb/unison"
];
homebrew.masApps = {
Bitwarden = 1352778147;
"Reeder 5" = 1529448980;
Spark = 1176895641;
Tailscale = 1475387142;
Xcode = 497799835;
};
# If an app isn't available in the Mac App Store, or the version in the App Store has
# limitiations, e.g., Transmit, install the Homebrew Cask.
homebrew.casks = [
"aerial"
"alfred"
"bartender"
"bbedit"
# "discord"
# "element"
"firefox"
"jitsi-meet"
"knockknock"
# "lagrange"
"lapce"
"logi-options-plus"
"lulu"
"macsvg"
"miniforge"
"mullvadvpn"
# "obsidian"
"rectangle"
"secretive"
"shortcat"
"signal"
# "slack"
"stay"
"transmission"
"utm"
"wacom-tablet"
# "zoom"
];
# For cli packages that aren't currently available for macOS in `nixpkgs`.Packages should be
# installed in `../home/programs.nix` whenever possible.
homebrew.brews = [
"ffmpeg"
"fileicon"
"fzf"
"gifsicle"
"netlify-cli"
"tarsnap"
"unison-language"
];
}