277 lines
6.6 KiB
Nix
277 lines
6.6 KiB
Nix
{
|
|
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"
|
|
];
|
|
})
|
|
];
|
|
}
|