more stuff

This commit is contained in:
Tyler Mac
2026-08-19 20:01:48 -04:00
parent d5dea98d07
commit cde5644b3e
3 changed files with 143 additions and 94 deletions
+32 -80
View File
@@ -1,14 +1,8 @@
# Home Manager Nix Configuration
# My Nix flake for cross-platform development environment
This repository contains a Nix flake configuration for setting up a development environment with:
This is a local Nix flake configuration that sets 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)
- **tmux** - Terminal multiplexer (using local nixpkgs tmux package as fallback)
- **helix** - Modern editor with language server support
- **zsh** - Enhanced shell
- **starship** - Minimal, fast prompt
@@ -17,90 +11,48 @@ This repository contains a Nix flake configuration for setting up a development
- **ssh** - Secure shell client
- **htop** - Interactive process viewer
## Programming Languages & Language Servers
## 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*
- **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
- Docker Client
- Docker Compose
## Git Configuration
- **User Name**: Configurable during setup
- **User Email**: Configurable during setup
## Usage
## Usage Notes
To use this configuration with Home Manager:
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.
1. Make sure you have Nix installed
2. Clone the repository from your remote source:
```bash
git clone https://gitea.tylerbohrer.dev/tyler/my-default-nix-home.git
```
3. Navigate to the directory:
```bash
cd my-default-nix-home
```
4. Run the Home Manager switch command:
```bash
nix run nixpkgs#home-manager -- switch --flake .
```
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.
Alternatively, you can use the remote repository directly:
```bash
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
- Git user configuration (name and email)
## 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.
The current configuration provides a fallback using the local nixpkgs tmux package to ensure reliability across different environments.