aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimen A. W. Olsen <hello@simenandre.no>2026-06-14 12:31:30 +0200
committerSimen A. W. Olsen <hello@simenandre.no>2026-06-14 12:31:30 +0200
commit6eeae1d0059fe7c21a1bd806eb8a465571c16aad (patch)
tree87c79ca03549418e1d2d19d624a794f26369fa2c
parent3accc54d650c811978990b506a20f7e143ca5920 (diff)
downloaddotfiles-6eeae1d0059fe7c21a1bd806eb8a465571c16aad.tar.gz
dotfiles-6eeae1d0059fe7c21a1bd806eb8a465571c16aad.zip
refactor(darwin): move CLI tools from homebrew to nixpkgs
-rw-r--r--modules/darwin/default.nix114
-rw-r--r--modules/darwin/homebrew.nix112
-rw-r--r--modules/home/git.nix1
3 files changed, 119 insertions, 108 deletions
diff --git a/modules/darwin/default.nix b/modules/darwin/default.nix
index 5b487ef..26201a1 100644
--- a/modules/darwin/default.nix
+++ b/modules/darwin/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, ... }:
+{ pkgs, lib, ... }:
{
imports = [
@@ -29,8 +29,118 @@
# Core system packages available to all users
environment.systemPackages = with pkgs; [
+ # GUI apps
+ # Pin a newer release; the version in nixpkgs has a dead download URL.
+ (whatsapp-for-mac.overrideAttrs (old: {
+ version = "2.26.23.21";
+ src = old.src.overrideAttrs (_: {
+ outputHash = "sha256-1nVO9KaDC6aVnDc3T4CNVghVQcNuzPajMjD2GjNB0mA=";
+ });
+ }))
+
+ # Editors and terminal multiplexers
+ neovim
+ tmux
+
+ # Shells and shell utilities
+ zsh
+ bash
+ ghq
+ moreutils
+
+ # GNU tools
+ findutils
+ gnused
+ gnugrep
+
+ # Networking tools
curl
- git
+ nmap
wget
+ cloudflared
+
+ # Compression libraries and tools
+ lz4
+ zlib
+ zstd
+ libffi
+ p7zip
+ pigz
+
+ # Programming languages and runtimes
+ golangci-lint
+ zig
+ typst
+ rustup
+
+ # JavaScript runtimes and package managers
+ bun
+ pnpm
+ deno
+
+ # Version control
+ git
+ git-lfs
+ delta
+ lazygit
+
+ # Search tools
+ ripgrep
+ fzf
+
+ # JSON/YAML processing tools
+ jq
+ yq-go
+
+ # Protobuf and gRPC
+ protobuf
+ protoc-gen-go
+ protoc-gen-go-grpc
+
+ # Cloud and IaC tools
+ pulumi
+ pulumictl
+ kubectl
+ kubernetes-helm
+ cilium-cli
+ doctl
+ flyctl
+ talosctl
+ tektoncd-cli
+ runpodctl
+
+ # Task runners and automation
+ act
+
+ # Databases and database tools
+ turso
+ libpq
+ sqlc
+
+ # Terminal tools
+ pv
+ rename
+ tree
+ tldr
+ starship
+ gh
+ htop
+
+ # HTTP and web servers
+ caddy
+ goreleaser
+
+ # Document and media tools
+ pandoc
+ ffmpeg
+ tesseract
+ ghostscript
+ graphviz
+
+ # Python tools
+ pipx
+
+ # Specific toolsets
+ rclone
];
}
diff --git a/modules/darwin/homebrew.nix b/modules/darwin/homebrew.nix
index f52a472..9c279ef 100644
--- a/modules/darwin/homebrew.nix
+++ b/modules/darwin/homebrew.nix
@@ -11,87 +11,21 @@
};
taps = [
- "oven-sh/bun"
- "pulumi/tap"
- "tursodatabase/tap"
"simenandre/tools"
"anomalyco/tap"
- "siderolabs/tap"
];
+ # Note: most CLI tools live in nixpkgs (modules/darwin/default.nix).
+ # These stay in brew on purpose: shell completions, the macOS container
+ # stack, system ssh, and the Mac App Store CLI.
brews = [
- # Editors and terminal multiplexers
- "neovim"
- "tmux"
-
- # Shells and shell utilities
- "zsh"
- "bash"
+ # Shell completions
"bash-completion"
- "ghq"
- "moreutils"
-
- # GNU tools
- "findutils"
- "gnu-sed"
- "grep"
- # Networking tools
+ # System ssh
"openssh"
- "nmap"
- "wget"
- "cloudflared"
-
- # Compression libraries and tools
- "lz4"
- "zlib"
- "zstd"
- "libffi"
- "p7zip"
- "pigz"
-
- # Programming languages and runtimes
- "golangci-lint"
- "zig"
- "typst"
- "rustup"
-
- # JavaScript runtimes and package managers
- "bun"
- "pnpm"
- "deno"
-
- # Version control
- "git"
- "git-lfs"
- "git-delta"
- "lazygit"
-
- # Search tools
- "ripgrep"
- "fzf"
-
- # JSON/YAML processing tools
- "jq"
- "yq"
- # Protobuf and gRPC
- "protobuf"
- "protoc-gen-go"
- "protoc-gen-go-grpc"
-
- # Cloud and IaC tools
- "pulumi"
- "pulumictl"
- "kubectl"
- "helm"
- "cilium-cli"
- "doctl"
- "flyctl"
- "talosctl"
- "tektoncd-cli"
- "runpodctl"
- # Container tools
+ # Container tools (kept in brew for reliable macOS runtime)
"docker"
"docker-buildx"
"docker-compose"
@@ -100,40 +34,6 @@
"podman"
"podman-compose"
- # Task runners and automation
- "act"
-
- # Databases and database tools
- "turso"
- "libpq"
- "sqlc"
-
- # Terminal tools
- "pv"
- "rename"
- "tree"
- "tldr"
- "starship"
- "gh"
- "htop"
-
- # HTTP and web servers
- "caddy"
- "goreleaser"
-
- # Document and media tools
- "pandoc"
- "ffmpeg"
- "tesseract"
- "ghostscript"
- "graphviz"
-
- # Python tools
- "pipx"
-
- # Specific toolsets
- "rclone"
-
# Mac App Store CLI
"mas"
];
diff --git a/modules/home/git.nix b/modules/home/git.nix
index 85665ab..bfd0b40 100644
--- a/modules/home/git.nix
+++ b/modules/home/git.nix
@@ -50,6 +50,7 @@
gpg.format = "ssh";
"gpg \"ssh\"".program = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign";
"url \"ssh://git@github.com/\"".insteadOf = "https://github.com/";
+ "url \"ssh://git@codeberg.org/\"".insteadOf = "https://codeberg.org/";
commit.gpgsign = true;
} else {});
};