omarchy icon indicating copy to clipboard operation
omarchy copied to clipboard

Add new and improved installer script

Open ryanrhughes opened this issue 5 months ago • 2 comments

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 calling install.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.

Screenshot-2025-08-03-174355

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.

ryanrhughes avatar Aug 03 '25 22:08 ryanrhughes

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?

weierfischen avatar Aug 04 '25 05:08 weierfischen

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.

ColtonIdle avatar Sep 06 '25 18:09 ColtonIdle

Going with a newly revamped version that Ryan has been cooking instead.

dhh avatar Sep 09 '25 18:09 dhh