#+AUTHOR: Tony, btw
#+OPTIONS: toc:2 num:nil
* Tonarchy
[[file:assets/tonarchy.png]]
A zero-dependency Arch Linux installer with a clean TUI built from scratch in C.
*Status:* Alpha - Beginner (XFCE) and Oxidized (OXWM) modes functional, Wayland (Niri) coming soon
* Philosophy
Tonarchy is designed to take users from *zero to hero* with an opinionated beginner mode that sets up a complete, working Linux desktop environment. No choices, no confusion - just a solid foundation to start learning.
For experienced users, the Oxidized mode provides a minimal OXWM setup.
* Installation Modes
** Beginner (XFCE)
Opinionated setup with XFCE desktop, essential applications, and sane defaults. Perfect for your first Linux installation.
** Oxidized (OXWM)
Minimal setup with OXWM (Rust/Lua window manager), Alacritty, and Thunar. Lightweight tiling with Lua configuration.
* Keybindings
** General (XFCE Beginner Mode)
| Key | Action |
|------------------+-----------------------|
| Super+Return | Terminal (Alacritty) |
| Super+d | App Launcher (Rofi) |
| Super+e | File Manager (Thunar) |
| Super+q | Close Window |
| Super+f | Maximize Window |
| Super+Shift+f | Fullscreen |
** Window Management
| Key | Action |
|------------------+-----------------------|
| Super+j | Cycle Windows |
| Super+k | Cycle Windows Reverse |
| Super+Left | Tile Left |
| Super+Right | Tile Right |
| Super+Up | Tile Up |
| Super+Down | Tile Down |
** Workspaces
| Key | Action |
|------------------+-----------------------|
| Super+1-9 | Switch to Workspace |
| Super+Shift+1-9 | Move Window to WS |
| Super+Tab | Next Workspace |
| Super+Shift+Tab | Previous Workspace |
* Technical Highlights
- *Zero dependencies* :: Raw terminal control using termios + ANSI codes (no ncurses)
- *Single C file* :: Entire installer in ~1500 lines of C
- *Fuzzy finding* :: fzf integration for keyboard and timezone selection
- *Static binary* :: Ships as a single static executable on the ISO
* Requirements
- UEFI or BIOS system
- Internet connection
- Boot from Tonarchy ISO
* Beginner Mode Setup
The beginner installation handles everything:
** Desktop Environment
- XFCE with preconfigured keybindings
- Autologin via getty (no display manager)
- Adwaita-dark theme
** Applications
- Firefox (with uBlock Origin, Dark Reader)
- Neovim
- Alacritty terminal
- Thunar file manager
- VLC media player
- Rofi launcher
** System Configuration
- Locale: =en_US.UTF-8=
- Timezone: User selected via fzf
- Keyboard: User selected via fzf
- NetworkManager enabled
- Sudo configured for wheel group
** Disk Layout (UEFI)
- 1GB FAT32 EFI partition
- 4GB swap partition
- Remaining space for ext4 root
** Disk Layout (BIOS)
- 4GB swap partition
- Remaining space for ext4 root (bootable)
* Roadmap
- [X] XFCE Beginner Mode
- [X] Oxidized Mode (OXWM)
- [X] BIOS support
- [ ] MangoWC Wayland Mode
- [ ] Encrypted disk support
- [ ] Multi-disk configurations
- [ ] DIY Mode
* Building the ISO
** On Arch Linux
#+BEGIN_SRC bash
make build_iso
./build_iso --container podman
#+END_SRC
Or natively (requires =archiso= and =musl=):
#+BEGIN_SRC bash
make build_iso
./build_iso
#+END_SRC
** On NixOS
#+BEGIN_SRC bash
nix run .#build_iso -- --container podman
#+END_SRC
** Testing
#+BEGIN_SRC bash
make test-nix # NixOS
make test # Arch
#+END_SRC
* License
GPL