diff --git a/home/base/README.md b/home/base/README.md index b420cf92..66e11029 100644 --- a/home/base/README.md +++ b/home/base/README.md @@ -1,5 +1,66 @@ # Home Manager's Base Submodules -1. `server`: Configuration which is suitable for both servers and desktops. -1. `desktop`: Configuration for desktop environments, such as Hyprland, I3, etc. -1. `core.nix`: Minimal home-manager's config +This directory contains cross-platform base configurations that are shared between Linux and Darwin +systems. + +## 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. diff --git a/home/base/core/editors/README.md b/home/base/core/editors/README.md index 8db0eb14..89c028a3 100644 --- a/home/base/core/editors/README.md +++ b/home/base/core/editors/README.md @@ -1,3 +1,10 @@ # 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. diff --git a/home/darwin/README.md b/home/darwin/README.md index 9fc4d1db..dd26f670 100644 --- a/home/darwin/README.md +++ b/home/darwin/README.md @@ -1,6 +1,33 @@ # Home Manager's Darwin Submodules -1. `core.nix`: some basic configuration. -2. `shell.nix`: shell related. -3. `rime-squirrel.nix`: [rime-squirrel](https://github.com/rime/squirrel)'s configuration. -4. `default.nix`: the entrypoint of darwin's configuration, it import all the submodules above. +This directory contains macOS-specific Home Manager configurations for Darwin systems. + +## Configuration Modules + +### 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 diff --git a/home/linux/README.md b/home/linux/README.md index 0a301ab7..a7f87b93 100644 --- a/home/linux/README.md +++ b/home/linux/README.md @@ -1,10 +1,34 @@ # Home Manager's Linux Submodules -1. `base`: The base module that is suitable for any NixOS environment. -2. `desktop`: Configuration for desktop environments, such as Hyprland, I3, etc. -3. `server.nix`: Configuration which is suitable for both servers and desktops. It import only - `base` as its submodule. - 1. used by all my nixos servers. -4. `desktop.nix`: the entrypoint of desktop's configuration, it import both `base` and `desktop` as - its submodules. - 1. used by all my nixos desktops. +This directory contains Linux-specific Home Manager configurations organized for different use +cases. + +## Configuration Modules + +### Core Configurations + +- **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 diff --git a/home/linux/gui/README.md b/home/linux/gui/README.md index 01335ff5..dadad665 100644 --- a/home/linux/gui/README.md +++ b/home/linux/gui/README.md @@ -1,17 +1,49 @@ -# Desktop Related +# Desktop Environment Configurations -3. `base`: all common configurations for all desktops. -4. `hyprland`: Hyprland's configuration. +This directory contains desktop environment and window manager configurations managed by Home +Manager. -## Why install I3/Hyprland in Home Manager instead of a NixOS Module? +## Available Configurations -1. I3 & Hyprland's configuration file is located in `~/.config`, which can be easily managed by Home - 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 - 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. -3. By install packages as less as possible in NixOS Module, we can: - 1. Make the NixOS system more secure and stable. - 2. Make this flake more portable to other non-NixOS systems, as home-manager can be installed on - any Linux system. +### Window Managers + +- **hyprland**: Hyprland compositor configuration with custom keybindings, settings, and window + rules +- **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