working almost
This commit is contained in:
@@ -3,41 +3,104 @@
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-23.11";
|
||||
snowfall-lib = {
|
||||
url = "github:snowfallorg/lib";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
tmux-flake = {
|
||||
tmux = {
|
||||
url = "github:jakehamilton/tmux";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, tmux-flake }:
|
||||
let
|
||||
system = "aarch64-darwin";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
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, ... }: {
|
||||
};
|
||||
};
|
||||
in {
|
||||
# Use tmux from jakehamilton/tmux repository
|
||||
homeConfigurations."tylerbohrer" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = pkgs;
|
||||
modules = [
|
||||
({ pkgs, ... }: {
|
||||
# Use the tmux package from jakehamilton/tmux repository
|
||||
programs.tmux.package = tmux-flake.packages.${system}.tmux;
|
||||
|
||||
# Set the required Home Manager options
|
||||
home.username = "tylerbohrer";
|
||||
home.homeDirectory = "/Users/tylerbohrer";
|
||||
home.stateVersion = "23.11";
|
||||
|
||||
# Include all other settings from the original home.nix
|
||||
imports = [ ./home-manager/home.nix ];
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
# Make the packages available in the flake
|
||||
# This is what users will run to build/install homies
|
||||
# nix build .#homies
|
||||
# nix profile install .#homies
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user