Icon design needed for Installer

Hey. I’m trying to design a new “flow” for the installer for the “Just install Haiku on this disk and be done with it” case.

For this I need some icons.

First some context: On Linux disk drives are usually enumerated with /dev/sdX or with some uuid paths. As an end user I found these incredibly confusing, making it difficult to pick the right drive.
I was pleasently suprised by Haikus device paths. These include the connection type so will make it really difficult to accidentally overwrite the system device rather than a USB one.

Now, I want to carry this advantage over to the Installer, for this some icons are needed. From thinking about this this is what I have gotten to now.

There should be one Icon for the actuall connection type, ideally something that clearly denotes wether this is normally internal or external.

USB(1+2) and USB3 need their own icons, likely the usb3 one more blue.
USB-C needs an icon; and eSata needs an icon (for the external case)

For internal there should be an icon for SATA, M.2, NVME and mSATA (or maybe just re-use the sata one) and IDE.
These should be designed that they are similar in nature but can be differenciated. Maybe like the archive types are designed, perhaps just adding a Text to it for this information.

The reasoning to have one for the connection and one for the device types is to be able to represent externally conneted drives. We should likely also have icons for drives directly. maybe that is easier?

Anyhow. I am not that good an icon designer so am asking for help here.
If anything is unclear please let me know, and give feedback to the desgin.

1 Like

Just a quick note: there is already an API in place for getting the icons from the disk drivers (used by Tracker and DriveSetup). So you can write your Installer code using that, and the drivers can be adjusted later to add the extra icons.

Not sure if the SATA driver can make a difference between SATA and eSATA, but, does eSATA still exist anyways? Do we even support it?

Likewise for M2, M2 is just a connector, and your disk will be either SATA or nVME, with the driver (and the OS) likely having no way to know the drive form factor.


eSata does exist as external connectors on some computers, i’m not sure if we explicitly support it. Does it need explicit support?

As for m.2, i am aware this is only a connector. But perhaps we can figure out based on product name and or mainboard name that a drive has to be connected over m.2. This would require a database however.

maybe users have no idea what the drive looks like in their computer in the first place? In that case we only would need an “this is an internal drive” icon maybe.

Bingo. There are four internal hard drives in this room. If you held a gun to my head and demanded to know what type each one is and what connection each one uses, you might as well shoot me now. And I’d at least rate myself a “prosumer”.

Maybe the reasoning of “it’s not connected via USB so it’s probably internal” would be enough?

I doubt people still have serial connected drives on any hw haiku would run on

edit: maybe thunderbolt? but that also has OS knowledge

I think people mainly need to make distinction between disks and USB devices.
Another thing they may want to know is if the disk is mechanical or not, for speed reasons.

A device connected after boot has a very good chance to be external but if it is connected before you will have difficulties to know. And, if you planned to install something on a device, you probably plugged it in.

Just use the drive icon as Tracker and DriveSetup and BootMan do. It helps identifying that this is the same drive.

As I said, if we find the end result is not satisfying, we can always change the drivers to provide better icons.

I think the closest thing to your sketch is the disk list in BootManager installation wizard. So maybe you can even reuse that code in Installer?

Will it also automaticly setup the EFI files?

If you are talking about how it will install it then yes.

I am not going to setup efi boot menu entries in this iteration. It will be equivalent to how the boot usb image is created (gpt+mbr+esp)

Oh, indeed. It looks quite good. I think there can be some improvements like showing how the drive is formated or such. But it is a great start

1 Like