tonarchy

tonarchy

https://git.tonybtw.com/tonarchy.git git://git.tonybtw.com/tonarchy.git
3,646 bytes raw
1
#+AUTHOR: Tony, btw
2
#+OPTIONS: toc:2 num:nil
3
4
* Tonarchy
5
6
[[file:assets/tonarchy.png]]
7
8
A zero-dependency Arch Linux installer with a clean TUI built from scratch in C.
9
10
*Status:* Alpha - Beginner (XFCE) and Oxidized (OXWM) modes functional, Wayland (Niri) coming soon
11
12
* Philosophy
13
14
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.
15
16
For experienced users, the Oxidized mode provides a minimal OXWM setup.
17
18
* Installation Modes
19
20
** Beginner (XFCE)
21
Opinionated setup with XFCE desktop, essential applications, and sane defaults. Perfect for your first Linux installation.
22
23
** Oxidized (OXWM)
24
Minimal setup with OXWM (Rust/Lua window manager), Alacritty, and Thunar. Lightweight tiling with Lua configuration.
25
26
* Keybindings
27
28
** General (XFCE Beginner Mode)
29
30
| Key              | Action                |
31
|------------------+-----------------------|
32
| Super+Return     | Terminal (Alacritty)  |
33
| Super+d          | App Launcher (Rofi)   |
34
| Super+e          | File Manager (Thunar) |
35
| Super+q          | Close Window          |
36
| Super+f          | Maximize Window       |
37
| Super+Shift+f    | Fullscreen            |
38
39
** Window Management
40
41
| Key              | Action                |
42
|------------------+-----------------------|
43
| Super+j          | Cycle Windows         |
44
| Super+k          | Cycle Windows Reverse |
45
| Super+Left       | Tile Left             |
46
| Super+Right      | Tile Right            |
47
| Super+Up         | Tile Up               |
48
| Super+Down       | Tile Down             |
49
50
** Workspaces
51
52
| Key              | Action                |
53
|------------------+-----------------------|
54
| Super+1-9        | Switch to Workspace   |
55
| Super+Shift+1-9  | Move Window to WS     |
56
| Super+Tab        | Next Workspace        |
57
| Super+Shift+Tab  | Previous Workspace    |
58
59
* Technical Highlights
60
61
- *Zero dependencies* :: Raw terminal control using termios + ANSI codes (no ncurses)
62
- *Single C file* :: Entire installer in ~1500 lines of C
63
- *Fuzzy finding* :: fzf integration for keyboard and timezone selection
64
- *Static binary* :: Ships as a single static executable on the ISO
65
66
* Requirements
67
68
- UEFI or BIOS system
69
- Internet connection
70
- Boot from Tonarchy ISO
71
72
* Beginner Mode Setup
73
74
The beginner installation handles everything:
75
76
** Desktop Environment
77
- XFCE with preconfigured keybindings
78
- Autologin via getty (no display manager)
79
- Adwaita-dark theme
80
81
** Applications
82
- Firefox (with uBlock Origin, Dark Reader)
83
- Neovim
84
- Alacritty terminal
85
- Thunar file manager
86
- VLC media player
87
- Rofi launcher
88
89
** System Configuration
90
- Locale: =en_US.UTF-8=
91
- Timezone: User selected via fzf
92
- Keyboard: User selected via fzf
93
- NetworkManager enabled
94
- Sudo configured for wheel group
95
96
** Disk Layout (UEFI)
97
- 1GB FAT32 EFI partition
98
- 4GB swap partition
99
- Remaining space for ext4 root
100
101
** Disk Layout (BIOS)
102
- 4GB swap partition
103
- Remaining space for ext4 root (bootable)
104
105
* Roadmap
106
107
- [X] XFCE Beginner Mode
108
- [X] Oxidized Mode (OXWM)
109
- [X] BIOS support
110
- [ ] MangoWC Wayland Mode
111
- [ ] Encrypted disk support
112
- [ ] Multi-disk configurations
113
- [ ] DIY Mode
114
115
* Building the ISO
116
117
** On Arch Linux
118
119
#+BEGIN_SRC bash
120
make build_iso
121
./build_iso --container podman
122
#+END_SRC
123
124
Or natively (requires =archiso= and =musl=):
125
126
#+BEGIN_SRC bash
127
make build_iso
128
./build_iso
129
#+END_SRC
130
131
** On NixOS
132
133
#+BEGIN_SRC bash
134
nix run .#build_iso -- --container podman
135
#+END_SRC
136
137
** Testing
138
139
#+BEGIN_SRC bash
140
make test-nix   # NixOS
141
make test       # Arch
142
#+END_SRC
143
144
* License
145
146
GPL