101 lines
3.3 KiB
Markdown
101 lines
3.3 KiB
Markdown
# HakaseOS
|
|
|
|
A modular, flake-based NixOS configuration for my personal devices (`hakase` desktop and `macbook`). Heavily inspired by [OmarchyOS](https://omarchy.org/).
|
|
|
|
## Features
|
|
|
|
- **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
|
|
- **Hardened Firefox** with custom bookmarks and new tab page
|
|
- **Vim keybindings** throughout the system
|
|
- **SOPS** for encrypted secrets management
|
|
- **CachyOS kernel** (Desktop) and **Asahi Linux** (MacBook) support
|
|
|
|
## 🚧 TODO
|
|
- LUKS designed
|
|
|
|
## Screenshots
|
|
|
|

|
|
|
|

|
|

|
|

|
|

|
|
|
|
## Structure
|
|
|
|
```
|
|
.
|
|
├── flake.nix # Entry point defining hosts (hakase, macbook)
|
|
├── config.nix # Central configuration values per host
|
|
├── hosts/
|
|
│ ├── hakase/ # Desktop configuration (x86_64)
|
|
│ └── macbook/ # Laptop configuration (aarch64, Apple Silicon)
|
|
├── modules/
|
|
│ ├── nixos/ # System-level modules (boot, kernel, services)
|
|
│ └── home/ # Home Manager modules
|
|
├── home/ # Host-specific Home Manager entry points
|
|
├── apps/ # Per-application configurations
|
|
│ ├── hyprland/ # Hyprland window manager
|
|
│ ├── waybar/ # Status bar
|
|
│ ├── firefox/ # Browser configuration
|
|
│ ├── ghostty/ # Terminal emulator
|
|
│ ├── neovim/ # Editor (via nixovim flake)
|
|
│ ├── vicinae/ # Application launcher
|
|
│ └── ... # And many more
|
|
├── secrets/ # SOPS encrypted secrets
|
|
└── assets/ # Wallpapers and other assets
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Rebuild System
|
|
|
|
**Desktop (Hakase):**
|
|
```bash
|
|
sudo nixos-rebuild switch --flake ~/.config/nixos/#hakase
|
|
```
|
|
|
|
**MacBook (Asahi):**
|
|
```bash
|
|
sudo nixos-rebuild switch --flake ~/.config/nixos/#macbook
|
|
```
|
|
|
|
### Manage Secrets
|
|
|
|
```bash
|
|
# Edit secrets
|
|
nix-shell -p sops --run "sops secrets/secrets.yaml"
|
|
|
|
# Update keys
|
|
nix-shell -p sops --run "sops updatekeys secrets/secrets.yaml"
|
|
```
|
|
|
|
## Configuration
|
|
|
|
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.hyprland` - Monitor configuration (Hz, Resolution) and wallpaper
|
|
|
|
## Flake Inputs
|
|
|
|
| Input | Description |
|
|
|-------|-------------|
|
|
| nixpkgs | NixOS unstable |
|
|
| home-manager | User environment management |
|
|
| hyprland | Wayland compositor |
|
|
| chaotic | CachyOS kernel and packages (x86 only) |
|
|
| apple-silicon | Asahi Linux support for NixOS (aarch64 only) |
|
|
| sops-nix | Secrets management |
|
|
| nixovim | Neovim configuration |
|
|
| matugen | System-wide theming |
|
|
| vicinae | Application launcher |
|
|
| textfox | Firefox CSS theme |
|
|
|
|
## License
|
|
|
|
Personal configuration - use at your own discretion. |