Initial commit
This commit is contained in:
165
flake.nix
Normal file
165
flake.nix
Normal file
@@ -0,0 +1,165 @@
|
||||
{
|
||||
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 = "none";
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user