mobile-nixos
mobile-nixos copied to clipboard
Installer roadmap
TODO: better furnish those notes
An installer for Mobile NixOS would implement a limited choice of scenarios.
- partitioning:
- unencrypted
- LUKS
- "PE" (phone environment, like desktop environment)
- Phosh
- Plasma Mobile
With a few "open ended" questions.
- Full Name
- username
- password
- passphrase (when LUKS is selected)
- Timezone
- Language
- Keymap (maybe not, since wayland makes this impossible to support)
The partitioning options would apply an opinionated partition layout, each basically the same.
The phone environment options would basically enable either phosh/plasma mobile, and maybe a few useful not-too-opinionated options.
All options here would assume usage of Tow-Boot to dedicated storage (mmcboot, spi), in other words that the main storage (eMMC, SD) can be wiped in full.
Starting with #474 is likely a good option for getting started quickly.
Though I would not implement it "into" another phone environment, but would look into using e.g. cage
to run only the calamares installer.
This means that the calamares installer should make it possible for the user to select the network connection (wireless, wired, etc) in any way it can.
I guess that would mean using Network Manager?
Things to explore before starting
- [ ] Can the network selection be handled through calamares?
- [ ] Would using
cage
allow an on-screen keyboard to work? - [ ] What are the features / limitations of the NixOS module for calamares?
Things to implement tangentially
- [ ] "Installing" the boot stage things to the boot partition
About networking
It looks like indeed Calamares has some form of knowledge about networking using Network Manager:
- https://github.com/calamares/calamares/blob/af045ab8b240be5c921663e85b5a04965d2aa022/src/modules/networkcfg/main.py
- https://github.com/calamares/calamares/blob/af045ab8b240be5c921663e85b5a04965d2aa022/src/libcalamares/network/Manager.cpp
I don't know still/yet if it allows having a step to select a connection.
About cage
It looks like cage can't do OSKs.
This would make things awkward to type things in.
In this case, alternatives needs to be explored.
About networking
It looks like indeed Calamares has some form of knowledge about networking using Network Manager:
* https://github.com/calamares/calamares/blob/af045ab8b240be5c921663e85b5a04965d2aa022/src/modules/networkcfg/main.py * https://github.com/calamares/calamares/blob/af045ab8b240be5c921663e85b5a04965d2aa022/src/libcalamares/network/Manager.cpp
I don't know still/yet if it allows having a step to select a connection.
Not sure if you saw this but it seems like the developers are quite against this idea. Although this is quite an old issue. https://github.com/calamares/calamares/issues/946
There is also a mobile specific calamares extension that got upstreamed from postmarket os. https://github.com/calamares/calamares-extensions/pull/3 It seems to tick a lot of the boxes outlined in the OP for this issue.
This is now solved in #522.
With two caveats:
Timezone support was attempted, but limitations in the toolkit made this hard to support trivially. Similarly, language selection would be as hard if not harder for the time being.