# Home Manager Nix Configuration This repository contains a Nix flake configuration for setting up a development environment with: ## Supported Platforms - Windows via WSL - Linux (non-NixOS) - macOS with M1 chips ## Installed Tools - **tmux** - Terminal multiplexer (using jakehamilton/tmux package) - **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 ## Programming Languages & Language Servers - **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** - For container management - **Docker Compose** - For multi-container applications ## Usage To use this configuration with Home Manager: 1. Make sure you have Nix installed 2. Run `home-manager switch` to apply the configuration The configuration will set up: - Default shell to zsh - Editor to helix - Prompt to use starship - Terminal to use alacritty - All language servers properly configured - Docker support for containerized development ## Customization To enable additional programming languages: 1. Edit `home-manager/home.nix` 2. Change `enable = false;` to `enable = true;` for desired languages 3. Run `home-manager switch` to apply changes Example: ```nix rust = { enable = true; package = pkgs.rustc; languageServer = pkgs.rust-analyzer; lspName = "rust-analyzer"; }; ``` ## Available Optional Languages - Rust: For systems programming - Python: For data science and scripting - JavaScript/TypeScript: For web development - Go: For backend services - Java: For enterprise applications ## Development Features ### Docker Integration Docker client and compose support are included for containerized development workflows. ### Language Server Protocol All supported languages include their respective language servers for enhanced IDE-like experience in Helix. ### System Monitoring htop is included for process monitoring and system resource tracking. ### tmux Integration Uses the tmux package from jakehamilton/tmux repository for enhanced tmux functionality.