166 lines
3.1 KiB
Nix
166 lines
3.1 KiB
Nix
{
|
|
description = "dart — system configuration via nix-darwin";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
|
|
nix-darwin = {
|
|
url = "github:LnL7/nix-darwin";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
rust-overlay = {
|
|
url = "github:oxalica/rust-overlay";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = { self, nixpkgs, nix-darwin, rust-overlay }:
|
|
let
|
|
system = "aarch64-darwin";
|
|
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
overlays = [ rust-overlay.overlays.default ];
|
|
config.allowUnfree = true;
|
|
};
|
|
|
|
rustToolchain = pkgs.rust-bin.stable.latest.default.override {
|
|
extensions = [ "rust-src" "rust-analyzer" ];
|
|
targets = [ "aarch64-apple-darwin" ];
|
|
};
|
|
|
|
# CLI
|
|
cliTools = with pkgs; [
|
|
# Editors
|
|
helix
|
|
micro
|
|
lazygit
|
|
ripgrep
|
|
|
|
# Build/dev tools
|
|
fnm
|
|
cmake
|
|
ninja
|
|
gradle
|
|
|
|
# Network
|
|
netcat-gnu
|
|
|
|
# Misc
|
|
bitwarden-cli
|
|
pwgen
|
|
qrencode
|
|
sl
|
|
upx
|
|
wakeonlan
|
|
magic-wormhole
|
|
httpie
|
|
gh
|
|
doctl
|
|
qemu
|
|
];
|
|
|
|
# Languages
|
|
languages = with pkgs; [
|
|
rustToolchain
|
|
python313
|
|
openjdk
|
|
openjdk17
|
|
lua
|
|
luajit
|
|
perl
|
|
ruby
|
|
go
|
|
];
|
|
|
|
# Media
|
|
media = with pkgs; [
|
|
ffmpeg
|
|
tesseract
|
|
tectonic
|
|
];
|
|
|
|
# Security
|
|
security = with pkgs; [
|
|
nmap
|
|
nikto
|
|
thc-hydra
|
|
john
|
|
exploitdb
|
|
rustscan
|
|
recon-ng
|
|
vectorscan
|
|
];
|
|
|
|
# Networking
|
|
networking = with pkgs; [
|
|
freerdp
|
|
openmpi
|
|
];
|
|
|
|
allPackages =
|
|
cliTools
|
|
++ languages
|
|
++ media
|
|
++ security
|
|
++ networking;
|
|
|
|
in
|
|
{
|
|
darwinConfigurations."dart" = nix-darwin.lib.darwinSystem {
|
|
inherit system;
|
|
modules = [
|
|
{
|
|
nix.settings = {
|
|
experimental-features = [ "nix-command" "flakes" ];
|
|
};
|
|
|
|
nixpkgs = {
|
|
hostPlatform = system;
|
|
config.allowUnfree = true;
|
|
overlays = [ rust-overlay.overlays.default ];
|
|
};
|
|
|
|
environment.systemPackages = allPackages;
|
|
|
|
homebrew = {
|
|
enable = true;
|
|
|
|
onActivation = {
|
|
autoUpdate = true;
|
|
cleanup = "zap";
|
|
};
|
|
|
|
brews = [
|
|
"gamdl"
|
|
"knock"
|
|
"snort"
|
|
];
|
|
|
|
casks = [
|
|
"android-platform-tools"
|
|
"claude-code"
|
|
"flutter"
|
|
"ghostty"
|
|
"librewolf"
|
|
"ngrok"
|
|
"pearcleaner"
|
|
"zulu@17"
|
|
];
|
|
};
|
|
|
|
programs.zsh.enable = true;
|
|
system.stateVersion = 6;
|
|
}
|
|
];
|
|
};
|
|
|
|
devShells.${system} = {
|
|
default = pkgs.mkShell {
|
|
packages = allPackages;
|
|
};
|
|
};
|
|
};
|
|
}
|