Files
my-default-nix-home/flake.nix
T
2026-08-20 08:47:54 -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
tmux.overlays."nixpkgs/plusultra"
];
# Build the package set for the homies environment
packages = {
homies = let
pkgs = import inputs.nixpkgs {
system = "x86_64-linux"; # 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
};
}