# 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 ![Display overview](assets/example/desktop_display.png) ![Terminal windows](assets/example/desktop_terminals.png) ![Lockscreen](assets/example/lockscreen.png) ![Desktop Music](assets/example/desktop_music.png) ![Desktop with Hakase](assets/example/desktop_hakase.png) ## 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.