Apps opening each other: a .gmi from Storage in the Gemini App #43

Open
opened 2026-10-06 05:34:10 +00:00 by twisla · 0 comments
Owner

Idea

Enter on a .gmi file in the Storage App opens it in the Gemini App, rendered, with its links working, instead of as plain text. More generally: let one App ask another to open something.

Why

The Storage App shows .gmi files as text (F1, Q134). The Gemini App already renders Saved Pages from the card, links and all. Nothing lets an App hand a file or an address to another App: each one is opened from the Launcher with no argument.

What's known

  • AppManager::open(id) takes an App's id and nothing else (lib/core/src/app_manager.h).
  • The Gemini App opens file:///gemini/saved/... addresses itself; a Saved Page's first line says where it came from, and a .gmi elsewhere on the card has no such line.
  • The same mechanism would serve others: a .pcap in the LoRa Scanner, a .txt in Notes (#19), a gemini:// link met in IRC, an .ota in Settings > Firmware.
  • Back should return to where the user came from (the Storage App, in its folder), not to the Launcher.

Questions

  1. What's passed: a path, an address, a typed request?
  2. Does the receiving App replace what it was showing, and does Back come back to the caller?
  3. Which pairs come first?
  4. How does an App say what it can open, so the Storage App offers the right one?

Related

docs/milestones/F1.md (Q134, Q139), lib/core/src/app_manager.h, src/apps/gemini_app.cpp, #3, #19, #13 (Lua Apps would want the same).

## Idea Enter on a `.gmi` file in the Storage App opens it in the Gemini App, rendered, with its links working, instead of as plain text. More generally: let one App ask another to open something. ## Why The Storage App shows `.gmi` files as text (F1, Q134). The Gemini App already renders Saved Pages from the card, links and all. Nothing lets an App hand a file or an address to another App: each one is opened from the Launcher with no argument. ## What's known - `AppManager::open(id)` takes an App's id and nothing else (`lib/core/src/app_manager.h`). - The Gemini App opens `file:///gemini/saved/...` addresses itself; a Saved Page's first line says where it came from, and a `.gmi` elsewhere on the card has no such line. - The same mechanism would serve others: a `.pcap` in the LoRa Scanner, a `.txt` in Notes (#19), a `gemini://` link met in IRC, an `.ota` in Settings > Firmware. - Back should return to where the user came from (the Storage App, in its folder), not to the Launcher. ## Questions 1. What's passed: a path, an address, a typed request? 2. Does the receiving App replace what it was showing, and does Back come back to the caller? 3. Which pairs come first? 4. How does an App say what it can open, so the Storage App offers the right one? ## Related `docs/milestones/F1.md` (Q134, Q139), `lib/core/src/app_manager.h`, `src/apps/gemini_app.cpp`, #3, #19, #13 (Lua Apps would want the same).
twisla added this to the F1 Files and Notes milestone 2026-10-06 05:34:10 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: twisla/roro9stack#43