more stuff
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user