You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 45784c8
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: README.md
+23-23Lines changed: 23 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,9 +17,9 @@
17
17
18
18
## what is this
19
19
20
-
mochios is my linux distro. it's arch under the hood because arch is good, but the whole point is that you should be able to install it and use it without it breaking your brain. i got tired of reinstalling arch from scratch every time i wanted a clean machine, so i made it bootable instead. then it snowballed.
20
+
mochios is my linux distro. its arch under the hood because arch is good, but the whole point is that you should be able to install it and use it without it breaking your brain. i got tired of reinstalling arch from scratch every time i wanted a clean machine, so i made it bootable instead. then it snowballed tbh.
21
21
22
-
it uses **mochiboot** (a fork of limine i maintain), **abroot** (a/b atomic updates on btrfs), and a **mochi** cli that wraps pacman. instead of remembering `sudo pacman -S --noconfirm -y`you just go`mochi beat firefox`.
22
+
it uses **mochiboot** (a fork of limine i maintain), **abroot** (a/b atomic updates on btrfs), and a **mochi** cli that wraps pacman. instead of remembering `sudo pacman -S --noconfirm -y`ur just like`mochi beat firefox` and it happens.
23
23
24
24
## features
25
25
@@ -36,21 +36,21 @@ it uses **mochiboot** (a fork of limine i maintain), **abroot** (a/b atomic upda
36
36
37
37
## desktop environments
38
38
39
-
-**kde plasma** — the default. xrender fallback included because it turns out a lot of people boot my iso in virtualbox
39
+
-**kde plasma** — the default. xrender fallback included because it turns out alot of people boot my iso in virtualbox
-**hyprland** — rails already set. mochios purple theme, keybinds, waybar, dunst, wofi, hyprpaper. its the one i actually daily
42
42
43
43
all of them ship with pipewire + wireplumber for audio, because nobody should have to fight pulseaudio in 2026.
44
44
45
45
## greeters
46
46
47
-
login screen is separate from desktop, you pick both:
47
+
login screen is separate from desktop, u pick both:
48
48
49
49
-**sddm** — default for kde
50
50
-**gdm** — default for gnome
51
51
-**lightdm**
52
52
-**ly** — tty only, minimal
53
-
-**greetd** — the daemon you can build anything on
53
+
-**greetd** — the daemon u can build anything on
54
54
55
55
## the mochi cli
56
56
@@ -65,15 +65,15 @@ mochi status # which abroot side am i on
65
65
mochi repo add # enable the [mochi] overlay repo
66
66
```
67
67
68
-
yes, `mochi beat` is real. install something violently. whatever your reasons are, they're valid.
68
+
yes, `mochi beat` is real. install something violently. whatever ur reasons are, they're valid.
69
69
70
70
## abroot — atomic a/b updates
71
71
72
-
two btrfs subvolumes on one partition: `root_a` and `root_b`. you're always living on one; updates build on the other. next boot the bootloader switches sides. if the new side fails to boot 3 times it gives up and boots the known-good one. you basically can't brick yourself with a bad update anymore. that was the entire goal.
72
+
two btrfs subvolumes on one partition: `root_a` and `root_b`. you're always living on one; updates build on the other. next boot the bootloader switches sides. if the new side fails to boot 3 times it gives up and boots the known-good one. u basically cant brick urself with a bad update anymore. that was the entire point.
73
73
74
74
## mochiboot
75
75
76
-
my fork of [limine](https://github.com/iluxz/mochiboot) v12.5. on top of limine it adds:
76
+
my fork of [limine](https://github.com/iluxz/mochiboot) v12.5. on top of limine it adds (barely anything wild, mostly qol lol):
77
77
78
78
- mochios theming
79
79
- boot_counter via efi variables
@@ -86,17 +86,17 @@ my fork of [limine](https://github.com/iluxz/mochiboot) v12.5. on top of limine
86
86
### from the iso
87
87
88
88
1. grab the latest iso from [releases](https://github.com/iluxz/MochiOS/releases)
89
-
2. rufus on windows, balena etcher on linux, dd if you're feeling brave
89
+
2. rufus on windows, balena etcher on linux, dd if ur feeling brave
90
90
3. boot it
91
91
4.`mochiinstall` on the desktop or `mochiinstall --tui` in the terminal
92
92
5. wizard goes: keyboard → disk → de → greeter → user → install
93
93
94
94
### requirements
95
95
96
-
- uefi is the happy path (legacy bios works via syslinux but nobody's buying you dinner for it)
96
+
- uefi is the happy path (legacy bios works via syslinux but nobodys buying u dinner for it)
97
97
- 4gb ram minimum, 8gb recommended
98
98
- 20gb disk minimum, more is better
99
-
- x86_64. that's it, that's the arch support
99
+
- x86_64. thats it, thats the arch support
100
100
101
101
### building from source
102
102
@@ -115,13 +115,13 @@ a couple env vars the build script cares about:
|`OUT_DIR`|`$MOCHIOS_DIR/out`| where the iso lands |
117
117
|`NIGHTLY`|`false`| true = dark purple nightly branding |
118
-
|`WORK_DIR`|`/home/mochi/mochios-work`| build workspace. NOT `/tmp` — tmpfs runs out of space mid-squashfs and you lose the whole build |
118
+
|`WORK_DIR`|`/home/mochi/mochios-work`| build workspace. NOT `/tmp` — tmpfs runs out of space mid-squashfs and u lose the whole build |
119
119
120
120
that last one i learned the hard way. morphed my whole workflow around it.
121
121
122
122
## packages
123
123
124
-
arch repos plus a custom `[mochi]` overlay repo for my own curated stuff:
124
+
arch repos plus a custom `[mochi]` overlay repo for my own curated stuff (mostly things arch is objectively missing):
125
125
126
126
```bash
127
127
mochi repo add
@@ -147,26 +147,26 @@ current boot ──> root_a (active)
147
147
148
148
## boot recovery
149
149
150
-
mochiboot records boot success in efi variables. three failures in a row and it picks the recovery entry next boot. if you want to force it:
150
+
mochiboot records boot success in efi variables. three failures in a row and it picks the recovery entry next boot. 3 is the magic number i dont remember exactly why, whatever, it works. if u want to force it:
## stuff i have already broken so you don't have to
157
157
158
-
this is a non-exhaustive list of nightmares the build process and i have been through:
158
+
this is a non-exhaustive list of nightmares the build process and i have been through (and u know there will be more):
159
159
160
-
-`plasma-wayland-session`doesn't exist in arch repos. i keyed an entire installer dep on it and watched the build die. it's`plasma-workspace`. it's always been `plasma-workspace`
161
-
-`kde-applications-meta` is like 3gb and pulls literally the whole world. don't. curate your package list
160
+
-`plasma-wayland-session`doesnt exist in arch repos. i keyed an entire installer dep on it and watched the build die. its`plasma-workspace`. its always been `plasma-workspace`
161
+
-`kde-applications-meta` is like 3gb and pulls literally the whole world. dont. curate ur package list
162
162
- gpg signing hangs a headless iso build forever. the fix is `--batch --no-tty` with a nonexistent passphrase and honestly just trying not to cry
163
-
- old `.sig` files from a failed signing step will poison future builds. if you see "signature is invalid", nuke every `.sig` — repo, pacman cache, staged rootfs. pacman finding a stale sig is worse than no sig at all
164
-
- sddm's qml theme: `Keys.onReturnPressed` on the root rectangle fires a grand total of zero times when the text field has focus. you have to hook the key on the username field *and* the password field separately. dying on that hill for a day taught me more about qml focus than any docs
165
-
- enabling sddm via the display-manager symlink alone gives you nothing. you also need `default.target` pointed at `graphical.target`
166
-
- lightdm under xrandr will guess wrong. just set your resolution in the config or it picks 640x480 and laughs at you
163
+
- old `.sig` files from a failed signing step will poison future builds. if u see "signature is invalid", nuke every `.sig` — repo, pacman cache, staged rootfs. pacman finding a stale sig is worse than no sig at all
164
+
- sddm's qml theme: `Keys.onReturnPressed` on the root rectangle fires a grand total of zero times when the text field has focus. u have to hook the key on the username field *and* the password field separately. dying on that hill for a day taught me more about qml focus than any docs
165
+
- enabling sddm via the display-manager symlink alone gives u nothing. u also need `default.target` pointed at `graphical.target`
166
+
- lightdm under xrandr will guess wrong. just set ur resolution in the config or it picks 640x480 and laughs at u
167
167
- the live iso ran headless-tui by default with zero display and i once sat there watching a black screen for a solid minute before realizing. fresh installs boot to the gui path on purpose now
168
168
- plymouth was in the base dep list at one point and removing it was a 40-minute fight with `makepkg -Rsc` chase-the-tail
169
-
- a grub theme pointing at image files that don't exist makes the boot menu render nothing at all. it's not a error. it's just... empty. removed the dead refs. if your grub menu vanishes, check the theme's missing assets first
169
+
- a grub theme pointing at image files that dont exist makes the boot menu render nothing at all. its not a error. its just... empty. removed the dead refs. if ur grub menu vanishes, check the themes missing assets first
0 commit comments