Add new and improved installer script
This is a refined installer experience that builds upon the current installer.
Boot...Install...Install-main
Currently, or installer is effectively 3 files which I've considered changing but decided against for a few reasons.
boot.sh- Handles cloning the repo, and callinginstall.sh.install.sh- Handles running any preflight items and launching the cage instance.install-main.sh- The actual installer that runs inside of the cage instance.
We could perhaps merge boot.sh and install.sh but that'll mean that to reattempt the installer, we'd need to instruct users to run boot.sh which would wipe and reload the whole repo. This could be OK but isn't what we've done to date so I've left it in 3 parts for now knowing that merging these two would be really easy.
install-main.sh must remain as a separate part since it's what's executed by the cage instance.
New Install Experience
https://github.com/user-attachments/assets/50516fd6-07c9-4573-a900-f3ebad716af9
Key Changes
- Main installer runs inside of a cage instance providing access to full color capabilities with the Tokyo Night theme passed in
- Maintains a refined installer view that doesn't push the Omarchy logo off of the screen
- All logs are streamed to the journal so we can display them in a confined area on the installer, as well as retrieve them with
journalctl -t omarchy-install. This also means we don't have to deal with where to put a log file, or retrieving it if users are having troubles.
New Error State Experience
https://github.com/user-attachments/assets/aa3231dc-792a-4376-a5a5-5c25c4d57401
It's worth noting that the error state will show the actual last line that caused the error when it happens organically but this video was generated with a simple interrupt so there's no command to map back to.
New Stats Reporter
We may choose not to keep this but given we're piping to the journal, it opened the opportunity to also pass a little more info in fro retrieval later. Something like this gives us the ability to add omarchy-install-stats and be able to analyze which portions of our install process are objectively taking longest and perhaps need some optimization.
Testing
There is a piece I've left in for now where you can run with TEST_MODE=true ~/.local/share/omarchy/install.sh and it'll run everything just as it would but instead of calling the actual scripts, it calls test_task.sh which just pipes some simulated output. This allows quick and easy debugging of the rendering, as well as simulation of actual sub-process errors by adding exit 1 to the test_task.sh.
We may decide to back this out of the final form.
Looks great! Big fan of the stats, stats are always fun. I find the log font color to be a bit dim, perhaps something with a bit more contrast?
love this. a "middle ground" might be to have the really basic installer, and some keyboard shortcut/toggle to hide/show more logs. sorta how i think ubuntu does it. it gives you just a basic loading bar. but you can click the drop down and it'll give you the exact commands its executing.
Going with a newly revamped version that Ryan has been cooking instead.