docs: home/

This commit is contained in:
Ryan Yin
2025-08-21 15:59:43 +08:00
parent 76ca2dbb65
commit 497823f9a3
5 changed files with 181 additions and 30 deletions
+64 -3
View File
@@ -1,5 +1,66 @@
# Home Manager's Base Submodules # Home Manager's Base Submodules
1. `server`: Configuration which is suitable for both servers and desktops. This directory contains cross-platform base configurations that are shared between Linux and Darwin
1. `desktop`: Configuration for desktop environments, such as Hyprland, I3, etc. systems.
1. `core.nix`: Minimal home-manager's config
## Configuration Structure
### Core System
- **core/**: Essential cross-platform configurations
- **core.nix**: Minimal home-manager configuration
- **shells/**: Shell configurations (bash, zsh, fish, nu)
- **editors/**: Text editor configurations
- **neovim/**: Neovim with custom plugins and settings
- **helix/**: Helix editor configuration
- **btop.nix**: System monitoring tools
- **git.nix**: Git configuration and aliases
- **npm.nix**: Node.js package management
- **pip.nix**: Python package management
- **starship.nix**: Cross-shell prompt configuration
- **theme.nix**: Color schemes and theming
- **yazi.nix**: Terminal file manager configuration
- **zellij/**: Terminal multiplexer with custom layouts
### Desktop Environment
- **gui/**: Cross-platform GUI applications and configurations
- **dev-tools.nix**: Development tools and IDEs
- **media.nix**: Media players and utilities
- **terminal/**: Terminal emulator configurations
- **alacritty/**: Alacritty terminal
- **kitty/**: Kitty terminal
- **foot/**: Foot terminal (Linux)
- **ghostty/**: Ghostty terminal
### Terminal Interface
- **tui/**: Terminal-based interface configurations
- **cloud/**: Cloud development tools (Terraform, etc.)
- **container.nix**: Container tools (Docker, Podman)
- **dev-tools.nix**: Terminal-based development tools
- **editors/**: Terminal editor configurations
- **encryption/**: Encryption and security tools
- **gpg/**: GPG key management
- **password-store/**: Password management with pass
- **shell.nix**: Shell environment configurations
- **ssh/**: SSH configuration and management
- **zellij/**: Terminal workspace management
### System Management
- **home.nix**: Main home manager configuration file
## Platform Compatibility
All configurations in this directory are designed to work across:
- **Linux**: All distributions with Nix and Home Manager
- **macOS**: Darwin systems with Home Manager
- **WSL**: Windows Subsystem for Linux
## Usage
These base configurations provide the foundation for both Linux and Darwin systems, ensuring
consistent environments across different platforms while allowing for platform-specific
customizations.
+8 -1
View File
@@ -1,3 +1,10 @@
# Editors # Editors
See [desktop/editors/](../../desktop/editors/) for more details. This directory contains editor configurations that are shared across different environments.
## Available Editors
- **neovim/**: Neovim configuration with AstroNvim
- **helix/**: Helix editor configuration
These configurations are designed to work across both terminal and GUI environments.
+31 -4
View File
@@ -1,6 +1,33 @@
# Home Manager's Darwin Submodules # Home Manager's Darwin Submodules
1. `core.nix`: some basic configuration. This directory contains macOS-specific Home Manager configurations for Darwin systems.
2. `shell.nix`: shell related.
3. `rime-squirrel.nix`: [rime-squirrel](https://github.com/rime/squirrel)'s configuration. ## Configuration Modules
4. `default.nix`: the entrypoint of darwin's configuration, it import all the submodules above.
### Core Configurations
- **default.nix**: Entry point that imports all Darwin configurations
- **shell.nix**: Shell configurations and environment settings
- **rime-squirrel.nix**: [Rime Squirrel](https://github.com/rime/squirrel) input method
configuration
### Window Management
- **aerospace/**: [Aerospace](https://github.com/nikitabobko/AeroSpace) tiling window manager
configuration
- Custom keybindings and workspace management
- Application-specific window rules
### Network Configuration
- **proxy/**: Network proxy configurations
- `proxychains.conf`: Proxy chains configuration for network routing
- Proxy settings for development tools and applications
## Features
- macOS-specific package installations and configurations
- Native macOS applications and utilities
- Touch ID and system integration
- Homebrew integration for additional packages
- macOS-specific shell configurations and aliases
+32 -8
View File
@@ -1,10 +1,34 @@
# Home Manager's Linux Submodules # Home Manager's Linux Submodules
1. `base`: The base module that is suitable for any NixOS environment. This directory contains Linux-specific Home Manager configurations organized for different use
2. `desktop`: Configuration for desktop environments, such as Hyprland, I3, etc. cases.
3. `server.nix`: Configuration which is suitable for both servers and desktops. It import only
`base` as its submodule. ## Configuration Modules
1. used by all my nixos servers.
4. `desktop.nix`: the entrypoint of desktop's configuration, it import both `base` and `desktop` as ### Core Configurations
its submodules.
1. used by all my nixos desktops. - **core.nix**: Essential Linux-specific configurations and settings
- **base/**: Base Linux configurations including shell, tools, and utilities
- `shell.nix`: Shell configurations and aliases
- `tools.nix`: Essential command-line tools and utilities
### Desktop Configurations
- **gui/**: Desktop environment configurations
- **hyprland/**: Hyprland window manager with custom keybindings and settings
- **niri/**: Niri compositor configuration
- **base/**: Common desktop applications and services
- **editors/**: Text editor configurations for desktop environments
### Available Entry Points
- **core.nix**: Core Linux configuration, suitable for basic setups
- **tui.nix**: Terminal-based interface configuration for lightweight environments
- **gui.nix**: Graphical user interface configuration entry point, imports desktop environments
## Usage
- **Lightweight/Terminal**: Use `core.nix` or `tui.nix` for terminal-focused setups
- **Desktops**: Use `gui.nix` for full desktop environments with window managers like Hyprland or
Niri
- **Custom**: Mix and match configurations as needed for your specific use case
+47 -15
View File
@@ -1,17 +1,49 @@
# Desktop Related # Desktop Environment Configurations
3. `base`: all common configurations for all desktops. This directory contains desktop environment and window manager configurations managed by Home
4. `hyprland`: Hyprland's configuration.
## Why install I3/Hyprland in Home Manager instead of a NixOS Module?
1. I3 & Hyprland's configuration file is located in `~/.config`, which can be easily managed by Home
Manager. Manager.
2. I have many user-specific systemd services, such gammastep, wallpaper-switcher, etc. Which can be
easily managed by Home Manager, but if we add i3/hyprland in a NixOS Module, those user-level ## Available Configurations
services may failed to start automatically. With i3/hyprland in a Home Manager Module, we can
control their systemd service's dependent order more easily, so we can avoid issues like this. ### Window Managers
3. By install packages as less as possible in NixOS Module, we can:
1. Make the NixOS system more secure and stable. - **hyprland**: Hyprland compositor configuration with custom keybindings, settings, and window
2. Make this flake more portable to other non-NixOS systems, as home-manager can be installed on rules
any Linux system. - **niri**: Niri compositor configuration with custom settings, keybindings, spawn-at-startup rules,
and window rules
### Base Desktop Environment
- **base**: Common desktop configurations shared across all environments, including:
- Desktop applications (anyrun, mako, waybar, wlogout)
- Creative tools and media applications
- Development tools
- Eye protection utilities (gammastep)
- Fcitx5 input method framework
- Games and gaming utilities
- GTK theme configurations
- Immutable file handling
- Note-taking applications
- Wallpaper management with auto-switcher
- Wayland applications
- XDG desktop configurations
### Editor Configurations
- **editors**: Text editor configurations and integrations
## Why install Desktop Environments in Home Manager instead of NixOS Module?
1. **Configuration Location**: Desktop environment configuration files are located in `~/.config`,
which can be easily managed by Home Manager.
2. **User-specific Services**: Many user-specific systemd services (gammastep, wallpaper-switcher,
etc.) can be easily managed by Home Manager. If desktop environments were configured via NixOS
Module, these user-level services might fail to start automatically. With Home Manager modules,
we can control systemd service dependency order more effectively.
3. **System Benefits**: By minimizing package installation through NixOS Module:
- Makes the NixOS system more secure and stable
- Increases portability to non-NixOS systems, as Home Manager can be installed on any Linux
system
- Allows for easier switching between different window managers without system-level changes