rix101/modules/nix-darwin/brew/default.nix

80 lines
1.8 KiB
Nix

{ lib, pkgs, config, ... }:
with lib;
let
cfg = config.reo101.brew;
in
{
imports = [
];
options = {
reo101.brew = {
enable = mkEnableOption "reo101 brew config";
};
};
config = mkIf cfg.enable {
# Requires Homebrew to be installed
system.activationScripts.preUserActivation.text = ''
if ! xcode-select --version 2>/dev/null; then
$DRY_RUN_CMD xcode-select --install
fi
if ! ${config.homebrew.brewPrefix}/brew --version 2>/dev/null; then
$DRY_RUN_CMD /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi
'';
homebrew = {
enable = true;
onActivation = {
autoUpdate = false; # Don't update during rebuild
upgrade = true;
cleanup = "zap"; # Uninstall all programs not declared
};
global = {
brewfile = true; # Run brew bundle from anywhere
lockfiles = false; # Don't save lockfile (since running from anywhere)
};
taps = [
"homebrew/core"
"homebrew/cask"
"homebrew/cask-fonts"
"homebrew/services"
"cmacrae/formulae"
"FelixKratz/formulae"
"jorgelbg/tap"
];
brews = [
"libusb"
"openssl"
"switchaudio-osx"
];
casks = [
"android-platform-tools"
"docker"
"eloston-chromium"
"firefox"
"flameshot"
"font-fira-code-nerd-font"
"karabiner-elements"
"notion"
# "osxfuse"
"prismlauncher"
"scroll-reverser"
"sf-symbols"
"slack"
"spotify"
"xquartz"
];
extraConfig = ''
# brew "xorpse/formulae/brew", args: ["HEAD"]
cask_args appdir: "~/Applications"
'';
};
};
meta = {
maintainers = with lib.maintainers; [ reo101 ];
};
}