72 lines
2.1 KiB
Nix
72 lines
2.1 KiB
Nix
|
{ config, lib, pkgs, ... }:
|
||
|
|
||
|
let
|
||
|
inherit (lib) mkIf;
|
||
|
mkIfCaskPresent = cask: mkIf (lib.any (x: x == cask) config.homebrew.casks);
|
||
|
brewEnabled = config.homebrew.enable;
|
||
|
in
|
||
|
|
||
|
{
|
||
|
environment.shellInit = mkIf brewEnabled ''
|
||
|
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 = mkIf brewEnabled ''
|
||
|
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 = true;
|
||
|
homebrew.autoUpdate = true;
|
||
|
homebrew.cleanup = "zap";
|
||
|
homebrew.global.brewfile = true;
|
||
|
homebrew.global.noLock = true;
|
||
|
|
||
|
homebrew.taps = [
|
||
|
"homebrew/cask"
|
||
|
"homebrew/cask-drivers"
|
||
|
"homebrew/cask-fonts"
|
||
|
"homebrew/cask-versions"
|
||
|
"homebrew/core"
|
||
|
"homebrew/services"
|
||
|
"nrlquaker/createzap"
|
||
|
];
|
||
|
|
||
|
# Prefer installing application from the Mac App Store
|
||
|
homebrew.masApps = {
|
||
|
Bitwarden = 1352778147;
|
||
|
Spark = 1176895641;
|
||
|
};
|
||
|
|
||
|
# 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 = [
|
||
|
"alfred"
|
||
|
"discord"
|
||
|
"element"
|
||
|
"firefox"
|
||
|
"gog-galaxy"
|
||
|
"knockknock"
|
||
|
"lagrange"
|
||
|
"lulu"
|
||
|
"rectangle"
|
||
|
"signal"
|
||
|
"steam"
|
||
|
"vscodium"
|
||
|
];
|
||
|
|
||
|
# Configuration related to casks
|
||
|
environment.variables.SSH_AUTH_SOCK = mkIfCaskPresent "secretive"
|
||
|
"/Users/${config.users.primaryUser}/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh";
|
||
|
|
||
|
# For cli packages that aren't currently available for macOS in `nixpkgs`.Packages should be
|
||
|
# installed in `../home/default.nix` whenever possible.
|
||
|
homebrew.brews = [];
|
||
|
}
|