docs: update README.md to reflect multi-host support and project structure
This commit is contained in:
@@ -1,16 +1,16 @@
|
|||||||
# HakaseOS
|
# HakaseOS
|
||||||
|
|
||||||
A modular, flake-based NixOS configuration for a single host (`hakase`). Heavily inspired by [OmarchyOS](https://omarchy.org/).
|
A modular, flake-based NixOS configuration for my personal devices (`hakase` desktop and `macbook`). Heavily inspired by [OmarchyOS](https://omarchy.org/).
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- **Hyprland** compositor with UWSM (systemd session management)
|
- **Hyprland** compositor with UWSM (systemd session management)
|
||||||
|
- **Multi-Architecture Support**: Runs on x86_64 (Desktop) and aarch64 (Apple Silicon M1/M2)
|
||||||
- **Matugen** for automatic system-wide theming from wallpaper colors
|
- **Matugen** for automatic system-wide theming from wallpaper colors
|
||||||
- **Multi-monitor support** for intuitive desktop management
|
|
||||||
- **Hardened Firefox** with custom bookmarks and new tab page
|
- **Hardened Firefox** with custom bookmarks and new tab page
|
||||||
- **Vim keybindings** throughout the system
|
- **Vim keybindings** throughout the system
|
||||||
- **SOPS** for encrypted secrets management
|
- **SOPS** for encrypted secrets management
|
||||||
- **CachyOS kernel** via chaotic-nyx for performance optimizations
|
- **CachyOS kernel** (Desktop) and **Asahi Linux** (MacBook) support
|
||||||
|
|
||||||
## 🚧 TODO
|
## 🚧 TODO
|
||||||
- LUKS designed
|
- LUKS designed
|
||||||
@@ -24,19 +24,19 @@ A modular, flake-based NixOS configuration for a single host (`hakase`). Heavily
|
|||||||

|

|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Structure
|
## Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
.
|
.
|
||||||
├── flake.nix # Flake inputs and NixOS configuration
|
├── flake.nix # Entry point defining hosts (hakase, macbook)
|
||||||
├── config.nix # Central configuration values
|
├── config.nix # Central configuration values per host
|
||||||
├── hosts/
|
├── hosts/
|
||||||
│ └── hakase/ # Host-specific configuration
|
│ ├── hakase/ # Desktop configuration (x86_64)
|
||||||
|
│ └── macbook/ # Laptop configuration (aarch64, Apple Silicon)
|
||||||
├── modules/
|
├── modules/
|
||||||
│ ├── nixos/ # System-level modules (boot, kernel, services)
|
│ ├── nixos/ # System-level modules (boot, kernel, services)
|
||||||
│ └── home/ # Home Manager modules
|
│ └── home/ # Home Manager modules
|
||||||
|
├── home/ # Host-specific Home Manager entry points
|
||||||
├── apps/ # Per-application configurations
|
├── apps/ # Per-application configurations
|
||||||
│ ├── hyprland/ # Hyprland window manager
|
│ ├── hyprland/ # Hyprland window manager
|
||||||
│ ├── waybar/ # Status bar
|
│ ├── waybar/ # Status bar
|
||||||
@@ -53,14 +53,14 @@ A modular, flake-based NixOS configuration for a single host (`hakase`). Heavily
|
|||||||
|
|
||||||
### Rebuild System
|
### Rebuild System
|
||||||
|
|
||||||
|
**Desktop (Hakase):**
|
||||||
```bash
|
```bash
|
||||||
sudo nixos-rebuild switch --flake ~/.config/nixos/#hakase
|
sudo nixos-rebuild switch --flake ~/.config/nixos/#hakase
|
||||||
```
|
```
|
||||||
|
|
||||||
Or use the configured alias:
|
**MacBook (Asahi):**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
update
|
sudo nixos-rebuild switch --flake ~/.config/nixos/#macbook
|
||||||
```
|
```
|
||||||
|
|
||||||
### Manage Secrets
|
### Manage Secrets
|
||||||
@@ -75,13 +75,11 @@ nix-shell -p sops --run "sops updatekeys secrets/secrets.yaml"
|
|||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
Central configuration values are defined in `config.nix`:
|
Central configuration values are defined in `config.nix`, separated by host:
|
||||||
|
|
||||||
|
- `hakase` / `macbook` keys define host-specific overrides
|
||||||
- `myConfig.nixos` - System settings (username, hostname, timezone)
|
- `myConfig.nixos` - System settings (username, hostname, timezone)
|
||||||
- `myConfig.git` - Git configuration
|
- `myConfig.hyprland` - Monitor configuration (Hz, Resolution) and wallpaper
|
||||||
- `myConfig.terminal` - Default terminal and aliases
|
|
||||||
- `myConfig.hyprland` - Monitor configuration and wallpaper
|
|
||||||
- `myConfig.firefox` - Bookmarks and new tab settings
|
|
||||||
|
|
||||||
## Flake Inputs
|
## Flake Inputs
|
||||||
|
|
||||||
@@ -90,7 +88,8 @@ Central configuration values are defined in `config.nix`:
|
|||||||
| nixpkgs | NixOS unstable |
|
| nixpkgs | NixOS unstable |
|
||||||
| home-manager | User environment management |
|
| home-manager | User environment management |
|
||||||
| hyprland | Wayland compositor |
|
| hyprland | Wayland compositor |
|
||||||
| chaotic | CachyOS kernel and packages |
|
| chaotic | CachyOS kernel and packages (x86 only) |
|
||||||
|
| apple-silicon | Asahi Linux support for NixOS (aarch64 only) |
|
||||||
| sops-nix | Secrets management |
|
| sops-nix | Secrets management |
|
||||||
| nixovim | Neovim configuration |
|
| nixovim | Neovim configuration |
|
||||||
| matugen | System-wide theming |
|
| matugen | System-wide theming |
|
||||||
@@ -99,4 +98,4 @@ Central configuration values are defined in `config.nix`:
|
|||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Personal configuration - use at your own discretion.
|
Personal configuration - use at your own discretion.
|
||||||
Reference in New Issue
Block a user