An icon font providing popular linux distros' logos
npm install font-logosfont-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.
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:
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 | |
| 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 | |
| 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 | |
| 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 | |
| Tux | fl-tux | | 0xf31a | |
| 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 | |
Make sure you have the following dependencies installed:
* Node, Python and jq to run the build scripts
* FontForge to generate the fonts
* wkhtmltopdf to generate this readme's preview image
Then run npm install/yarn install and make.
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 svgs in vectors/
* The icons.tsv is ammended (i.e. new icons added at the bottom)
* Every time the svgs 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 do 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)
* 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)