# font-logos #
![Available logos](assets/readme-header.png)
font-logos is an icon font containing logos of popular linux distributions and other open source software.
*Note:* All brand icons are trademarks of their respective owners and should only be used to represent the company or product to which they refer.
## Installation ##
Install the font by downloading and unpacking the latest release's zip manually or installing it from npm:
npm install font-logos
To use the font, include `assets/font-logos.css` as well as the
fonts in your project and use the CSS classes listed below.
Alternatively just link to it using a CDN such as [jsDelivr](//jsdelivr.com):
## Usage ##
Include an icon using the corresponding CSS class in an empty element:
Add `fl-fw` as class for a fixed width icon.
If you want to insert a glyph of this font on a GNU/Linux system press `Ctrl + Shift + u`, release the keys and then type the code point, for instance: `Ctrl + Shift + u` and `f31a` will insert the `Tux` glyph.
Available logos are:
| Distribution | CSS class | Code | Code point | Image |
| ------------------------- | ----------------------- | --------------------------------------- | :--------: | :---------------------------------------------------: |
| Alma Linux | `fl-almalinux` | `` | `0xf31d` |
|
| Alpine | `fl-alpine` | `` | `0xf300` |
|
| AOSC OS | `fl-aosc` | `` | `0xf301` |
|
| Apple | `fl-apple` | `` | `0xf302` |
|
| Archcraft | `fl-archcraft` | `` | `0xf345` |
|
| ArchLabs | `fl-archlabs` | `` | `0xf31e` |
|
| Arch Linux | `fl-archlinux` | `` | `0xf303` |
|
| ArcoLinux | `fl-arcolinux` | `` | `0xf346` |
|
| Arduino | `fl-arduino` | `` | `0xf34b` |
|
| Artix Linux | `fl-artix` | `` | `0xf31f` |
|
| Awesome WM | `fl-awesome` | `` | `0xf354` |
|
| BigLinux | `fl-biglinux` | `` | `0xf347` |
|
| bspwm | `fl-bspwm` | `` | `0xf355` |
|
| Budgie | `fl-budgie` | `` | `0xf320` |
|
| CentOS | `fl-centos` | `` | `0xf304` |
|
| Cinnamon | `fl-cinnamon` | `` | `0xf35f` |
|
| Codeberg | `fl-codeberg` | `` | `0xf330` |
|
| CoreOS | `fl-coreos` | `` | `0xf305` |
|
| Crystal Linux | `fl-crystal` | `` | `0xf348` |
|
| Debian | `fl-debian` | `` | `0xf306` |
|
| Deepin | `fl-deepin` | `` | `0xf321` |
|
| Devuan | `fl-devuan` | `` | `0xf307` |
|
| Docker | `fl-docker` | `` | `0xf308` |
|
| dwm | `fl-dwm` | `` | `0xf356` |
|
| elementary OS | `fl-elementary` | `` | `0xf309` |
|
| Endeavour OS | `fl-endeavour` | `` | `0xf322` |
|
| Enlightenment | `fl-enlightenment` | `` | `0xf357` |
|
| F-droid | `fl-fdroid` | `` | `0xf36a` |
|
| Fedora | `fl-fedora` | `` | `0xf30a` |
|
| Fedora (inverse) | `fl-fedora-inverse` | `` | `0xf30b` |
|
| Ferris | `fl-ferris` | `` | `0xf323` |
|
| Flathub | `fl-flathub` | `` | `0xf324` |
|
| Fluxbox | `fl-fluxbox` | `` | `0xf358` |
|
| Forgejo | `fl-forgejo` | `` | `0xf335` |
|
| FOSDEM | `fl-fosdem` | `` | `0xf36b` |
|
| FreeBSD | `fl-freebsd` | `` | `0xf30c` |
|
| FreeCAD | `fl-freecad` | `` | `0xf336` |
|
| freedesktop.org | `fl-freedesktop` | `` | `0xf360` |
|
| Garuda Linux | `fl-garuda` | `` | `0xf337` |
|
| Gentoo | `fl-gentoo` | `` | `0xf30d` |
|
| GIMP | `fl-gimp` | `` | `0xf338` |
|
| Gitea | `fl-gitea` | `` | `0xf339` |
|
| GNOME | `fl-gnome` | `` | `0xf361` |
|
| GNU Guix | `fl-gnu-guix` | `` | `0xf325` |
|
| GTK | `fl-gtk` | `` | `0xf362` |
|
| Hyperbola GNU/Linux-libre | `fl-hyperbola` | `` | `0xf33a` |
|
| Hyprland | `fl-hyprland` | `` | `0xf359` |
|
| i3 | `fl-i3` | `` | `0xf35a` |
|
| illumos | `fl-illumos` | `` | `0xf326` |
|
| Inkscape | `fl-inkscape` | `` | `0xf33b` |
|
| JWM | `fl-jwm` | `` | `0xf35b` |
|
| Kali Linux | `fl-kali-linux` | `` | `0xf327` |
|
| KDE | `fl-kde` | `` | `0xf373` |
|
| KDE Neon | `fl-kde-neon` | `` | `0xf331` |
|
| KDE Plasma | `fl-kde-plasma` | `` | `0xf332` |
|
| Kdenlive | `fl-kdenlive` | `` | `0xf33c` |
|
| KiCad | `fl-kicad` | `` | `0xf34c` |
|
| Krita | `fl-krita` | `` | `0xf33d` |
|
| Kubuntu | `fl-kubuntu` | `` | `0xf333` |
|
| Kubuntu (inverse) | `fl-kubuntu-inverse` | `` | `0xf334` |
|
| openSUSE Leap | `fl-leap` | `` | `0xf37e` |
|
| LibreOffice | `fl-libreoffice` | `` | `0xf376` |
|
| LibreOffice Base | `fl-libreofficebase` | `` | `0xf377` |
|
| LibreOffice Calc | `fl-libreofficecalc` | `` | `0xf378` |
|
| LibreOffice Draw | `fl-libreofficedraw` | `` | `0xf379` |
|
| LibreOffice Impress | `fl-libreofficeimpress` | `` | `0xf37a` |
|
| LibreOffice Math | `fl-libreofficemath` | `` | `0xf37b` |
|
| LibreOffice Writer | `fl-libreofficewriter` | `` | `0xf37c` |
|
| Linux Mint | `fl-linuxmint` | `` | `0xf30e` |
|
| Linux Mint (inverse) | `fl-linuxmint-inverse` | `` | `0xf30f` |
|
| Loc-OS | `fl-locos` | `` | `0xf349` |
|
| LXDE | `fl-lxde` | `` | `0xf363` |
|
| LXLE Linux | `fl-lxle` | `` | `0xf33e` |
|
| LXQt | `fl-lxqt` | `` | `0xf364` |
|
| Mageia | `fl-mageia` | `` | `0xf310` |
|
| Mandriva | `fl-mandriva` | `` | `0xf311` |
|
| Manjaro | `fl-manjaro` | `` | `0xf312` |
|
| MATE | `fl-mate` | `` | `0xf365` |
|
| mpv | `fl-mpv` | `` | `0xf36e` |
|
| MX Linux | `fl-mxlinux` | `` | `0xf33f` |
|
| Neovim | `fl-neovim` | `` | `0xf36f` |
|
| NixOS | `fl-nixos` | `` | `0xf313` |
|
| Nobara Linux | `fl-nobara` | `` | `0xf380` |
|
| Octoprint | `fl-octoprint` | `` | `0xf34d` |
|
| OpenBSD | `fl-openbsd` | `` | `0xf328` |
|
| OpenSCAD | `fl-openscad` | `` | `0xf34e` |
|
| OpenSUSE | `fl-opensuse` | `` | `0xf314` |
|
| OSH | `fl-osh` | `` | `0xf34f` |
|
| OSHWA | `fl-oshwa` | `` | `0xf350` |
|
| OSI | `fl-osi` | `` | `0xf36c` |
|
| Parabola GNU/Linux-libre | `fl-parabola` | `` | `0xf340` |
|
| Parrot OS | `fl-parrot` | `` | `0xf329` |
|
| Pop!_OS | `fl-pop-os` | `` | `0xf32a` |
|
| PostmarketOS | `fl-postmarketos` | `` | `0xf374` |
|
| Prusa Slicer | `fl-prusaslicer` | `` | `0xf351` |
|
| Puppy Linux | `fl-puppy` | `` | `0xf341` |
|
| Qt | `fl-qt` | `` | `0xf375` |
|
| Qtile | `fl-qtile` | `` | `0xf35c` |
|
| QubesOS | `fl-qubesos` | `` | `0xf342` |
|
| Raspberry pi | `fl-raspberry-pi` | `` | `0xf315` |
|
| Red Hat | `fl-redhat` | `` | `0xf316` |
|
| RepRap | `fl-reprap` | `` | `0xf352` |
|
| RISC-V | `fl-riscv` | `` | `0xf353` |
|
| River | `fl-river` | `` | `0xf381` |
|
| Rocky Linux | `fl-rocky-linux` | `` | `0xf32b` |
|
| Sabayon | `fl-sabayon` | `` | `0xf317` |
|
| Slackware | `fl-slackware` | `` | `0xf318` |
|
| Slackware (inverse) | `fl-slackware-inverse` | `` | `0xf319` |
|
| Snappy | `fl-snappy` | `` | `0xf32c` |
|
| Solus | `fl-solus` | `` | `0xf32d` |
|
| Sway | `fl-sway` | `` | `0xf35d` |
|
| Tails | `fl-tails` | `` | `0xf343` |
|
| Thunderbird | `fl-thunderbird` | `` | `0xf370` |
|
| Tor Browser | `fl-tor` | `` | `0xf371` |
|
| Trisquel GNU/Linux | `fl-trisquel` | `` | `0xf344` |
|
| openSUSE Tumbleweed | `fl-tumbleweed` | `` | `0xf37d` |
|
| Tux | `fl-tux` | `` | `0xf31a` |
|
| Typst | `fl-typst` | `` | `0xf37f` |
|
| Ubuntu | `fl-ubuntu` | `` | `0xf31b` |
|
| Ubuntu (inverse) | `fl-ubuntu-inverse` | `` | `0xf31c` |
|
| Vanilla OS | `fl-vanilla` | `` | `0xf366` |
|
| Void | `fl-void` | `` | `0xf32e` |
|
| VS Codium | `fl-vscodium` | `` | `0xf372` |
|
| Wayland | `fl-wayland` | `` | `0xf367` |
|
| Wikimedia | `fl-wikimedia` | `` | `0xf36d` |
|
| XeroLinux | `fl-xerolinux` | `` | `0xf34a` |
|
| XFCE | `fl-xfce` | `` | `0xf368` |
|
| Xmonad | `fl-xmonad` | `` | `0xf35e` |
|
| Xorg | `fl-xorg` | `` | `0xf369` |
|
| Zorin OS | `fl-zorin` | `` | `0xf32f` |
|
## Building ##
Make sure you have the following dependencies installed:
* Node, Python and jq to run the build scripts
* [FontForge](//fontforge.org) to generate the fonts
* [wkhtmltopdf](http://wkhtmltopdf.org/) to generate this readme's preview image
Then run `npm install`/`yarn install` and `make`.
## Releasing ##
If you are a maintainer of this repository and a new release is to be published
* Make sure all PRs (that shall be pulled) are pulled
* The PRs add new `svg`s in `vectors/`
* The `icons.tsv` is ammended (i.e. new icons added at the bottom)
* Every time the `svg`s or `icons.tsv` is touched in the `master` branch (i.e. through pulling) the preview image is updated
* Note that the `README.md` is NOT updated. You can manually modify it to indicate/add recently added but not released icons.
* Once the release seems ready:
* Edit the version number in `package.json` (and push that change to `master`)
* Trigger the "Draft a Release" workflow manually on the Actions page (on the `master` branch)
* The workflow will add a git tag for the release
* Go to the releases list and find the draft release
* Edit the description etc pp and finally
* Push "publish release"
* The release is published on Github
* Automatically the "Update README" workflow is triggered
* The `README.md` is regenerated (the preview should already be up to date, see above)
* Maybe the autotriggered workflow does not work, then manually trigger
* Automatically the "Publish release to npm" workflow is triggered
* If the npm token is not expired the release is pushed to NPM
* You need to publish on NPM manually if token is expired (expected)
* `npm update` (and commit/push updates if there were any)
* `npm adduser` to log into npm with MFA
* `npm publish`