# HakaseOS A modular, flake-based NixOS configuration for a single host (`hakase`). Heavily inspired by [OmarchyOS](https://omarchy.org/). ## Features - **Hyprland** compositor with UWSM (systemd session management) - **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 - **Vim keybindings** throughout the system - **SOPS** for encrypted secrets management - **CachyOS kernel** via chaotic-nyx for performance optimizations ## 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 # Flake inputs and NixOS configuration ├── config.nix # Central configuration values ├── hosts/ │ └── hakase/ # Host-specific configuration ├── modules/ │ ├── nixos/ # System-level modules (boot, kernel, services) │ └── home/ # Home Manager modules ├── 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 ```bash sudo nixos-rebuild switch --flake ~/.config/nixos/#hakase ``` Or use the configured alias: ```bash update ``` ### 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`: - `myConfig.nixos` - System settings (username, hostname, timezone) - `myConfig.git` - Git configuration - `myConfig.terminal` - Default terminal and aliases - `myConfig.hyprland` - Monitor configuration and wallpaper - `myConfig.firefox` - Bookmarks and new tab settings ## Flake Inputs | Input | Description | |-------|-------------| | nixpkgs | NixOS unstable | | home-manager | User environment management | | hyprland | Wayland compositor | | chaotic | CachyOS kernel and packages | | 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.