diff --git a/.gitignore b/.gitignore
index 7cb7b59..3ee9c66 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,6 +22,7 @@ yazi/*.toml-*
# Generated files
readme.html
+docs/html/
# Build/image output artifacts
*.iso
diff --git a/docs/html/archiso.html b/docs/html/archiso.html
deleted file mode 100644
index c5d2d7b..0000000
--- a/docs/html/archiso.html
+++ /dev/null
@@ -1,432 +0,0 @@
-
-
-
-
-
- Archiso — Custom Live Installer — M-Archy Dotfiles
-
-
-
-
- ← Index
-
-Archiso — Custom Live Installer¶
-The archiso build system produces a bootable Arch Linux ISO pre-loaded with the M-Archy installer scripts. Optionally, an answerfile can be embedded so the entire install — base OS + dotfiles — runs with zero user interaction.
-
-Prerequisites¶
-sudo pacman -S archiso jq
-
-
-Building the ISO¶
-# Basic build — interactive installer, no answerfile
-bash setup/archiso/build.sh
-
-# Specify output directory
-bash setup/archiso/build.sh /path/to/output
-
-# Embed an answerfile for automated deployment
-bash setup/archiso/build.sh --preconf
-
-# Embed a specific answerfile
-bash setup/archiso/build.sh --preconf ~/my-server.json
-
-# Both flags together
-bash setup/archiso/build.sh --preconf ~/my-server.json /media/usb/output
-
-
-
-
-Flag
-Effect
-
-
-
-
-(none)
-Clean ISO, no answerfile
-
-
---preconf
-Embed ~/answerfile.json at /answerfile.json in the ISO
-
-
---preconf FILE
-Embed the specified file instead
-
-
-
-Build artefacts land in ~/m-archy-out/ by default. Override with the OUT_DIR environment variable or by passing a path argument.
-Environment Variables¶
-
-
-
-Variable
-Default
-Purpose
-
-
-
-
-WORK_DIR
-~/m-archy-build
-Scratch space for mkarchiso
-
-
-OUT_DIR
-~/m-archy-out
-ISO output directory
-
-
-
-
-What the Build Does¶
-
-Copies the upstream releng Arch base profile
-Applies the M-Archy overlay (setup/archiso/overlay/)
-Replaces profiledef.sh with the M-Archy version
-Adds extra packages from packages.extra
-Embeds both installer scripts (arch-autoinstall.sh, archbaseos-guided-install.sh) into /root/installer/
-If --preconf: copies the answerfile to /answerfile.json in the ISO's airootfs
-Runs mkarchiso to produce the final .iso
-
-
-
-Defined in setup/archiso/overlay/packages.extra:
-git
-jq
-pam-u2f
-btop
-fastfetch
-openssh
-
-These are added on top of the standard Arch releng package set.
-
-Live System Entry Points¶
-Once booted from the ISO, the following are available:
-install-arch¶
-A command placed in /usr/local/bin/:
-install-arch # guided mode (default)
-install-arch guided # guided interactive install
-install-arch auto # automated mode (reads /answerfile.json)
-
-/root/launch.sh¶
-Internal dispatcher used by install-arch.
-/answerfile.json¶
-Only present when built with --preconf. Both installer scripts check for this file on startup. If found, all prompts are answered from it — the only interaction required is the disk-encryption password (passwords are never stored in answerfiles).
-
-Automated Deployment Workflow¶
-┌─────────────────────────────────────┐
-│ Developer machine │
-│ │
-│ 1. generate-answerfile.sh │
-│ → ~/answerfile.json │
-│ │
-│ 2. build.sh --preconf │
-│ → ~/m-archy-out/m-archy.iso │
-│ │
-│ 3. dd if=m-archy.iso of=/dev/sdX │
-└──────────────┬──────────────────────┘
- │ USB
- ▼
-┌─────────────────────────────────────┐
-│ Target machine (boots from USB) │
-│ │
-│ 4. install-arch auto │
-│ reads /answerfile.json │
-│ installs base OS │
-│ runs tui-install.sh in chroot │
-│ installs dotfiles & apps │
-│ │
-│ 5. Reboot → ready system │
-└─────────────────────────────────────┘
-
-For multi-machine deployments, the hostname field in the answerfile is combined with the machine's MAC address, so each system gets a unique hostname even though they share the same answerfile.
-
-Overlay Structure¶
-setup/archiso/overlay/
-├── airootfs/
-│ ├── etc/motd # Welcome message
-│ ├── root/
-│ │ └── launch.sh # Installer entry point
-│ └── usr/local/bin/
-│ └── install-arch # User-facing CLI command
-├── packages.extra # Additional live-system packages
-└── profiledef.sh # M-Archy ISO profile definition
-
-The build.sh script also adds at build time:
-airootfs/root/installer/
-├── arch-autoinstall.sh
-└── archbaseos-guided-install.sh
-
-
-Writing the ISO to USB¶
-# Find the USB drive
-lsblk
-
-# Write (replace /dev/sdX with your drive — ALL DATA WILL BE ERASED)
-sudo dd if=~/m-archy-out/m-archy-*.iso of=/dev/sdX bs=4M status=progress oflag=sync
-
-Or use ventoy / balenaEtcher as alternatives.
-
-
- Generated by md-to-html.sh · CyberQueer theme · 2026-05-18
-
-
-
diff --git a/docs/html/editors.html b/docs/html/editors.html
deleted file mode 100644
index d9773b4..0000000
--- a/docs/html/editors.html
+++ /dev/null
@@ -1,575 +0,0 @@
-
-
-
-
-
- Editors — M-Archy Dotfiles
-
-
-
-
- ← Index
-
-Editors¶
-Three editors are configured and deployed by the shell component: Neovim (primary), Micro (lightweight), and Yazi (terminal file manager).
-
-Neovim¶
-Config lives in nvim/. Deployed to ~/.config/nvim/ during shell module install.
-Plugin Manager¶
-vim-plug is auto-installed on first launch. Run :PlugInstall after the first start to fetch all plugins.
-Plugins¶
-Language & Completion¶
-
-
-
-Plugin
-Purpose
-
-
-
-
-neoclide/coc.nvim
-LSP client, auto-completion, diagnostics
-
-
-rust-lang/rust.vim
-Rust filetype support
-
-
-nvim-telescope/telescope.nvim
-Fuzzy finder (files, grep, LSP symbols)
-
-
-
-
-
-
-
-Plugin
-Purpose
-
-
-
-
-vim-airline/vim-airline
-Status bar
-
-
-vim-airline/vim-airline-themes
-Airline theme collection
-
-
-junegunn/goyo.vim
-Distraction-free writing mode
-
-
-voldikss/vim-floaterm
-Floating terminal windows
-
-
-norcalli/nvim-colorizer.lua
-Inline colour preview
-
-
-
-Navigation¶
-
-
-
-Plugin
-Purpose
-
-
-
-
-preservim/nerdtree
-File tree sidebar
-
-
-junegunn/fzf + fzf.vim
-Fuzzy file/buffer search
-
-
-elihunter173/dirbuf.nvim
-Editable directory buffer
-
-
-
-Snippets¶
-
-
-
-Plugin
-Purpose
-
-
-
-
-SirVer/ultisnips
-Snippet engine
-
-
-honza/vim-snippets
-Snippet collection
-
-
-
-Database¶
-
-
-
-Plugin
-Purpose
-
-
-
-
-tpope/vim-dadbod
-Database query runner
-
-
-kristijanhusak/vim-dadbod-ui
-GUI for vim-dadbod
-
-
-
-Markdown¶
-
-
-
-Plugin
-Purpose
-
-
-
-
-tadmccorkle/markdown.nvim
-Enhanced Markdown support
-
-
-ellisonleao/glow.nvim
-Markdown preview in terminal
-
-
-
-Theme¶
-
-
-
-Plugin
-Purpose
-
-
-
-
-the_miro/cyberqueer.nvim
-CyberQueer colour scheme (local)
-
-
-
-CoC LSP Settings¶
-nvim/coc-settings.json configures language servers for:
-- Python (pyright)
-- Lua (lua-language-server)
-- Rust (rust-analyzer via rust.vim)
-CyberQueer Airline Theme¶
-nvim/cyberqueer-airline.vim — a custom vim-airline theme using the CyberQueer palette, providing hot-pink/violet segments in the status bar.
-
-Micro¶
-A modern, keyboard-friendly terminal editor. Config in micro/. Deployed to ~/.config/micro/.
-Settings (settings.json)¶
-
-
-
-Setting
-Value
-Effect
-
-
-
-
-colorscheme
-miro-darcula
-Custom dark colour scheme
-
-
-Various
-—
-File-type-specific settings
-
-
-
-Keybindings (bindings.json)¶
-Custom keybindings extending Micro's defaults. See micro/bindings.json for the full list.
-Colour Schemes¶
-micro/colorschemes/ contains additional colour scheme definitions including the custom miro-darcula scheme.
-Plugins (micro/plug/)¶
-
-
-
-Plugin
-Purpose
-
-
-
-
-filemanager
-Sidebar file browser
-
-
-mlsp
-Language Server Protocol integration
-
-
-
-
-Yazi¶
-A fast, feature-rich terminal file manager written in Rust.
-Config in yazi/. Deployed to ~/.config/yazi/.
-Configuration Files¶
-
-
-
-File
-Purpose
-
-
-
-
-yazi.toml
-Core settings (openers, file rules, display)
-
-
-theme.toml
-CyberQueer colour palette
-
-
-keymap.toml
-Keybindings (17 KB, extensively customised)
-
-
-
-Theme¶
-yazi/theme.toml maps the CyberQueer colours to Yazi's theme variables. It is a colour-substitution target in apply-theme.sh, so it updates automatically when you change the palette.
-File Openers¶
-
-
-
-File type
-Opens with
-
-
-
-
-*.svg
-Inkscape
-
-
-Text files
-Neovim
-
-
-Everything else
-xdg-open (system default)
-
-
-
-Display Options¶
-
-Hidden files visible by default
-Symlinks shown and followed
-Three-pane layout (parent, current, preview)
-
-
-Launching Editors¶
-From the Hyprland desktop:
-
-
-
-Shortcut
-Action
-
-
-
-
-Super + M
-Open Micro in Kitty
-
-
-Super + E
-Open Yazi in Kitty
-
-
-Super + T then nvim
-Neovim in terminal
-
-
-
-From the shell:
-nvim file.rs # Neovim
-micro config.yaml # Micro
-yazi # Yazi file manager
-
-
-
- Generated by md-to-html.sh · CyberQueer theme · 2026-05-18
-
-
-
diff --git a/docs/html/freeipa-ansible.html b/docs/html/freeipa-ansible.html
deleted file mode 100644
index 8d05790..0000000
--- a/docs/html/freeipa-ansible.html
+++ /dev/null
@@ -1,441 +0,0 @@
-
-
-
-
-
- FreeIPA & Ansible — M-Archy Dotfiles
-
-
-
-
- ← Index
-
-FreeIPA & Ansible¶
-The FreeIPA/Ansible system provides centralised identity management for a fleet of Arch Linux machines: single sign-on, host-group-driven package and module deployment, LUKS backup key collection, and automatic Keycloak configuration.
-All relevant files live under setup/modules/FreeipaAnsible/.
-
-Architecture¶
-┌────────────────────────────────────┐
-│ FreeIPA Server │
-│ (can run in Docker / LXC) │
-│ │
-│ • User/host directory │
-│ • Kerberos KDC │
-│ • DNS (optional) │
-│ • Host group management │
-└──────────┬─────────────────────────┘
- │ SSSD / Kerberos
- ▼
-┌────────────────────────────────────┐
-│ Enrolled client machine │
-│ │
-│ • sssd — authentication │
-│ • ipa CLI — host group queries │
-│ • Ansible-deployed timers │
-│ ├── package installer │
-│ ├── module installer │
-│ ├── Flatpak installer │
-│ └── baseuser group sync │
-└────────────────────────────────────┘
-
-
-FreeIPA Server¶
-Docker / OCI Image¶
-A pre-built Docker image is available via setup/modules/FreeipaAnsible/image/:
-cd setup/modules/FreeipaAnsible/image
-cp .env.example .env
-# Edit .env with your domain, admin password, realm, etc.
-docker compose up -d
-
-The container runs ipa-first-boot.sh on first start to initialise the IPA instance, then optionally keycloak-configure.sh to wire up Keycloak as an OIDC provider.
-Interactive Server Setup¶
-bash setup/modules/optional-Modules/apps/freeipa-server.sh
-
-Prompts for realm, domain, admin password, and whether to generate client-install scripts.
-
-Client Enrollment¶
-Via Installer Module¶
-Select freeipa-client during tui-install.sh or install-modules.sh.
-Manual Enrollment¶
-Three modes:
-# Answerfile mode (unattended)
-bash setup/modules/FreeipaAnsible/freeipa-client.sh \
- --answerfile setup/modules/FreeipaAnsible/freeipa-client-answerfile.json
-
-# Interactive prompts
-bash setup/modules/FreeipaAnsible/freeipa-client.sh --interactive
-
-# Direct flag passthrough to freeipa-enroll.sh
-bash setup/modules/FreeipaAnsible/freeipa-client.sh \
- --domain freeipa.example.com \
- --server ipa.example.com \
- --principal admin
-
-Client Answerfile Schema¶
-{
- "domain": "freeipa.abdelbaki.eu",
- "realm": "FREEIPA.ABDELBAKI.EU",
- "server": "freeipa.abdelbaki.eu",
- "hostname": "",
- "principal": "admin",
- "password": "",
- "mkhomedir": true,
- "sudo": true,
- "dns_update": true,
- "ntp_server": "",
- "fido2": false,
- "fido2_users": []
-}
-
-Leave hostname blank to use the current machine hostname. Leave password blank to be prompted at enrollment time.
-
-Ansible Playbooks¶
-All playbooks live in setup/modules/FreeipaAnsible/ansible/ and require an inventory of enrolled IPA clients.
-Deploy Package Auto-Installer¶
-ansible-playbook -i inventory deploy-ansipa-install.yml
-
-Deploys ansipa-install-packages.sh + a systemd timer that runs every 30 minutes. The script queries IPA for host groups named ansipa-install-<package> and installs/removes packages to match.
-Group naming convention: ansipa-install-firefox → installs the firefox package.
-Deploy Module Auto-Installer¶
-ansible-playbook -i inventory deploy-ansipa-modules.yml \
- [-e ansipa_user=amir]
-
-Deploys ansipa-install-modules.sh + timer. Queries for groups named ansipa-module-<name> and runs the matching script from /usr/local/lib/ansipa-modules/<name>.sh.
-Module scripts are the same ones used by install-modules.sh — copied from setup/modules/optional-Modules/apps/*.sh.
-Group naming convention: ansipa-module-docker → runs docker.sh on the host.
-Each module is applied once and stamped in /var/lib/ansipa-modules/<name>.done. Re-running the timer skips already-applied modules.
-Deploy BaseUser Sync¶
-ansible-playbook -i inventory deploy-baseuser-sync.yml
-
-Deploys a systemd.path unit that triggers whenever a user logs in. If the user is a member of the IPA BaseUser group, they are automatically added to the local baseusers group — useful for desktop permission grants.
-Collect LUKS Backup Keys¶
-ansible-playbook -i inventory collect-luks-keys.yml \
- [-e luks_keys_store=/secure/location]
-
-For each enrolled host, checks for /_LUKS_BACKUP_KEY (placed there by the M-Archy installer when disk encryption is enabled) and fetches it to the controller as:
-<luks_keys_store>/<HOSTNAME>_LUKS_BACKUP_KEY
-
-Keys are stored with mode 0400. The store directory is created with mode 0700.
-Schedule for automatic collection:
-# Add to crontab on the Ansible controller
-0 3 * * * cd /path/to/playbooks && ansible-playbook -i inventory collect-luks-keys.yml
-
-
-Host Group Reference¶
-
-
-
-Group prefix
-Handled by
-Effect
-
-
-
-
-ansipa-install-<pkg>
-ansipa-install-packages.sh
-Install/remove native package
-
-
-ansipa-module-<name>
-ansipa-install-modules.sh
-Run module script once
-
-
-fp_install-<app>
-ansipa-install-flatpaks.sh
-Install Flatpak app
-
-
-BaseUser
-auto-add-baseuser.sh
-Add user to local baseusers group
-
-
-
-
-LUKS Key Flow¶
- Install time (arch-autoinstall.sh or archbaseos-guided-install.sh)
- ─────────────────────────────────────────────────────────────────
- 1. User sets primary LUKS passphrase interactively
- 2. 64-byte random key generated from /dev/urandom
- 3. Key enrolled in second LUKS slot
- 4. Key written to /_LUKS_BACKUP_KEY (mode 0400, root-only)
- inside the encrypted Btrfs volume
-
- Post-install (Ansible)
- ──────────────────────
- 5. collect-luks-keys.yml runs from the controller
- 6. Fetches /_LUKS_BACKUP_KEY from each client
- 7. Stores as luks-keys/<HOSTNAME>_LUKS_BACKUP_KEY (mode 0400)
- on the controller
-
-The backup key lives inside the encrypted partition, so it is only accessible when the disk is already unlocked. Its purpose is to allow an admin to unlock the disk for recovery without knowing the user's passphrase.
-
-Auto Enrollment + Ansible¶
-bash setup/modules/FreeipaAnsible/auto-enroll-ansible.sh
-
-Combines FreeIPA client enrollment and Ansible deployment in one shot. Useful for provisioning scripts that run on first boot.
-
-
- Generated by md-to-html.sh · CyberQueer theme · 2026-05-18
-
-
-
diff --git a/docs/html/hyprland.html b/docs/html/hyprland.html
deleted file mode 100644
index e06e4de..0000000
--- a/docs/html/hyprland.html
+++ /dev/null
@@ -1,780 +0,0 @@
-
-
-
-
-
- Hyprland Desktop Environment — M-Archy Dotfiles
-
-
-
-
- ← Index
-
-Hyprland Desktop Environment¶
-The Hyprland setup is the primary desktop environment — a Wayland compositor with a full ecosystem of bars, launchers, notification daemons, and theming tools.
-
-Overview¶
-
-
-
-Component
-Role
-
-
-
-
-Hyprland
-Wayland tiling compositor (dwindle layout)
-
-
-Kitty
-Primary terminal emulator
-
-
-EWW
-Status bar (three device variants)
-
-
-Waybar
-Alternative status bar
-
-
-Wofi
-App launcher (keyboard-driven)
-
-
-Walker
-Fast CLI launcher
-
-
-uLauncher
-GUI app launcher
-
-
-Dunst
-Notification daemon
-
-
-Hyprlock
-Screen locker
-
-
-Hyprpaper
-Wallpaper daemon
-
-
-Hypridle
-Idle management (sleep, lock)
-
-
-nwg-dock
-Application dock
-
-
-nwg-drawer
-Application drawer
-
-
-nwg-panel
-Desktop menu
-
-
-Vicinae
-Gesture-triggered context launcher
-
-
-ly
-TUI login manager
-
-
-
-
-Config File Map¶
-desktopenvs/hyprland/
-├── hypr/
-│ ├── hyprland.conf # Root config — imports all below
-│ ├── hyprtoolkit.conf # Toolkit utilities
-│ ├── hyprlock.conf # Lock screen
-│ ├── hypridle.conf # Idle timeouts
-│ └── hyprpaper.conf # Wallpaper
-├── hypr-usr/ # Per-user override layer
-│ ├── binds.conf # All keybindings
-│ ├── input.conf # Keyboard/mouse settings
-│ ├── monitors.conf # Display layout
-│ ├── windowrules.conf # Per-app behaviour rules
-│ └── autostart.conf # Startup programs
-├── kitty/
-│ ├── kitty.conf # Terminal config
-│ ├── current-theme.conf # Active palette (CyberQueer)
-│ └── themes/cyberqueer.conf # Theme definition
-├── waybar/
-│ ├── config # Module layout and data sources
-│ └── style.css # CyberQueer styling
-├── wofi/style.css # Launcher styling
-├── walker/themes/ # Walker theme (cyberqueer.css)
-├── dunst/ # Notification styling
-├── eww/ # EWW bar (PC — no battery)
-├── eww-nobattery/ # EWW bar alias
-├── eww-touch/ # EWW bar (tablet / touchscreen)
-├── spicetify/ # Spotify CyberQueer themes
-├── Vencord/ # Discord CyberQueer themes
-├── btop/ # System monitor + cyberqueer.theme
-├── scripts/ # 20+ utility scripts
-└── config-updater/ # Config synchronisation tool
-
-
-Keybindings¶
-All bindings live in hypr-usr/binds.conf.
-Applications¶
-
-
-
-Binding
-Action
-
-
-
-
-Super + T
-Kitty terminal
-
-
-Super + Shift + T
-Cool Retro Term (CRT profile)
-
-
-Super + M
-Micro editor
-
-
-Super + E
-Thunar file manager
-
-
-Super + X
-Wofi app launcher
-
-
-Super + F
-File search (wofi)
-
-
-Super + Shift + F
-Folder search (wofi)
-
-
-
-Window Management¶
-
-
-
-Binding
-Action
-
-
-
-
-Super + Q
-Close focused window
-
-
-Super + V
-Toggle floating
-
-
-Super + Shift + V
-Centre floating window
-
-
-Super + P
-Toggle pseudo-tiling
-
-
-Super + J
-Toggle split direction
-
-
-Super + Arrow / hjkl
-Focus window by direction
-
-
-Super + Shift + Arrow / hjkl
-Move window by direction
-
-
-Super + [0-9]
-Switch workspace
-
-
-Super + Shift + [0-9]
-Move window to workspace
-
-
-Super + mouse drag
-Move/resize floating window
-
-
-
-System¶
-
-
-
-Binding
-Action
-
-
-
-
-Super + O
-Lock screen (hyprlock)
-
-
-Super + Alt + O
-Power menu
-
-
-Super + Ctrl + O
-Shutdown immediately
-
-
-Super + Z
-Toggle EWW bar
-
-
-Super + Ctrl + P
-Start screen recording
-
-
-
-Touchpad Gestures¶
-
-
-
-Gesture
-Action
-
-
-
-
-3-finger swipe left/right
-Switch workspace
-
-
-3-finger swipe up/down
-Move window to workspace
-
-
-3-finger pinch
-Toggle overview
-
-
-4-finger tap
-Open launcher
-
-
-
-
-Status Bar (EWW)¶
-EWW (Elkowar's Wayland Window Manager) is compiled from source during Hyprland install and comes in three variants:
-
-
-
-Variant
-Device
-Battery Widget
-
-
-
-
-eww/
-Desktop PC
-No
-
-
-eww-nobattery/
-Desktop PC
-No
-
-
-eww-touch/
-Laptop / tablet
-Yes
-
-
-
-During install the EWW installer asks which variant to use.
-Waybar¶
-An alternative to EWW — always installed. The bar layout:
-
-Left : clock, disk usage, RAM, CPU, temperature
-Centre : workspace switcher, active window title
-Right : network speed, IP address, system tray, audio volume, battery (if present)
-
-
-Launchers¶
-Wofi¶
-Keyboard-driven app/file launcher. Activated with Super + X.
-Config: wofi/style.css — themed with CyberQueer colours.
-Walker¶
-Fast CLI launcher (walker). Pre-configured with walker/config.toml and the cyberqueer.css / cyberqueer.toml theme files.
-uLauncher¶
-GUI launcher with plugin support. Theme: ulauncher/user-themes/cyberqueer/.
-Colours in the theme are colour-substitution targets (updated by apply-theme.sh).
-
-Notification Daemon (Dunst)¶
-Lightweight notification daemon. Config in dunst/dunstrc.
-Notifications appear top-right with CyberQueer styling.
-
-Lock Screen (Hyprlock)¶
-hyprlock is the Wayland screen locker. Config at hypr/hyprlock.conf.
-Activated by Super + O or automatically via hypridle after idle timeout.
-
-Scripts Reference¶
-All scripts live in desktopenvs/hyprland/scripts/ and are deployed to ~/.config/scripts/.
-
-
-
-Script
-Purpose
-
-
-
-
-caffeine.sh
-Toggle hypridle (prevent sleep)
-
-
-ewwstart.sh
-Launch EWW bar on startup
-
-
-ewwstart-niri.sh
-EWW for niri compositor variant
-
-
-togglebar.sh
-Show/hide EWW bar (monitor-aware)
-
-
-helpmenu.sh
-Display keybindings from binds.conf
-
-
-screenshot.sh
-Region/full screenshot via grim + slurp
-
-
-screenrec.sh
-Screen recording
-
-
-screenrotationacw.sh
-Rotate screen anti-clockwise (tablet)
-
-
-screenrotationwcw.sh
-Rotate screen clockwise (tablet)
-
-
-unified-rotate.sh
-Unified rotation handler
-
-
-hyprland-toggle-touchpad.sh
-Enable/disable touchpad
-
-
-wofi-file-search.sh
-File search via wofi
-
-
-foldersearch.sh
-Folder search via wofi
-
-
-pwr-dmenu.sh
-Power menu (shutdown/reboot/suspend)
-
-
-caffeine.sh
-Toggle idle inhibitor
-
-
-getispeed.sh
-Internet speed test display
-
-
-journal.sh
-Quick journal entry
-
-
-date.sh / time.sh
-Date/time waybar helpers
-
-
-uptime.sh
-Uptime display
-
-
-dysk-phydisks.sh
-Physical disk info (dysk)
-
-
-drawer.sh
-Open nwg-drawer
-
-
-menu.sh
-Application menu
-
-
-onscreenkb.sh
-On-screen keyboard (wvkbd)
-
-
-bluetooth-applet.sh
-Bluetooth UI wrapper
-
-
-togglewinbars.sh
-Toggle window title bars
-
-
-toggle-layout.sh
-Switch tiling layout
-
-
-playpause.sh
-Media play/pause
-
-
-calender-fix.sh
-Calendar waybar widget fix
-
-
-
-
-Application Theming¶
-Spotify (Spicetify)¶
-Two CyberQueer Spicetify themes are available:
-
-
-
-Theme
-Style
-
-
-
-
-cli-cyberqueer
-CLI-inspired, minimal
-
-
-matte-cyberqueer
-Matte finish variant
-
-
-
-Applied automatically when the spotify module is installed.
-Discord (Vencord)¶
-Two Discord themes:
-
-
-
-Theme
-Location
-
-
-
-
-cyberqueer.theme.css
-Standalone CyberQueer theme
-
-
-system24/…/cyberqueer.theme.css
-system24 framework with CyberQueer colours
-
-
-
-Terminal (Kitty)¶
-The kitty/themes/cyberqueer.conf file defines the full 16-colour palette mapped to CyberQueer values. It is sourced by current-theme.conf which is imported in kitty.conf.
-
-Login Manager (ly)¶
-ly is a TUI display manager configured via etc-ly-config.ini (deployed to /etc/ly/config.ini). Its colours are tracked by apply-theme.sh (system file, applied via sudo).
-
-Installing Hyprland¶
-# Via the TUI installer
-bash ~/Dotfiles/setup/tui-install.sh
-# → Select "shell" and "Hyprland" in the dialogs
-
-# On an existing system
-bash ~/Dotfiles/setup/install-modules.sh
-# → Not available; Hyprland is a base DE, use the full installer
-
-# Direct script
-bash ~/Dotfiles/setup/modules/Desktop-Environments/hyprland.sh
-
-The install script compiles EWW from source (requires Rust), copies all configs, installs the GTK and cursor themes, enables ly@tty1, and configures greetd.
-
-
- Generated by md-to-html.sh · CyberQueer theme · 2026-05-18
-
-
-
diff --git a/docs/html/index.html b/docs/html/index.html
deleted file mode 100644
index 8c01396..0000000
--- a/docs/html/index.html
+++ /dev/null
@@ -1,396 +0,0 @@
-
-
-
-
-
- M-Archy Dotfiles — M-Archy Dotfiles
-
-
-
-
-
-
-M-Archy Dotfiles¶
-Arch Linux · Hyprland · Wayland · CyberQueer
-A production-grade Arch Linux configuration for network administration, development, and gaming — built around the Hyprland Wayland compositor and the CyberQueer colour theme.
-
-What's Inside¶
-
-
-
-Area
-Description
-
-
-
-
-Installation
-Interactive TUI installer, answerfile automation, ISO building
-
-
-Theming
-CyberQueer colour system and apply-theme.sh
-
-
-Hyprland
-Desktop environment, keybindings, bars, launchers
-
-
-Modules
-Core modules and full optional-app catalogue
-
-
-Archiso
-Building the custom live installer ISO
-
-
-FreeIPA & Ansible
-Identity management and automated config deployment
-
-
-Editors
-Neovim, Micro, Yazi
-
-
-Utilities
-Encryption helpers, ClamAV, credentials, update scripts
-
-
-
-
-Quick Start¶
-# 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 .
-
-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
-│ ├── generate-answerfile.sh # Dry-run to produce answerfile.json
-│ ├── 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/ # Custom Arch live ISO builder
-│ └── modules/ # Modular install scripts
-├── desktopenvs/hyprland/ # All Hyprland / Wayland 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
-
-
-
- Generated by md-to-html.sh · CyberQueer theme · 2026-05-18
-
-
-
diff --git a/docs/html/installation.html b/docs/html/installation.html
deleted file mode 100644
index 9e2fc3d..0000000
--- a/docs/html/installation.html
+++ /dev/null
@@ -1,501 +0,0 @@
-
-
-
-
-
- Installation — M-Archy Dotfiles
-
-
-
-
- ← Index
-
-Installation¶
-Three paths are available depending on how much you want to automate:
-
-
-Prerequisites¶
-
-Arch Linux (base install completed, user created)
-Internet connection
-git available (sudo pacman -S git)
-
-
-Interactive TUI¶
-Clone the repo and run the installer:
-git clone https://git.abdelbaki.eu/The_miro/Dotfiles.git ~/Dotfiles
-bash ~/Dotfiles/setup/tui-install.sh
-
-The TUI walks you through:
-
-Hostname — optional; sets /etc/hostname immediately
-Components — pick any combination:
-pkg — package managers (yay, nvm, Rust)
-core — 100+ base system packages
-svc — core services (NetworkManager, cronie, fail2ban, greetd)
-shell — zsh, Neovim, Yazi, Micro, Starship
-Desktop Environment — Hyprland, Sway, KDE Plasma, GNOME, COSMIC, XFCE, LXQt, or none
-Applications — checklist of ~50 optional apps (see Modules )
-Colorway — optional; enter hex values to customise the CyberQueer palette
-
-All activity is logged to ~/dotfiles-install.log.
-Adding Modules Later¶
-To install additional optional apps on an already-configured system:
-bash ~/Dotfiles/setup/install-modules.sh
-
-This presents the same app checklist without re-running core setup.
-
-Answerfile (Automated)¶
-An answerfile lets the entire install — base OS and dotfiles — run without any user input.
-Generating an Answerfile¶
-bash ~/Dotfiles/setup/generate-answerfile.sh [OUTPUT_PATH]
-# Default output: ~/answerfile.json
-
-This dry-runs every installer dialog and saves your choices. No software is installed. Passwords are intentionally excluded — you will be prompted at install time.
-Answerfile Schema¶
-{
- "_generated": "2026-05-18T12:00:00+00:00",
- "drive": "/dev/sda",
- "kernel": "linux",
- "hostname": "myhost",
- "username": "amir",
- "encrypt": true,
- "fido2_root": false,
- "fido2_user": false,
- "run_tui": true,
- "components": ["pkg", "core", "svc", "shell"],
- "desktop_environment": "hyprland",
- "apps": ["firefox-browser", "vscodium", "docker"],
- "colors": {
- "COLOR_TEXT": "D6ABAB",
- "COLOR_BG": "1A1A1A",
- "COLOR_HIGHLIGHT": "E40046",
- "COLOR_DARK": "5018DD",
- "COLOR_RED": "F50505"
- }
-}
-
-
-
-
-Field
-Type
-Description
-
-
-
-
-drive
-string
-Install target (/dev/sda, /dev/nvme0n1, …)
-
-
-kernel
-string
-linux, linux-lts, or linux-zen
-
-
-hostname
-string
-Base hostname — a MAC-address suffix is appended automatically
-
-
-username
-string
-Primary user account name
-
-
-encrypt
-bool
-Enable LUKS2 root encryption
-
-
-fido2_root
-bool
-Enroll FIDO2 key for LUKS unlock
-
-
-fido2_user
-bool
-Enroll FIDO2 key for PAM login
-
-
-run_tui
-bool
-Run dotfiles setup automatically after base install
-
-
-components
-array
-Dotfiles components to install
-
-
-desktop_environment
-string
-DE name or "none"
-
-
-apps
-array
-Optional app IDs (see Modules )
-
-
-colors
-object
-Optional colour overrides (omit to keep defaults)
-
-
-
-Hostname Uniqueness¶
-When hostname is set in the answerfile, the MAC address of the primary network interface is automatically appended:
-myhost → myhost-aabbccddee11
-
-This prevents hostname conflicts when the same answerfile is used across multiple machines.
-Running with an Answerfile¶
-Place the file at /answerfile.json (or set the ANSWERFILE environment variable):
-# Use default location
-sudo cp ~/answerfile.json /answerfile.json
-bash ~/Dotfiles/setup/tui-install.sh
-
-# Or override the path
-ANSWERFILE=~/my-setup.json bash ~/Dotfiles/setup/tui-install.sh
-
-
-Base OS Installers¶
-Two scripts install Arch Linux itself (before the dotfiles step):
-Guided Installer (archbaseos-guided-install.sh)¶
-Interactive, dialog-based. Prompts for each setting with sensible defaults. Good for hands-on installs where you want to review each option.
-bash ~/installer/archbaseos-guided-install.sh
-
-Auto Installer (arch-autoinstall.sh)¶
-Reads all settings from /answerfile.json if present; falls back to prompts for anything missing.
-bash ~/installer/arch-autoinstall.sh
-
-Both installers perform the same steps:
-
-Partition disk (EFI 15 GiB · Root · Swap = RAM size)
-Optionally encrypt root with LUKS2
-Format root as Btrfs with @ and @home subvolumes
-pacstrap base system
-Configure locale, timezone, hostname, user, sudo
-Set up mkinitcpio hooks and GRUB
-Optionally run tui-install.sh inside the chroot
-
-Disk Encryption¶
-When encryption is enabled:
-
-Primary key : entered interactively at install time
-Backup key : generated automatically from /dev/urandom, enrolled into a second LUKS slot, and written to /_LUKS_BACKUP_KEY inside the new system (mode 0400, root-readable only, inside the encrypted container)
-FIDO2 (optional): enroll a hardware key for passwordless unlock
-
-The backup key can be collected by Ansible — see FreeIPA & Ansible .
-mkinitcpio Hook Sets¶
-
-
-
-Scenario
-Hooks
-
-
-
-
-No encryption
-base udev autodetect microcode modconf kms consolefont block btrfs filesystems keyboard fsck
-
-
-LUKS + password
-base udev autodetect microcode modconf kms consolefont block encrypt lvm2 btrfs filesystems keyboard keymap fsck
-
-
-LUKS + FIDO2
-base udev systemd autodetect microcode modconf kms consolefont block sd-encrypt lvm2 btrfs filesystems keyboard keymap fsck
-
-
-
-
-Custom Live ISO¶
-See Archiso for building a bootable USB that embeds the installer and, optionally, a pre-baked answerfile for zero-touch deployment.
-
-
- Generated by md-to-html.sh · CyberQueer theme · 2026-05-18
-
-
-
diff --git a/docs/html/modules.html b/docs/html/modules.html
deleted file mode 100644
index 48b3781..0000000
--- a/docs/html/modules.html
+++ /dev/null
@@ -1,807 +0,0 @@
-
-
-
-
-
- Modules Reference — M-Archy Dotfiles
-
-
-
-
- ← Index
-
-Modules Reference¶
-The setup system is modular — core components are installed first, then any combination of optional apps can be added. All module scripts are idempotent (safe to re-run).
-
-Core Modules¶
-These are selected during the initial tui-install.sh run.
-pkg — Package Managers¶
-Installs the AUR helper, language runtimes, and build toolchains:
-
-yay — AUR helper (built from source via makepkg)
-Rust / Cargo — via rustup with the stable toolchain
-nvm — Node Version Manager; installs Node.js v22 LTS by default
-
-core — Core Packages¶
-~100 packages including:
-7zip · base-devel · bluez · bluez-utils · btop · fastfetch · fdupes · ffmpeg · git · greetd-tuigreet · htop · jq · less · lynx · neovim · networkmanager · openssh · pipewire · pipewire-alsa · pipewire-pulse · ripgrep · rsync · tmux · udiskie · yazi · zram-generator
-Also installs pamtester from the AUR.
-svc — Core Services¶
-Enables and starts these systemd units:
-
-
-
-Service
-Purpose
-
-
-
-
-NetworkManager
-Network connectivity
-
-
-cronie
-Cron daemon
-
-
-fail2ban
-Brute-force protection
-
-
-greetd
-Login session manager
-
-
-udisks2
-Removable media
-
-
-
-Also deploys greetd-tuigreet config from the dotfiles.
-shell — Shell Setup¶
-
-zsh with Oh My Zsh and plugins (zsh-syntax-highlighting, zsh-autosuggestions)
-Starship shell prompt
-Neovim with Vim-Plug (see Editors )
-Micro editor
-Yazi file manager
-Deploys .bashrc, .zshrc, starship.toml, Micro config, Neovim config
-
-
-Desktop Environments¶
-
-
-
-ID
-Name
-Notes
-
-
-
-
-hyprland
-Hyprland
-Primary DE — see Hyprland
-
-
-sway
-Sway
-Wayland tiling WM, lighter
-
-
-kde-plasma
-KDE Plasma
-Full-featured with sddm
-
-
-gnome
-GNOME
-Modern Wayland DE with gdm
-
-
-cosmic
-COSMIC
-Rust-based DE from System76
-
-
-xfce
-XFCE
-Lightweight X11 with lightdm
-
-
-lxqt
-LXQt
-Lightweight Qt X11 with sddm
-
-
-
-
-Optional Applications¶
-Install via tui-install.sh at first install, or add later:
-bash ~/Dotfiles/setup/install-modules.sh
-
-AI & Machine Learning¶
-
-
-
-ID
-Package
-Description
-
-
-
-
-ollama
-ollama
-Local LLM runner with REST API server
-
-
-llama-cpp
-llama.cpp
-Standalone inference CLI + server
-
-
-open-webui
-open-webui
-Browser UI for Ollama / OpenAI-compatible backends
-
-
-claude
-claude (npm)
-Anthropic Claude Code CLI
-
-
-
-Networking & Security¶
-
-
-
-ID
-Packages
-Description
-
-
-
-
-networking-cli
-nmap · nethogs · mitmproxy · httpie
-Network analysis and HTTP tooling
-
-
-disk-recovery
-ddrescue · f3
-Disk imaging and flash drive testing
-
-
-ssh-server
-openssh
-SSH daemon with key-auth enforcement
-
-
-wireshark
-wireshark-qt
-Packet capture and analysis GUI
-
-
-
-Development¶
-
-
-
-ID
-Packages
-Description
-
-
-
-
-python
-pyright · pipx · pynvim
-Python LSP, isolated tool runner, Neovim integration
-
-
-docker
-docker · docker-compose
-Container runtime
-
-
-podman
-podman · buildah · podman-compose
-Rootless containers
-
-
-cockpit
-cockpit · machines · podman
-Web-based system management UI
-
-
-k8s
-kubectl · podman-desktop
-Kubernetes CLI and desktop client
-
-
-db-clients
-pgcli · mycli
-Enhanced interactive database CLIs
-
-
-mysql
-mariadb
-MariaDB server with initial setup
-
-
-
-IDEs & Editors¶
-
-
-
-ID
-Package
-Description
-
-
-
-
-vscodium
-vscodium-bin (AUR)
-VS Code without telemetry
-
-
-zed-ide
-zed
-High-performance Rust IDE
-
-
-geany
-geany · geany-plugins
-Lightweight IDE
-
-
-codeblocks
-codeblocks
-C/C++ IDE
-
-
-kate
-kate
-KDE advanced text editor
-
-
-
-Browsers¶
-
-
-
-ID
-Package
-Description
-
-
-
-
-chromium
-chromium
-Open-source Chromium
-
-
-firefox-browser
-firefox
-Mozilla Firefox
-
-
-zen-browser
-zen-browser-bin (AUR)
-Privacy-focused Firefox fork
-
-
-nyxt
-nyxt (AUR)
-Keyboard-driven, hackable browser
-
-
-librewolf
-librewolf-bin (AUR)
-Hardened Firefox fork
-
-
-min-browser
-min (AUR)
-Minimal Electron browser
-
-
-
-Gaming¶
-
-
-
-ID
-Package
-Description
-
-
-
-
-steam
-steam
-Steam gaming platform
-
-
-vesktop
-vesktop (AUR)
-Discord client with Vencord built-in
-
-
-spotify
-spotify (AUR) + spicetify
-Music player with CyberQueer theme
-
-
-prism
-prismlauncher (Flatpak)
-Minecraft launcher
-
-
-vintagestory
-vintagestory (AUR)
-Survival / voxel game
-
-
-
-
-
-
-
-ID
-Packages
-Description
-
-
-
-
-ffmpeg
-gst-plugin-pipewire · gst-plugins-good · ffmpegthumbnailer
-GStreamer codecs + thumbnailer
-
-
-sox
-sox
-Command-line audio processing
-
-
-imagemagick
-imagemagick
-Image manipulation suite
-
-
-yt-dlp
-yt-dlp
-YouTube / media downloader
-
-
-blender
-blender
-3D creation suite
-
-
-gnuplot
-gnuplot
-Scientific plotting
-
-
-povray
-povray
-Ray-tracing renderer
-
-
-
-Productivity¶
-
-
-
-ID
-Packages
-Description
-
-
-
-
-productivity
-taskwarrior · watson · jrnl
-Task management, time tracking, journaling
-
-
-himalaya
-himalaya (AUR)
-Terminal email client
-
-
-toot
-toot (AUR)
-Mastodon CLI client
-
-
-
-System Utilities¶
-
-
-
-ID
-Packages
-Description
-
-
-
-
-tlp
-tlp · tlp-rdw
-Laptop battery optimisation
-
-
-zfs
-zfs-dkms
-ZFS kernel module
-
-
-wprs
-wprs-git (AUR)
-Wayland proxy for remote sessions
-
-
-butter
-butter (AUR)
-Btrfs snapshot backup manager
-
-
-localsend
-localsend (AUR)
-LAN file transfer (AirDrop-like)
-
-
-croc
-croc
-Cross-platform encrypted file transfer
-
-
-localtunnel
-localtunnel (npm)
-Expose localhost over a public URL
-
-
-onlyoffice
-onlyoffice-bin (AUR)
-Office suite (Docs, Sheets, Slides)
-
-
-
-Identity & Infrastructure¶
-
-
-
-ID
-Description
-
-
-
-
-freeipa-client
-sssd + ipa-client-install + auto-enrollment (see FreeIPA )
-
-
-freeipa-server
-Interactive FreeIPA server setup + client generator
-
-
-freeipa-image
-OCI / LXC / Proxmox LXC image builder + Keycloak
-
-
-
-
-Container Shell Setups¶
-Scripts in setup/Setup-shell-4-containers/ configure a minimal shell environment inside containers or chroots for each major distribution:
-
-
-
-Script
-Target
-
-
-
-
-alpine.sh
-Alpine Linux
-
-
-arch.sh
-Arch Linux
-
-
-debian.sh
-Debian
-
-
-fedora.sh
-Fedora
-
-
-suse.sh
-openSUSE
-
-
-ubuntu.sh
-Ubuntu
-
-
-void.sh
-Void Linux
-
-
-other.sh
-Generic fallback
-
-
-
-
-
- Generated by md-to-html.sh · CyberQueer theme · 2026-05-18
-
-
-
diff --git a/docs/html/theming.html b/docs/html/theming.html
deleted file mode 100644
index b963628..0000000
--- a/docs/html/theming.html
+++ /dev/null
@@ -1,465 +0,0 @@
-
-
-
-
-
- CyberQueer Theme System — M-Archy Dotfiles
-
-
-
-
- ← Index
-
-CyberQueer Theme System¶
-The CyberQueer theme is a single-source colour system: every config file that needs colours references a small set of hex values that can be changed in one place and propagated everywhere with a single command.
-
-The Palette¶
-Defined in ~/Dotfiles/colors.conf (bare 6-digit hex, no # prefix):
-COLOR_TEXT=D6ABAB # Rose-white — foreground text, labels
-COLOR_BG=1A1A1A # Near-black — base surface, backgrounds
-COLOR_HIGHLIGHT=E40046 # Hot pink — primary accent, active borders
-COLOR_DARK=5018DD # Violet — secondary accent, inactive borders
-COLOR_RED=F50505 # Red — danger indicators, alerts
-
-
-Applying the Theme¶
-# Apply using the default colors.conf
-bash ~/Dotfiles/apply-theme.sh
-
-# Apply from a custom palette file
-bash ~/Dotfiles/apply-theme.sh /path/to/custom-colors.conf
-
-apply-theme.sh will:
-
-Read colors.conf (or the file you pass)
-Compare against the last-applied state in ~/.config/colors.state
-Replace only changed colour values across all tracked files
-Save the new state to colors.state
-
-If nothing changed it exits immediately — safe to call repeatedly.
-First-Run Bootstrap¶
-On a fresh install where configs have been copied but no state file exists yet, apply-theme.sh bootstraps ~/.config/colors.state with the repository defaults so the diff works correctly from the start.
-
-What Gets Themed¶
-User Configs (~/.config/…)¶
-
-
-
-File
-What it styles
-
-
-
-
-starship.toml
-Shell prompt segment colours
-
-
-yazi/theme.toml
-File manager UI colours
-
-
-hypr/hyprland.conf
-Active/inactive window border gradients
-
-
-hypr/hyprtoolkit.conf
-Additional Hyprland colours
-
-
-hypr/hyprlock.conf
-Lock screen colours
-
-
-kitty/current-theme.conf
-Terminal colour palette
-
-
-kitty/kitty.conf
-Terminal background & accents
-
-
-kitty/themes/cyberqueer.conf
-Kitty colour scheme definition
-
-
-waybar/style.css
-Top bar widget colours
-
-
-wofi/style.css
-App launcher colours
-
-
-walker/themes/cyberqueer.css
-Walker launcher theme
-
-
-nwg-dock-hyprland/style.css
-Application dock
-
-
-nwg-drawer/drawer.css
-Application drawer
-
-
-nwg-panel/menu-start.css
-Panel start menu
-
-
-vicinae/cyberqueer.toml
-Gesture launcher
-
-
-scripts/onscreenkb.sh
-On-screen keyboard colours
-
-
-spicetify/Themes/*/color.ini
-Spotify client theme (×2 variants)
-
-
-ulauncher/user-themes/cyberqueer/manifest.json
-uLauncher theme
-
-
-ulauncher/user-themes/cyberqueer/theme.css
-uLauncher CSS
-
-
-ulauncher/user-themes/cyberqueer/generated.css
-uLauncher generated CSS
-
-
-Vencord/themes/cyberqueer.theme.css
-Discord theme
-
-
-Vencord/themes/system24/…/cyberqueer.theme.css
-Discord system24 variant
-
-
-
-System Files (applied via sudo)¶
-
-
-
-File
-What it styles
-
-
-
-
-/etc/ly/config.ini
-TUI login manager colours
-
-
-/usr/share/themes/cyberqueer/gtk-3.0/gtk.css
-GTK 3 theme
-
-
-/usr/share/themes/cyberqueer/gtk-4.0/gtk.css
-GTK 4 theme
-
-
-
-
-Customising the Palette¶
-Edit ~/Dotfiles/colors.conf, then run apply-theme.sh:
-# Example: shift the accent to cyan
-nano ~/Dotfiles/colors.conf
-# → COLOR_HIGHLIGHT=00B4D8
-
-bash ~/Dotfiles/apply-theme.sh
-
-The tui-install.sh installer also offers a colorway dialog as its final step:
-enter new hex values in the form; leave them unchanged to skip.
-
-How It Works Internally¶
-apply-theme.sh reads two key–value files and computes the diff:
-~/.config/colors.state (old values — what's currently applied)
-colors.conf (new values — what you want)
-
-For each changed key it runs:
-sed -i "s/${OLD_HEX}/${NEW_HEX}/gI" <file>
-
-The case-insensitive (I) flag matches uppercase hex codes that some apps emit. After all replacements succeed, colors.state is updated.
-Symlink Guard¶
-apply-theme.sh refuses to run if any deployed config path resolves back into ~/Dotfiles/ via symlink. This prevents theme changes from being committed directly into the git repository. The new-style install (via tui-install.sh) copies configs instead of symlinking them, so this guard is normally never triggered.
-
-Answerfile Theming¶
-If you generate an answerfile with generate-answerfile.sh, custom colours can be embedded in it:
-{
- "colors": {
- "COLOR_TEXT": "D6ABAB",
- "COLOR_BG": "1A1A1A",
- "COLOR_HIGHLIGHT": "E40046",
- "COLOR_DARK": "5018DD",
- "COLOR_RED": "F50505"
- }
-}
-
-tui-install.sh will apply these at the end of an automated install.
-
-
- Generated by md-to-html.sh · CyberQueer theme · 2026-05-18
-
-
-
diff --git a/docs/html/utilities.html b/docs/html/utilities.html
deleted file mode 100644
index 31f50a6..0000000
--- a/docs/html/utilities.html
+++ /dev/null
@@ -1,403 +0,0 @@
-
-
-
-
-
- Utilities — M-Archy Dotfiles
-
-
-
-
- ← Index
-
-Utilities¶
-Miscellaneous scripts and tools that live at the top level or in the clamav/ directory.
-
-System Update¶
-bash ~/Dotfiles/update.sh
-
-Runs a full system update:
-1. sudo pacman -Syu — official repos
-2. yay -Syu --answerdiff None --answerclean All --removemake — AUR packages (no prompts)
-For per-package AUR updates with confirmation:
-bash ~/Dotfiles/update-aur-onebyone.sh
-
-
-Package Audit¶
-bash ~/Dotfiles/setup/audit-packages.sh
-
-Audits installed packages — useful for finding orphans or unexpected installations.
-
-Encryption Utilities¶
-Simple OpenSSL wrappers for encrypting/decrypting arbitrary strings. Useful for storing secrets in scripts or config files without plaintext exposure.
-Encrypt¶
-bash ~/Dotfiles/encrypt.sh "my secret text" "my-passphrase"
-# Output: base64-encoded AES-256-CBC ciphertext
-
-Decrypt¶
-bash ~/Dotfiles/decrypt.sh "<ciphertext>" "my-passphrase"
-# Output: original plaintext
-
-Both use AES-256-CBC with PBKDF2 key derivation via OpenSSL.
-
-Credential Storage¶
-Initial Setup¶
-bash ~/Dotfiles/setup-creds-missing.sh
-
-Installs gnome-keyring and seahorse (GUI manager), then sets git's credential helper to store.
-Git Credentials¶
-git/ contains .gitconfig with:
-[user]
- name = The_miro
- email = amir@abdelbaki.eu
-
-[credential]
- helper = store
-
-[init]
- defaultBranch = main
-
-[push]
- autoSetupRemote = true
-
-The store helper writes credentials to ~/.git-credentials. For higher security, gnome-keyring intercepts this and stores the credentials in the system keyring instead of plaintext.
-
-Zsh Plugins¶
-bash ~/Dotfiles/zshplugins.sh
-
-Clones (or updates) the two Oh My Zsh community plugins:
-- zsh-syntax-highlighting — real-time syntax colouring in the prompt
-- zsh-autosuggestions — fish-style history-based suggestions
-These are referenced in .zshrc and active after the next shell start.
-
-ClamAV On-Access Scanning¶
-Full real-time antivirus scanning via ClamAV's clamonacc daemon.
-Installation¶
-bash ~/Dotfiles/clamav/install-clam-onaccess.sh
-
-What it does:
-1. Installs clamav
-2. Copies clamd.conf to /etc/clamav/
-3. Installs clamav-clamonacc.service to /etc/systemd/system/
-4. Installs the sudoers entry from clamav-sudoer
-5. Updates virus definitions (freshclam)
-6. Enables and starts clamd + clamav-clamonacc
-Key Files¶
-
-
-
-File
-Purpose
-
-
-
-
-clamav/clamd.conf
-Daemon configuration (30 KB, full options)
-
-
-clamav/clamav-clamonacc.service
-systemd unit for on-access scanning
-
-
-clamav/clamav-sudoer
-sudoers rule for ClamAV processes
-
-
-clamav/virus-event.bash
-Handler executed when a virus is detected
-
-
-
-Virus Event Handler¶
-virus-event.bash is called by clamonacc when a threat is found. Customise it to send notifications, quarantine files, or alert an admin.
-
-Shell Configuration¶
-.zshrc¶
-
-Framework : Oh My Zsh
-Theme : robbyrussell (overridden visually by Starship)
-Plugins : syntax-highlighting, autosuggestions
-Walk integration : lk function opens the walk file navigator
-WALK_MAIN_COLOR : set to #5018DD (CyberQueer violet)
-Sources Starship init at the end
-
-.bashrc¶
-Minimal bash config — sets PS1, loads ~/.bash_profile if present.
-Starship Prompt¶
-starship.toml at the repo root is deployed to ~/.config/starship.toml.
-Key customisations:
-- OS, username, directory, git, language, docker, and time segments
-- CyberQueer colours throughout (colour-substitution target)
-- Directory abbreviated to 3 levels with …/ truncation
-- Common directory substitutions (~/Documents → 📄, etc.)
-
-Login Manager (ly)¶
-etc-ly-config.ini is deployed to /etc/ly/config.ini during Hyprland install and kept as a colour-substitution target in apply-theme.sh.
-ly is a minimal TUI display manager that runs on tty1:
-systemctl enable ly@tty1
-
-Session selection, auto-login, and timeout settings are all in the config.
-
-
- Generated by md-to-html.sh · CyberQueer theme · 2026-05-18
-
-
-