Hardware kill switch status Bar Layout
Epic: https://source.puri.sm/Librem5/use-cases/issues/90
The basic structure is
- Network-related status indicators on the left (Cellular, Wifi, SIM card etc.)
- Clock at the center
- Other status indicators on the right (Battery, Reminders, Microphone/Camera activity, etc.)
Goals
The status icons should be there when they are needed to see the current status, but not clutter the top bar unnecessarily when they aren't. We should provide feedback when something is disabled via hardware kill switch, but not "shame" people who keep e.g. cellular turned off most of the time by forcing an icon in their face at all times. Other mobile operating systems can be quite forceful in this regard, and I'd like to avoid this, to make the kill switches feel more like an integrated part of the system whose use is supported and encouraged.
Due to how many states there can be (e.g. off via HKS | off via software | on but not in use | on and in use), and the impact on different use cases, it's hard to come up with a general policy for showing/hiding icons which will work for everything.
Proposed behavior
If Cellular or Wifi/Bluetooth are off via hardware kill switch, their status icons do not appear in the top bar at all. Bluetooth is only shown if it is on via hardware kill switch and via software toggle (it defaults to being off). If Cellular is not disabled via HKS, there is a permanently visible icon indicating the modem status.
Due to their sensitive nature, it might make sense to treat camera and microphone differently than the other HKS, and have explicit indication that they are off, instead of just hiding the icons. So if camera and microphone are disabled via HKS there would be icons in the top bar to reflect that. If they are on, but not in use there are no icons, but if they are in use there are red icons to make it very visible. I'm not sure if this is the right way to go, maybe keeping the same behavior as the network HKS would make more sense (don't show if off via HKS)?
We may need additional integrations with this feature in some apps (e.g. Calls), which rely on the microphone or camera in order to function at all.
All of this will need a lot more thought and discussion, so feel free to comment.