{ flake, config, ... }: { # 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 = { shellInit = '' eval "$(${config.homebrew.brewPrefix}/brew shellenv 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 = flake.inputs.homebrew-enabled.value; onActivation.autoUpdate = true; onActivation.upgrade = true; onActivation.cleanup = "uninstall"; global.brewfile = true; taps = [ "homebrew/cask-versions" "homebrew/services" ]; masApps = { Bitwarden = 1352778147; "Draw Things" = 6444050820; GrandPerspective = 1111570163; Reeder = 1529448980; Tailscale = 1475387142; Xcode = 497799835; }; caskArgs.no_quarantine = true; casks = [ # system tools "alfred" # "bartender" -> dozer "dozer" "knockknock" "lulu" "protonvpn" "rectangle" "secretive" "shortcat" "stay" "utm" # "tools for thought" "anytype" "obsidian" # design "krita" "macsvg" # browsers "arc" "firefox" "orion" # messaging apps "messenger" "signal" # editors and IDEs "lapce" "zed" # terminal emulators "kitty" "warp" # peripheral tools "logi-options-plus" "qflipper" "remarkable" "via" ]; }; }