{ config, lib, pkgs, user, inputs, ... }: { options.custom.brew = with lib; { zen-browser = mkEnableOption "Enable Zen Browser"; webex = mkEnableOption "Enable Webe"; zoom = mkEnableOption "Enable Zoom"; slack = mkEnableOption "Enable Slack"; ghostty = mkEnableOption "Enable Ghostty"; ms-office = mkEnableOption "Enable MS Office"; ms-teams = mkEnableOption "Enable MS Teams"; spotify = mkEnableOption "Enable Spotify"; raycast = mkEnableOption "Enable Raycast"; whatsapp = mkEnableOption "Enable Whatsapp"; vscode = mkEnableOption "Enable VSCode"; firefox = mkEnableOption "Enable Firefox"; chromium = mkEnableOption "Enable Chromium"; aldente = mkEnableOption "Enable AlDente"; zotero = mkEnableOption "Enable Zotero"; amphetamine = mkEnableOption "Enable Amphetamine"; scroll-reverser = mkEnableOption "Enable Scroll Reverser"; ice = mkEnableOption "Enable Ice Menu Manager"; contexts = mkEnableOption "Enable Contexts"; forklift = mkEnableOption "Enable Forklift 4"; flux = mkEnableOption "Enable f.lux"; cleanshot = mkEnableOption "Enable cleanshot"; snippets-lab = mkEnableOption "Enable SnippetsLab"; iina = mkEnableOption "Enable IINA"; itsycal = mkEnableOption "Enable itsycal"; lookaway = mkEnableOption "Enable lookaway"; obsidian = mkEnableOption "Enable obsidian"; zed = mkEnableOption "Enable zed"; orion = mkEnableOption "Enable orion"; chatgpt = mkEnableOption "Enable ChatGPT"; antinote = mkEnableOption "Enable Antinote"; swish = mkEnableOption "Enable Swish"; rectangle = mkEnableOption "Enable Rectangle"; rectangle-pro = mkEnableOption "Enable Rectangle Pro"; emacs = mkEnableOption "Enable Emacs"; drawio = mkEnableOption "Enable draw.io"; parsify = mkEnableOption "Enable Parsify"; soulver = mkEnableOption "Enable Soulver"; pika = mkEnableOption "Enable Pika"; }; config = lib.mkMerge [ { nix-homebrew = { inherit user; enable = true; enableRosetta = true; taps = { "homebrew/homebrew-core" = inputs.homebrew-core; "homebrew/homebrew-cask" = inputs.homebrew-cask; "homebrew/homebrew-createzap" = inputs.homebrew-createzap; "d12frosted/homebrew-emacs-plus" = inputs.homebrew-emacs-plus; }; mutableTaps = false; }; homebrew = { enable = true; onActivation = { autoUpdate = true; upgrade = true; cleanup = "zap"; }; global = { brewfile = true; }; }; } # mas apps (lib.mkIf config.custom.brew.amphetamine { homebrew.masApps = { "Amphetamine" = 937984704; }; }) (lib.mkIf config.custom.brew.snippets-lab { homebrew.masApps = { "SnippetsLab" = 1006087419; }; }) # casks (lib.mkIf config.custom.brew.zen-browser { homebrew.casks = [ "zen-browser" ]; }) (lib.mkIf config.custom.brew.webex { homebrew.casks = [ "webex" ]; }) (lib.mkIf config.custom.brew.slack { homebrew.casks = [ "slack" ]; }) (lib.mkIf config.custom.brew.zoom { homebrew.casks = [ "zoom" ]; }) (lib.mkIf config.custom.brew.spotify { homebrew.casks = [ "spotify" ]; }) (lib.mkIf config.custom.brew.ghostty { homebrew.casks = [ "ghostty" ]; }) (lib.mkIf config.custom.brew.ms-office { homebrew.casks = [ "microsoft-office" ]; }) (lib.mkIf config.custom.brew.ms-teams { homebrew.casks = [ "microsoft-teams" ]; }) (lib.mkIf config.custom.brew.raycast { homebrew.casks = [ "raycast" ]; }) (lib.mkIf config.custom.brew.whatsapp { homebrew.casks = [ "whatsapp" ]; }) (lib.mkIf config.custom.brew.vscode { homebrew.casks = [ "visual-studio-code" ]; }) (lib.mkIf config.custom.brew.firefox { homebrew.casks = [ "firefox" ]; }) (lib.mkIf config.custom.brew.chromium { homebrew.casks = [ "chromium" ]; }) (lib.mkIf config.custom.brew.aldente { homebrew.casks = [ "aldente" ]; }) (lib.mkIf config.custom.brew.zotero { homebrew.casks = [ "zotero" ]; }) (lib.mkIf config.custom.brew.scroll-reverser { homebrew.casks = [ "scroll-reverser" ]; }) (lib.mkIf config.custom.brew.ice { homebrew.casks = [ "jordanbaird-ice" ]; }) (lib.mkIf config.custom.brew.contexts { homebrew.casks = [ "contexts" ]; }) (lib.mkIf config.custom.brew.forklift { homebrew.casks = [ "forklift" ]; }) (lib.mkIf config.custom.brew.flux { homebrew.casks = [ "flux" ]; }) (lib.mkIf config.custom.brew.cleanshot { homebrew.casks = [ "cleanshot" ]; }) (lib.mkIf config.custom.brew.iina { homebrew.casks = [ "iina" ]; }) (lib.mkIf config.custom.brew.itsycal { homebrew.casks = [ "itsycal" ]; }) (lib.mkIf config.custom.brew.lookaway { homebrew.casks = [ "lookaway" ]; }) (lib.mkIf config.custom.brew.obsidian { homebrew.casks = [ "obsidian" ]; }) (lib.mkIf config.custom.brew.zed { homebrew.casks = [ "zed" ]; }) (lib.mkIf config.custom.brew.orion { homebrew.casks = [ "orion" ]; }) (lib.mkIf config.custom.brew.chatgpt { homebrew.casks = [ "chatgpt" ]; }) (lib.mkIf config.custom.brew.antinote { homebrew.casks = [ "antinote" ]; }) (lib.mkIf config.custom.brew.swish { homebrew.casks = [ "swish" ]; }) (lib.mkIf config.custom.brew.rectangle { homebrew.casks = [ "rectangle" ]; }) (lib.mkIf config.custom.brew.rectangle-pro { homebrew.casks = [ "rectangle-pro" ]; }) (lib.mkIf config.custom.brew.emacs { homebrew.brews = [ "emacs-plus" ]; }) (lib.mkIf config.custom.brew.drawio { homebrew.casks = [ "drawio" ]; }) (lib.mkIf config.custom.brew.parsify { homebrew.casks = [ "parsify" ]; }) (lib.mkIf config.custom.brew.soulver { homebrew.casks = [ "soulver" ]; }) (lib.mkIf config.custom.brew.pika { homebrew.casks = [ "pika" ]; }) ]; }