# My Nix flake for cross-platform development environment This is a local Nix flake configuration that sets up a development environment with: - **tmux** - Terminal multiplexer (using local nixpkgs tmux package as fallback) - **helix** - Modern editor with language server support - **zsh** - Enhanced shell - **starship** - Minimal, fast prompt - **alacritty** - Fast terminal emulator - **git** - Version control system - **ssh** - Secure shell client - **htop** - Interactive process viewer ## Requirements - Nix installed with flakes enabled - Home Manager installed ## Installation Instructions 1. Make sure you have Nix installed with flakes enabled: ```bash # Enable flakes in nix.conf or use --extra-experimental-features ``` 2. Run: ```bash nix run nixpkgs#home-manager -- switch --flake . ``` ## Platform Support - Windows via WSL - Linux (non-NixOS) - macOS with M1 chips ## Language Support - **Odin** - With OLS (Odin Language Server) - *always included* - **Harper** - With Harper Language Server - *always included* - **Rust** - With rust-analyzer - *optional* - **Python** - With Pyright - *optional* - **JavaScript/TypeScript** - With TypeScript Language Server - *optional* - **Go** - With gopls - *optional* - **Java** - With JDT Language Server - *optional* ## Docker Support - Docker Client - Docker Compose ## Git Configuration - **User Name**: Configurable during setup - **User Email**: Configurable during setup ## Usage Notes This configuration is designed to work with the Home Manager approach. The previous error about archive format occurred because the remote repository wasn't structured properly for use as a Nix flake input. If you want to use the specific tmux package from jakehamilton/tmux, the repository at https://gitea.tylerbohrer.dev/tyler/my-default-nix-home needs to be set up to properly expose the tmux package through its flake structure. The current configuration provides a fallback using the local nixpkgs tmux package to ensure reliability across different environments.