tonarchy

tonarchy

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