Simple CLI and launcher app for macOS users who want a one-time restart into Asahi Linux.
One could, of course, just do this via simple CLI:
sudo bless --mount "/Volumes/Your Linux Volume" --setBoot --nextonly && sudo shutdown -r nowI built this small app because:
- it was fun.
- I wanted a clean Finder and Spotlight path in addition to the CLI.
- I like the way it works.
If you decide to use it, I hope you enjoy it. Please feel free to report any issues.
On the tested Apple Silicon Asahi dual-boot machine, the observed behavior is effectively "restart to Linux once": ordinary macOS restarts still return to macOS, while restart-to-linux sends the next boot into Linux.
This project is macOS-only and relies on system tools already present on macOS, primarily:
blessdiskutilosascriptcodesign
Check your environment with:
restart-to-linux --checkInstall:
brew tap jtbrough/tap
brew install jtbrough/tap/restart-to-linux
restart-to-linux --install-appUninstall:
restart-to-linux --uninstall-app
brew uninstall restart-to-linux--install-app installs Restart to Linux.app into ~/Applications so it can be launched from Finder, Spotlight, or the Dock.
After installation, Spotlight indexing may take a few minutes before the app appears in search results.
Install:
git clone https://github.com/jtbrough/restart-to-linux.git
cd restart-to-linux
./install.sh
restart-to-linux --install-appUninstall:
restart-to-linux --uninstall-app
./uninstall.shrestart-to-linux --check
restart-to-linux --version
restart-to-linux --list
restart-to-linux --dry-run
sudo restart-to-linux --bless-only
sudo restart-to-linuxIf multiple mounted APFS System volumes match:
- the CLI shows a numbered chooser when run interactively
- the CLI refuses to guess in non-interactive mode and requires
--target
Explicit selection:
sudo restart-to-linux --target "/Volumes/Your Linux Volume"Install the launcher app:
restart-to-linux --install-appThen launch Restart to Linux.app from Finder, Spotlight, or the Dock.
If multiple valid Linux targets are available, the app presents a chooser dialog before requesting administrator privileges.
Project layout:
src/: installable payloadpackaging/: Brew and macOS packagingtests/: test suitetools/: validation helpers
just lint
just validate
just test
just ci
just build-app