-
-
Notifications
You must be signed in to change notification settings - Fork 4
Installation
This page covers how to install and set up Aphotic on your system.
Important
Aphotic assumes an Arch/AUR base. Tested and supported on plain Arch and on Omarchy. EndeavourOS installed with Desktop Environment: None also works. It's the same Arch/AUR base as a minimal install. See Compatibility for distro-specific notes.
- Arch Linux, Omarchy, EndeavourOS (Desktop Environment: None), or a similar Arch/AUR derivative
- Hyprland installed and working
- An AUR helper (
yayorparu) for AUR packages the profile/layers pull in - Internet connection for package installation
git clone https://github.com/T-Crypt/Aphotic-Hypr && cd Aphotic-Hypr
chmod +x install.sh./install.shInstalls the daily-driver setup (full profile, no optional layers) straight through, no questions asked. Your choice is written to aphotic.toml at the repo root, the source of truth for every re-run after that.
./install.sh --opt-inWalks you through:
- Selecting a base profile (
minimalorfull) - Choosing optional layers (
gaming,dev,ai,exploitand its sublayers) - Selecting a theme
- Whether to install the optional Aphotic Assistant (NVIDIA only)
Same aphotic.toml write at the end either way.
# Install with specific profile and layers, skipping the prompts
./install.sh --profile full --with gaming,dev
# Dry run to see the full resolved plan without installing anything
./install.sh --profile full --with gaming,dev --dry-run
# Skip the pre-install backup (not recommended)
./install.sh --profile full --with gaming,dev --no-backupNote
--dry-run is checked before anything else runs — no sudo prompt, no package installs, no filesystem writes happen ahead of it.
Any exploit/exploit-* layer needs an authorized-use disclaimer accepted before it installs. Interactively this is a typed confirmation prompt; in a scripted/CI install (stdin isn't a TTY) you must pass --accept-exploit-disclaimer alongside --with, or the install fails. See Security for what the disclaimer actually says and why it exists.
./install.sh --profile full --with exploit-recon,exploit-web --accept-exploit-disclaimerMost exploit-* sublayers also enable the BlackArch repo, which is less stable than Arch's official repos — the installer warns and asks for explicit confirmation before touching /etc/pacman.conf (interactively) or proceeds under the same disclaimer flag (scripted).
After installation, Aphotic writes aphotic.toml at the repo root — your resolved profile, layers, and theme. A re-run of install.sh detects this file and offers to reuse it instead of repeating the wizard.
cd Aphotic-Hypr
git pull
./install.shAphotic detects your saved aphotic.toml and re-resolves your profile/layers against any changes upstream, snapshotting your current configs first exactly as a fresh install would. The same aphotic update CLI command does the git pull + re-deploy for you from anywhere, once installed.
Warning
Upgrading from 1.x to 2.0.0? Agent tracking (Claude Code, Codex, OpenCode hooks) and Agent Graph are no longer installed automatically with the ai layer — they are now separate, opt-in plugins. After updating, run:
aphotic plugin install claude-hooks # or codex-hooks / opencode-hooks
aphotic plugin install agent-graph
Without this, the bar's agent icon and the Agent Graph tab will be absent. See Agent Graph for details.
./uninstall.shThis restores your most recent backup — no manual archaeology through your backup directory. If you also want to remove the packages your profile installed:
./uninstall.sh --purge-packagesPackage removal happens behind its own separate confirmation.
| Flag | Effect |
|---|---|
--opt-in |
Launches the interactive layer-picker wizard (profile, layers, theme). Without this flag and without a terminal, a fresh install defaults to the daily-driver setup with zero prompts. |
--profile <minimal|full> |
Selects the base package set. Skips the profile prompt. |
--with <layer,layer,...> |
Comma-separated layers to merge in: gaming, dev, ai, exploit (a convenience bundle of exploit-recon+exploit-web+exploit-network), or any individual exploit-* sublayer (exploit-recon, exploit-web, exploit-network, exploit-passwords, exploit-wordlists, exploit-reversing, exploit-forensics, exploit-reporting). Skips the layer prompts. |
--accept-exploit-disclaimer |
Required alongside --with in non-interactive/scripted installs when any exploit/exploit-* layer is selected. |
--theme <name> |
Pre-selects a theme. Skips the theme prompt. |
--with-assistant |
Installs the Aphotic Assistant (local chatbot, needs an NVIDIA GPU; implies the ai layer). |
--no-assistant |
Skips the Aphotic Assistant, doesn't ask. |
--config-only |
Config sync only: back up, copy Configs/ over ~/.config/, restart the shell. No package installs, no system prep, no wizard. This is the fast path after a git pull. |
--dry-run |
Prints the full resolved install plan and exits — nothing is installed, backed up, or written. |
--no-backup |
Skips the pre-install config snapshot. Off by default; use with intent. |
--keep-backups <N> |
How many timestamped backups to retain before pruning. Defaults to 5. |
-h, --help
|
Full flag reference. |
-v, --version
|
Print the installed Aphotic version. |
Custom apps live in profiles/custom_apps.lst and are folded into the resolved package list automatically — no separate prompt needed.
There are two separate, unrelated backup mechanisms — don't confuse them:
Installer snapshots (~/.config-backup/) — automatic, tied to install.sh/uninstall.sh:
- Every
install.shrun (and everyaphotic update) snapshots your existing configs here before touching anything, unless--no-backupwas passed. -
--keep-backups <N>(default 5) prunes older snapshots automatically after each run. -
./uninstall.shrestores the most recent one of these automatically — no manual archaeology needed. - There's no CLI for browsing these directly; they're plain timestamped directories under
~/.config-backup/.
aphotic backup CLI (~/.local/state/aphotic/backups/) — a separate, manually-invoked snapshot/revert tool for your dotfiles, independent of installing/uninstalling:
-
aphotic backup create [--label <name>]— snapshot now -
aphotic backup list— list your manual snapshots -
aphotic backup revert <id>— restore one (auto-snapshots your current state first, so a revert is itself always reversible) -
aphotic backup clean [--keep N]— prune old ones (default keep 10)
The installer also detects and reuses your existing aphotic.toml to avoid repeating the wizard on a re-run — see Configuration File above.
Once installed, see Getting Started for a walkthrough of what to try first, or Keybindings for the full shortcut reference.