Initial commit: Nomarchy NixOS configuration
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>
This commit is contained in:
154
docs/CUSTOMIZATION.md
Normal file
154
docs/CUSTOMIZATION.md
Normal file
@@ -0,0 +1,154 @@
|
||||
# Customization Guide
|
||||
|
||||
## Configuration File
|
||||
|
||||
Your configuration lives in `~/.config/nomarchy/config.nix`:
|
||||
|
||||
```nix
|
||||
{
|
||||
# User settings
|
||||
username = "yourname";
|
||||
hostname = "yourhostname";
|
||||
timezone = "America/New_York";
|
||||
locale = "en_US.UTF-8";
|
||||
|
||||
# Keyboard (supports multiple layouts)
|
||||
keyboardLayouts = ["us" "gr"];
|
||||
keyboardVariants = ["" "polytonic"];
|
||||
|
||||
# Location for night light
|
||||
location = {
|
||||
lat = 40.7;
|
||||
lon = -74.0;
|
||||
};
|
||||
|
||||
# Features
|
||||
enableSyncthing = true;
|
||||
enableMullvad = false;
|
||||
enablePrinting = true;
|
||||
enableBluetooth = true;
|
||||
|
||||
# Performance (security tradeoff!)
|
||||
enableMitigationsOff = false;
|
||||
|
||||
# Theme
|
||||
theme = "classical";
|
||||
}
|
||||
```
|
||||
|
||||
## Adding Custom Modules
|
||||
|
||||
Create a module in `~/.config/nomarchy/`:
|
||||
|
||||
```nix
|
||||
# ~/.config/nomarchy/custom.nix
|
||||
{ config, pkgs, ... }: {
|
||||
# System packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
discord
|
||||
spotify
|
||||
];
|
||||
|
||||
# Services
|
||||
services.docker.enable = true;
|
||||
|
||||
# User groups
|
||||
users.users.${config.nomarchy.username}.extraGroups = ["docker"];
|
||||
}
|
||||
```
|
||||
|
||||
Add it to your flake:
|
||||
|
||||
```nix
|
||||
extraModules = [
|
||||
./custom.nix
|
||||
];
|
||||
```
|
||||
|
||||
## Wallpapers
|
||||
|
||||
1. Copy images to `~/.config/nomarchy/wallpapers/`
|
||||
2. Supported formats: `.jpg`, `.png`
|
||||
3. Wallpapers rotate every 5 minutes automatically
|
||||
4. Use Quick Actions (`Super + /`) → "Change Wallpaper" for immediate change
|
||||
|
||||
## Theme Colors
|
||||
|
||||
The classical theme colors are defined in the theme module. To override colors in your waybar or rofi, you can create custom CSS files.
|
||||
|
||||
### Color Palette
|
||||
|
||||
| Name | Hex | Usage |
|
||||
|------|-----|-------|
|
||||
| bg.primary | `#1a1611` | Main background |
|
||||
| bg.secondary | `#2d2620` | Panels, inputs |
|
||||
| fg.primary | `#d4c4a8` | Main text |
|
||||
| accent.gold | `#d4a857` | Primary accent |
|
||||
| accent.terracotta | `#c67b5c` | Secondary accent |
|
||||
| status.success | `#8a9a5b` | Success states |
|
||||
| status.error | `#a63d40` | Error states |
|
||||
|
||||
## Shell Aliases
|
||||
|
||||
Default aliases (in `~/.zshrc` via home-manager):
|
||||
|
||||
```bash
|
||||
ls → eza --icons
|
||||
ll → eza -l --icons
|
||||
la → eza -la --icons
|
||||
update → sudo nixos-rebuild switch --flake ~/.config/nomarchy#
|
||||
gc → sudo nix-collect-garbage -d
|
||||
du → dust
|
||||
```
|
||||
|
||||
## Neovim
|
||||
|
||||
The default Neovim configuration includes:
|
||||
- LSP support for Nix, Lua, TypeScript, Rust, Go, Python, Markdown
|
||||
- Telescope for fuzzy finding
|
||||
- Treesitter for syntax highlighting
|
||||
- Git integration with gitsigns
|
||||
|
||||
To customize, create `~/.config/nvim/lua/custom/init.lua` (loaded after main config).
|
||||
|
||||
## Terminal (Ghostty)
|
||||
|
||||
Customize in `~/.config/ghostty/config`:
|
||||
|
||||
```
|
||||
font-size = 16
|
||||
background-opacity = 0.9
|
||||
```
|
||||
|
||||
## Hyprland
|
||||
|
||||
For advanced Hyprland customization, you can add settings via home-manager:
|
||||
|
||||
```nix
|
||||
# In your custom module
|
||||
{ config, ... }: {
|
||||
home-manager.users.${config.nomarchy.username} = {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
# Add your custom settings here
|
||||
windowrulev2 = [
|
||||
"float,class:^(pavucontrol)$"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## Rebuilding
|
||||
|
||||
After making changes:
|
||||
|
||||
```bash
|
||||
cd ~/.config/nomarchy
|
||||
sudo nixos-rebuild switch --flake .#yourhostname
|
||||
```
|
||||
|
||||
Or use the alias:
|
||||
|
||||
```bash
|
||||
update
|
||||
```
|
||||
92
docs/KEYBINDINGS.md
Normal file
92
docs/KEYBINDINGS.md
Normal file
@@ -0,0 +1,92 @@
|
||||
# Nomarchy Keybindings
|
||||
|
||||
## Window Management
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Super + Q` | Open terminal (Ghostty) |
|
||||
| `Super + W` | Close active window |
|
||||
| `Super + M` | Exit Hyprland |
|
||||
| `Super + F` | Toggle fullscreen (windowed) |
|
||||
| `Super + Shift + F` | Toggle fullscreen (standalone) |
|
||||
| `Super + V` | Toggle floating |
|
||||
| `Super + P` | Pseudo tile |
|
||||
| `Super + J` | Toggle split direction |
|
||||
|
||||
## Focus & Movement
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Super + Left/Right/Up/Down` | Move focus |
|
||||
| `Super + 1-9, 0` | Switch to workspace 1-10 |
|
||||
| `Super + Shift + 1-9, 0` | Move window to workspace 1-10 |
|
||||
| `Super + S` | Toggle scratchpad |
|
||||
| `Super + Shift + S` | Move window to scratchpad |
|
||||
| `Super + Mouse Wheel` | Scroll through workspaces |
|
||||
|
||||
## Mouse Bindings
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Super + Left Click + Drag` | Move window |
|
||||
| `Super + Right Click + Drag` | Resize window |
|
||||
|
||||
## Applications
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Super + R` | Open app launcher (Rofi) |
|
||||
| `Super + E` | Open file manager (Dolphin) |
|
||||
| `Super + B` | Open browser (Firefox) |
|
||||
|
||||
## Quick Actions
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Super + /` or `Super + Space` | Quick Actions menu |
|
||||
| `Super + Escape` | Power menu |
|
||||
| `Super + A` | Notification center |
|
||||
|
||||
## Screenshots & Recording
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Print` | Screenshot to clipboard |
|
||||
| `Super + Print` | Screenshot region (with Satty editor) |
|
||||
| `Super + Shift + Print` | Screenshot region to clipboard |
|
||||
| `Super + Alt + Print` | Screenshot active window |
|
||||
| `Super + Shift + R` | Toggle screen recording |
|
||||
|
||||
## Media & Brightness
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `XF86AudioRaiseVolume` | Volume +5% |
|
||||
| `XF86AudioLowerVolume` | Volume -5% |
|
||||
| `XF86AudioMute` | Toggle mute |
|
||||
| `XF86AudioMicMute` | Toggle mic mute |
|
||||
| `XF86MonBrightnessUp` | Brightness +10% |
|
||||
| `XF86MonBrightnessDown` | Brightness -10% |
|
||||
| `XF86AudioNext/Prev/Play` | Media controls |
|
||||
|
||||
## Keyboard Layout
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Right Alt` | Switch keyboard layout |
|
||||
|
||||
## Quick Actions Menu Options
|
||||
|
||||
The Quick Actions menu (`Super + /`) provides access to:
|
||||
|
||||
- Screenshot Region
|
||||
- Screenshot Window
|
||||
- Record Screen
|
||||
- Clipboard History
|
||||
- Share WiFi (QR Code)
|
||||
- Change Wallpaper
|
||||
- Color Picker
|
||||
- Notifications
|
||||
- System Settings
|
||||
- Keybindings Help
|
||||
- Lock/Logout/Reboot/Shutdown
|
||||
Reference in New Issue
Block a user