Platforms

To add a new Linux distribution, you can get inspiration from these pull requests:

  • https://github.com/kdeldycke/extra-platforms/pull/156

  • https://github.com/kdeldycke/extra-platforms/pull/94

extra_platforms.platform API

        classDiagram
  Trait <|-- Platform
    

Platforms, also known as Operating Systems.

class extra_platforms.platform.Platform(id, name, icon='❓', url='')[source]

Bases: Trait

A platform can identify multiple distributions or OSes with the same characteristics.

It has a unique ID, a human-readable name, and boolean to flag current platform.

icon: str = '❓'

Icon of the platform.

info()[source]

Returns all platform attributes we can gather.

Return type:

dict[str, str | bool | None | dict[str, str | None]]

id: str

Unique ID of the trait.

name: str

User-friendly name of the trait.

extra_platforms.platform_data API

Platform definitions and metadata.

Note

Default icons are inspired from Starship project: - https://starship.rs/config/#os - https://github.com/davidkna/starship/blob/e9faf17/.github/config-schema.json#L1221-L1269

Some icons, especially Linux distributions, have their own dedicated codepoints in NerdFonts.

extra_platforms.platform_data.NOBARA = Platform(id='nobara', name='Nobara')

Note

Instead of using a loose Unicode icon for the Nobara OS, or just not adding any, we are using a NerdFont icon instead:  (i.e. nf-linux-nobara / f380).

The side-effect of using a NerdFont character is it will only display correctly when using a supported font. Otherwise, it will appear as an unknown or invisible character depending on the fonts.

Todo

In the future, we may want to have two icons for each platform, one that is Unicode-based, the other that is NerdFont-based.