# 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` | | | 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` | | ## 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 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)