88 lines
2.6 KiB
Markdown
88 lines
2.6 KiB
Markdown
# 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.
|
|
a) Run `home-manager switch` to apply the configuration
|
|
b) Run with `nix run nixpkgs#home-manager -- switch --flake https://gitea.tylerbohrer.dev/tyler/my-default-nix-home`
|
|
|
|
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.
|