Files
Tyler Mac 29644c8d69 working
2026-08-20 17:49:27 -04:00

106 lines
2.9 KiB
Nix

{
description = "My Nix flake for cross-platform development environment";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
snowfall-lib = {
url = "github:snowfallorg/lib";
inputs.nixpkgs.follows = "nixpkgs";
};
tmux = {
url = "github:jakehamilton/tmux";
};
};
outputs = inputs:
inputs.snowfall-lib.mkFlake {
inherit inputs;
src = ./.;
overlays = with inputs; [
tmux.overlay
];
# Build the package set for the homies environment
packages = {
homies = let
pkgs = import inputs.nixpkgs {
system = "aarch64-darwin"; # Default, will be overridden by system-specific builds
};
in
pkgs.buildEnv {
name = "homies";
paths = with pkgs; [
# Core tools
tmux
helix
zsh
git
openssh
# Terminal applications
alacritty
starship
htop
# Docker support
docker-client
docker-compose
# Programming languages and language servers (default always included)
odin
ols # Odin Language Server
harper # Harper Language Server
# Additional dev tools
gcc
gnumake
curl
wget
jq
ripgrep
findutils
# Language support packages (optional ones you can enable conditionally)
rustc # For enabling Rust support
rust-analyzer # For Rust LSP
python3 # For Python support
#python3Packages.pyright # For Python LSP
#nodejs # For JavaScript/TypeScript support
#nodePackages.typescript-language-server # For TS LSP
go # For Go support
gopls # For Go LSP
#openjdk # For Java support
#jdt.ls # For Java LSP
];
};
};
# System-specific configuration
systemConfigs = {
# x86_64-linux system config
"x86_64-linux" = { pkgs, ... }: {
# This is where you'd define system-specific configurations
# But in pure Nix, packages are handled through the packages attribute above
};
# aarch64-linux system config (ARM Mac/Linux)
"aarch64-linux" = { pkgs, ... }: {
};
# darwin (MacOS) system config
"aarch64-darwin" = { pkgs, ... }: {
};
# x86_64-darwin (Intel Mac) system config
"x86_64-darwin" = { pkgs, ... }: {
};
};
# Make the packages available in the flake
# This is what users will run to build/install homies
# nix build .#homies
# nix profile install .#homies
};
}