# M-Archy Dotfiles

**Arch Linux · Wayland · CyberQueer**

A production-grade Arch Linux configuration for network administration, development, and gaming — built around Wayland compositors (HyprLua and Niri) and the CyberQueer colour theme.

---

## What's Inside

| Area | Description |
|------|-------------|
| [Installation](installation.md) | Interactive TUI installer, answerfile automation, ISO building |
| [Theming](theming.md) | CyberQueer colour system and `apply-theme.sh` |
| [Hyprland](hyprland.md) | HyprLua desktop environment — keybindings, bars, launchers |
| [Niri](niri.md) | Niri scrollable-tiling compositor — config, keybindings, tools |
| [Modules](modules.md) | Core modules and full optional-app catalogue |
| [Archiso](archiso.md) | Building the custom live installer ISO |
| [ansipa Setup Guide](ansipa-setup.md) | Full deployment: ports, nginx portal + reverse proxy, NAT, enrollment |
| [ansipa Administration](ansipa-administration.md) | Day-to-day operation: the full policy catalogue + recipes |
| [FreeIPA & Ansible](freeipa-ansible.md) | Identity management and automated config deployment |
| [Editors](editors.md) | Neovim, Micro, Yazi |
| [Utilities](utilities.md) | Encryption helpers, ClamAV, credentials, update scripts |

---

## Quick Start

```bash
# 1 — clone
git clone https://git.abdelbaki.eu/The_miro/Dotfiles.git ~/Dotfiles

# 2 — run the interactive installer
bash ~/Dotfiles/setup/tui-install.sh

# 3 — optionally apply a custom colour palette
nano ~/Dotfiles/colors.conf
bash ~/Dotfiles/apply-theme.sh
```

For a fully automated install from a live USB, see [Archiso](archiso.md).

---

## CyberQueer Colour Palette

| Role | Name | Hex |
|------|------|-----|
| Background | Dark grey | `#1A1A1A` |
| Text | Rose white | `#D6ABAB` |
| Primary accent | Hot pink | `#E40046` |
| Secondary accent | Electric violet | `#5018DD` |
| Danger / alerts | Red | `#F50505` |

---

## Repository Layout

```
Dotfiles/
├── apply-theme.sh          # Propagate colours across all configs
├── colors.conf             # Single source of truth for the palette
├── update.sh               # pacman + yay full system update
├── setup/
│   ├── tui-install.sh      # Main interactive / answerfile installer
│   ├── arch-autoinstall.sh     # Automated base OS installer
│   ├── archbaseos-guided-install.sh  # Guided base OS installer
│   ├── install-modules.sh  # Add optional modules to existing system
│   ├── archiso/overlay/    # Custom Arch live ISO profile overlay
│   ├── tools/              # Build & deploy tooling:
│   │   ├── build.sh            #   build the live installer ISO + netboot
│   │   ├── wds-deploy.sh       #   package netboot artifacts for WDS/PXE
│   │   ├── write-usb.sh        #   write the ISO to a USB stick
│   │   ├── generate-answerfile.sh  # dry-run to produce answerfile.json
│   │   ├── proxmox-lxc-gen.sh  #   generic Proxmox LXC container generator (TUI)
│   │   ├── ansipa-proxmox-lxc.sh # pre-configured full ansipa stack as a Proxmox LXC
│   │   └── freeipa-image.sh    #   build the ansipa FreeIPA container image
│   └── modules/            # Modular install scripts
├── desktopenvs/hyprlua/    # HyprLua (Lua-based Hyprland) configs
├── desktopenvs/niri/       # Niri scrollable-tiling compositor configs
├── desktopenvs/hyprland/   # Legacy Hyprlang Hyprland configs
├── gtk-themes/cyberqueer/  # GTK 3 & 4 theme
├── qt-themes/cyberqueer/   # Qt platform theme
├── nvim/                   # Neovim config
├── micro/                  # Micro editor config
├── yazi/                   # Yazi file manager config
├── clamav/                 # ClamAV on-access scan setup
└── docs/                   # This documentation
```
