An opinionated NixOS configuration with Hyprland, featuring: - Modular flake-based architecture - Parameterized user configuration (username, timezone, locale, etc.) - Classical/antiquity theme with Thomas Cole wallpapers - Full Hyprland setup with waybar, rofi, swaync - Custom utility scripts (screenshots, screen recording, WiFi QR) - Neovim with LSP support - Interactive installer for existing NixOS systems - ISO builder for fresh installations Flake outputs: - nixosConfigurations.example - Test configuration - nixosConfigurations.installer - ISO installer - packages.iso - Bootable ISO image - apps.default - Interactive installer - lib.mkHost - Host builder function - templates.default - Starter template Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
116 lines
2.8 KiB
Markdown
116 lines
2.8 KiB
Markdown
# Nomarchy
|
|
|
|
An opinionated NixOS configuration featuring Hyprland, designed for developers who want a beautiful, functional, and reproducible desktop environment.
|
|
|
|
## Quick Start
|
|
|
|
### For Existing NixOS Systems
|
|
|
|
```bash
|
|
nix run github:blu/nomarchy
|
|
```
|
|
|
|
This launches an interactive installer that:
|
|
1. Prompts for your username, timezone, keyboard layout, etc.
|
|
2. Generates a configuration in `~/.config/nomarchy/`
|
|
3. Applies the configuration to your system
|
|
|
|
### From ISO (Coming Soon)
|
|
|
|
Download the ISO from the releases page and boot from it for a fresh installation with LUKS encryption.
|
|
|
|
## Features
|
|
|
|
- **Hyprland** - Modern Wayland compositor with smooth animations
|
|
- **Waybar** - Customizable status bar
|
|
- **Rofi** - Application launcher and quick actions
|
|
- **SwayNC** - Notification center
|
|
- **Neovim** - Fully configured with LSP support
|
|
- **Classical Theme** - Earthy, vintage aesthetic inspired by historical paintings
|
|
|
|
## Keybindings
|
|
|
|
| Key | Action |
|
|
|-----|--------|
|
|
| `Super + Q` | Terminal |
|
|
| `Super + R` | App Launcher |
|
|
| `Super + E` | File Manager |
|
|
| `Super + B` | Browser |
|
|
| `Super + W` | Close Window |
|
|
| `Super + F` | Fullscreen |
|
|
| `Super + V` | Toggle Float |
|
|
| `Super + /` | Quick Actions |
|
|
| `Super + A` | Notifications |
|
|
| `Super + Escape` | Power Menu |
|
|
| `Super + 1-9` | Workspaces |
|
|
| `Print` | Screenshot |
|
|
| `Super + Shift + R` | Record Screen |
|
|
|
|
## Customization
|
|
|
|
### Changing Theme
|
|
|
|
Edit `~/.config/nomarchy/config.nix`:
|
|
|
|
```nix
|
|
{
|
|
theme = "classical"; # Currently the only theme, more coming soon
|
|
}
|
|
```
|
|
|
|
### Adding Packages
|
|
|
|
Create a custom module:
|
|
|
|
```nix
|
|
# ~/.config/nomarchy/my-packages.nix
|
|
{ pkgs, ... }: {
|
|
environment.systemPackages = with pkgs; [
|
|
my-package
|
|
];
|
|
}
|
|
```
|
|
|
|
Add it to your flake:
|
|
|
|
```nix
|
|
extraModules = [
|
|
./my-packages.nix
|
|
];
|
|
```
|
|
|
|
### Wallpapers
|
|
|
|
Copy your wallpapers to `~/.config/nomarchy/wallpapers/` and they'll be used for the random rotation.
|
|
|
|
## Structure
|
|
|
|
```
|
|
nomarchy/
|
|
├── flake.nix # Main flake
|
|
├── lib/ # Helper functions
|
|
├── modules/
|
|
│ ├── core/ # Boot, networking, hardware
|
|
│ ├── desktop/ # Hyprland, display manager
|
|
│ ├── services/ # Syncthing, printing, VPN
|
|
│ ├── programs/ # System packages
|
|
│ ├── performance/ # Optimizations
|
|
│ └── home/ # Home-manager configs
|
|
├── themes/
|
|
│ └── classical/ # Default theme
|
|
├── installer/ # Installation scripts
|
|
└── iso/ # ISO builder
|
|
```
|
|
|
|
## Security Note
|
|
|
|
The `enableMitigationsOff` option disables CPU vulnerability mitigations (Spectre, Meltdown, etc.) for improved performance. This is **disabled by default** and should only be enabled if you understand the security implications.
|
|
|
|
## Credits
|
|
|
|
Inspired by [Omarchy](https://github.com/basecamp/omarchy) and the NixOS community.
|
|
|
|
## License
|
|
|
|
MIT
|