Skip to content

Commit

Permalink
Reorganize more, fix README, add TODO, etc
Browse files Browse the repository at this point in the history
  • Loading branch information
user committed Apr 6, 2024
1 parent 6c9e3e0 commit 2e7ff51
Show file tree
Hide file tree
Showing 9 changed files with 407 additions and 90 deletions.
297 changes: 297 additions & 0 deletions Asahi Linux Helper (xCode project)/TODO.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions Asahi Linux Helper.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
CE77CAF22BB0A80B009BBB8C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
CEB162B42BBB5C47005AD0C4 /* Asahi-Linux-Helper.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Asahi-Linux-Helper.entitlements"; sourceTree = "<group>"; };
CEE639FA2BBC202E00D4DBFA /* Asahi-Linux-Helper-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Asahi-Linux-Helper-Info.plist"; sourceTree = SOURCE_ROOT; };
CEFFBD872BB6B902008979EF /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
CEFFBD872BB6B902008979EF /* TODO.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = TODO.md; sourceTree = "<group>"; };
CEFFBD882BB6C3A8008979EF /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
CEFFBD8B2BB6D2B6008979EF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
/* End PBXFileReference section */
Expand Down Expand Up @@ -146,7 +146,7 @@
CE77CAEF2BB0A80B009BBB8C /* Assets.xcassets */,
CEB162B42BBB5C47005AD0C4 /* Asahi-Linux-Helper.entitlements */,
CE77CAF12BB0A80B009BBB8C /* Main.storyboard */,
CEFFBD872BB6B902008979EF /* README.md */,
CEFFBD872BB6B902008979EF /* TODO.md */,
CEFFBD882BB6C3A8008979EF /* LICENSE */,
CEFFBD8A2BB6D2B6008979EF /* Localizable.strings */,
);
Expand Down
97 changes: 11 additions & 86 deletions Asahi Linux Helper/README.md → Asahi Linux Helper/TODO.md
Original file line number Diff line number Diff line change
@@ -1,105 +1,30 @@
# Not a proper README yet
## TODO

## Initial demo version:

Download:
[Asahi Linux Helper.app.zip](./misc/Asahi%20Linux%20Helper.app.zip)

- Self-signed
- Doesn't actually restart the computer yet (mock restart dialog)
- Actually, doesn't do much of anything yet

## Screenshots:

<img src="./misc/Menu_Screenshot.png" width="50%" alt="Main menu screenshot"><br>
1\. Click "Restart in Linux..." from the menu to restart in Linux next.<br>
(i.e. restart in Linux this time only without changing the default Startup Disk!)


---

<img src="./misc/Restart_Dialog_Screenshot.png" width="50%" alt="Restart dialog screenshot"><br>
2\. Then click "Restart now!" from the Restart dialog. The system will restart without asking any further questions (if the correct permissions etc are set).

---

<img src="./misc/Preferences_Screenshot.png" width="50%" alt="Preferences dialog screenshot"><br>
Preferences dialog (temporary placeholder UI)<br>
(dialogs use a popover "speech bubble" for technical reasons)

---

<img src="./misc/Change_Default_Screenshot.png" width="50%" alt="Change default startup disk dialog"><br>
The app can also be used to change the default Startup Disk directly from the menu<br>
(for parity with the future Linux version)

---
# Naming, description, scope etc TODO:

## GitHub project name & description / about blurb (early brainstorming):
- "Asahi Linux Helper: macOS menubar app to easily Restart in Linux (btw add other Asahi Linux tools later?)"
(other options?)
- "Asahi Restart Helper: Restart to Asahi Linux this time only (macOS menubar app)"
- "Asahi Restart Helper makes it easy to choose which OS / disk will be used to restart
(it can also change the default Startup Disk setting)"
- "Asahi Linux Helper: Restart to/from macOS/Linux (and other Asahi Linux tools)"
(other options?)

Asahi Restart Helper (macOS version) is a macOS toolbar app that:
Asahi Linux Helper (macOS version) is a macOS toolbar app that:
- makes it easy to restart in Asahi Linux from macOS
- for parity with Linux version of the app (todo), offers an option to select default Startup Disk from within the app
- maybe later: updates m1n1 (by launching the Asahi installer via a special command line argument?)
- maybe later: add other Asahi installer related tasks (launch Asahi installer, etc?)
- obviously will have to ask for permission before using the Asahi name but that won't be relevant for a while

btw:
- update m1n1 or just run the installer?
- something else?

## Requirements:
- For Apple silicon Macs only (Asahi Linux is ARM64-only)
- macOS 12.3 or newer
- Asahi Linux must already be installed on the computer (obviously)

There is also a separate corresponding project for Linux (todo)

## Project goals:
- The actual point of this app: after using Asahi Linux installer, make it easy to reboot using the "other" OS,
instead of requiring the user to already know the holding-down-the-power-button trick
(and/or already knowing how to change the default startup disk)
- Help users conveniently boot to Linux from macOS (Linux version (todo) for the other way around)
- Don't be annoying
- Don't be stupid
- Keep it simple
- Use non-technical language (give newbies a chance, experts will know how to use the app regardless of word choices)
- Hide implementation details, but if the user explicitly wants to know how and why, explain in a help dialog:
- "this app uses Apple's official 'bless' tool with --nextonly to temporarily make e.g. Linux load after restarting
next time (i.e. without having to change the default Startup Disk value)"
- bonus: teach the possibility of using "sudo bless --mount "/Volumes/Asahi Linux" --setBoot --nextonly" in
Terminal.app and then restarting normally -> change OS for next time only
- bonus: teach newbies the essential skill of holding down the power button to get to boot picker (show animation?)
- bonus: mention the Linux version of this tool (todo) and "Linux bless"
(sudo dnf install asahi-bless && sudo asahi-bless)

## Stretch goals:
- Somehow convince official Asahi installer to automatically install the app (icon in user's macOS menubar)
- Somehow convince Asahi project to completely take over and adopt this app (have someone else fix and maintain it)
- Bonus: corollary: somehow convince whatever Asahi installer installs (currently Fedora Asahi Remix) to automatically
install a corresponding app icon in Linux (todo) too
- and the extension that allows showing the icon on Gnome too? KDE Plasma allows this by default
- Bonus: somehow convince the developer of "asahi-bless" (Linux "bless" counterpart) to add the necessary
command line options, and generally make the tool easier to use
- Bonus: somehow convince whatever Asahi installer installs (currently Fedora Asahi Remix) to automatically
install asahi-bless by default
- Bonus: somehow convince Asahi installer to not silently make Asahi Linux the default Startup Disk and
not completely hide all evidence of user's macOS installation ever existing by default (!)

## Project non-goals:
- Don't support Intel Macs (only support what the Asahi Linux installer supports)
- Don't support macOS versions older than 12.3 (only support what the Asahi Linux installer supports)
- Don't implement anything that could be considered "scope creep"
- NOTE: is being "Asahi Linux Helper" scope creep: should this be strictly "Restart in Linux" (and "Restart in macOS")?
- scope creep? Should name be just "Asahi Restart Helper" instead? Does the Asahi project want a more general "helper"?
- potential future "helper" functionality: update m1n1 bootloader
- potential future "helper" functionality: run Asahi installer
- potential future "helper" functionality (stretch goal): uninstall Asahi Linux

----------------------------------------
---------------------------------------

# TODO LIST
# TODO LIST:

## TODO Rating System:
- **1: Must have.** Critical, must not be omitted.
Expand Down
99 changes: 97 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,98 @@
[Link to README (macOS version)](./Asahi%20Linux%20Helper/README.md)
# Asahi Linux Helper (macOS version)

**Asahi Linux Helper** is a macOS menubar app that makes it easy to restart in Linux (without having to change the default Startup Disk, or to hold down power button)

There will also be a future Linux version (todo)

## Download initial demo version:

Download:
[Asahi Linux Helper.app.zip](./misc/Asahi%20Linux%20Helper.app.zip)

- Self-signed
- UI demo only
- Doesn't actually restart yet
- Can't actually change default Startup Disk yet

## Screenshots:

<img src="./misc/Menu_Screenshot.png" width="50%" alt="Main menu screenshot"><br>
1\. Click "Restart in Linux..." from the menu to restart in Linux next.<br>
(i.e. restart in Linux this time only without changing the default Startup Disk!)


---

<img src="./misc/Restart_Dialog_Screenshot.png" width="50%" alt="Restart dialog screenshot"><br>
2\. Then click "Restart now!" from the Restart dialog. The system will restart without asking any further questions (if the correct permissions etc are set).

---

<img src="./misc/Preferences_Screenshot.png" width="50%" alt="Preferences dialog screenshot"><br>
Preferences dialog (temporary placeholder UI)<br>
(dialogs use a popover "speech bubble" for technical reasons)

---

<img src="./misc/Change_Default_Screenshot.png" width="50%" alt="Change default startup disk dialog"><br>
The app can also be used to change the default Startup Disk directly from the menu<br>
(for parity with the future Linux version)

---

## Requirements:
- For Apple silicon Macs only (Asahi Linux is ARM64-only)
- macOS 13.5 or newer (or whatever the Asahi Linux installer requires)
- Asahi Linux must already be installed on the computer
- Can't launch Asahi Linux installer from this app, at least for now

## Project goals:
- The actual point of this app: after using the official Asahi Linux installer, make it easy to reboot using the "other" OS,
instead of requiring the user to already know the holding-down-the-power-button trick
(and/or to already know how to change the default startup disk)
- Help users conveniently boot to Linux from macOS (Linux version (todo) for the other way around)
- Don't be annoying
- Don't be stupid
- Keep it simple
- Use non-technical language (give newbies a chance, experts will know how to use the app regardless of word choices)
- Hide implementation details, but if the user explicitly wants to know how and why, explain in a help dialog:
- "this app uses Apple's official 'bless' tool with --nextonly to temporarily make e.g. Linux load after restarting
next time (i.e. without having to change the default Startup Disk value)"
- bonus: teach the possibility of using "sudo bless --mount "/Volumes/Asahi Linux" --setBoot --nextonly" in
Terminal.app and then restarting normally -> change OS for next time only
- bonus: teach newbies the essential skill of holding down the power button to get to boot picker (show animation?)
- bonus: mention the Linux version of this tool (todo) and "Linux bless"
(sudo dnf install asahi-bless && sudo asahi-bless)

## Stretch goals:
- Somehow convince official Asahi installer to automatically install this app (icon in user's macOS menubar)
- Somehow convince Asahi project to take over and adopt this app
(have someone else maintain it, and fix the code if necessary)
- Bonus: somehow convince Asahi installer to not silently make Asahi Linux the default Startup Disk and
not completely hide all evidence of user's macOS installation ever existing by default (!)

### (Stretch goals for the upcoming Linux version)
- Somehow convince whatever Asahi installer installs (currently Fedora Asahi Remix) to automatically
install a corresponding app icon in Linux too (todo: implement Linux version of this app)
- also install the extension that allows showing the icon on Gnome? (KDE Plasma allows showing icon by default)
- Bonus: somehow convince the developer of "asahi-bless" (Linux "bless" counterpart) to add the necessary
command line options, and generally make the tool easier to use
- Bonus: somehow convince whatever Asahi installer installs (currently Fedora Asahi Remix) to automatically
install asahi-bless by default


## Project non-goals:
- Don't support Intel Macs (only support what the Asahi Linux installer supports)
- Don't support macOS versions older than 12.3 (only support what the Asahi Linux installer supports)
- Don't implement anything that could be considered "scope creep"
- NOTE: is being "Asahi Linux Helper" scope creep: should this be strictly "Restart in Linux" (and "Restart in macOS")?

## Opening the Project in Xcode:

1. Clone the repository: `git clone (URL)` or download the zip file and extract it.
2. Launch Xcode, choose "Open another project...".
3. Navigate to the new folder (Xcode will automatically look for and open the `.xcodeproj` file)
4. You should now be able to build and test the project (please open a new issue if that was not the case!)

# See also: [TODO.md](./Asahi%20Linux%20Helper%20(Xcode%20project)/TODO.md)

There will also be a separate Linux version (todo)
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes

0 comments on commit 2e7ff51

Please sign in to comment.