papirus-icon-theme: three themes and fifteen packages
Pixel perfect icon theme for Linux
At a glance
- What is it?
- Papirus is a GPL-3.0 SVG icon theme for Linux derived from the Paper Icon Set, distributed as three theme directories, installed through a PPA, a piped shell script, Snap or fifteen distribution packages, and released with tags that are commit dates. Its own README says five variants and then lists three.
- Who is it for?
- Adopt papirus-icon-theme if you want one icon set across GTK and KDE desktops and do not mind a theme that is a superset of Paper rather than a redesign. Do not adopt it expecting the variant count in the README to match the variants you can install, since three directories ship where the text says five.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 5 days ago.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.
Star history
- PapirusDevelopmentTeam/papirus-icon-theme8,208 ★ · +109
| Repository | 2026-09-22 | 2026-11-14 |
|---|---|---|
| PapirusDevelopmentTeam/papirus-icon-theme | 8.1k | 8.2k |
109 Stars in the last 53 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
The README says five variants and then lists three
The line is exact: Papirus icon theme is available in five variants. What follows is a list of three.
Papirus is the base variant, Papirus Dark is for dark themes and Papirus Light is for light themes. The repository agrees with the list rather than the number: the top level contains `Papirus/`, `Papirus-Dark/` and `Papirus-Light/`, three directories each with an `index.theme`, which is also how the Makefile discovers what to install.
So either two variants were dropped without fixing the sentence, or the sentence was never updated. The install sections only ever mention those three.
For a user the effect is small, since you choose between base, dark and light. For anyone writing documentation or a package that claims to install all variants, the number in the prose is the part that will be wrong.
Three variables decide where, what and from where
The Papirus Installer is the route that does not depend on a distribution, and it is the same for installing and updating. The README marks that as important: use the exact same command to update icon themes.
Three environment variables control it. `DESTDIR` is the destination directory for installing icon themes and defaults to `/usr/share/icons`. `EXTRA_THEMES` is the additional themes installed alongside the base one and defaults to `Papirus-Dark Papirus-Light`. `TAG` is a branch or tag to install a specific version from and defaults to `master`.
The same one-line command serves four different destinations depending only on `DESTDIR`. As root it installs system-wide, which is the recommended form:
wget -qO- https://git.io/papirus-icon-theme-install | shWith `DESTDIR="$HOME/.icons"` it installs for GTK in your home directory, with `DESTDIR="$HOME/.local/share/icons"` for KDE, and with `DESTDIR="/usr/local/share/icons"` for the BSD layouts. Removal has its own interactive script, `wget -qO- https://git.io/papirus-icon-theme-uninstall | sh`, which the README says completely removes the theme.
Release tags are commit dates, computed by the Makefile
The releases are named 20260801, 20250501 and 20250201, and the Makefile explains where that format comes from. The `_get_version` target evaluates a version from `git show -s --format=%cd --date=format:%Y%m%d HEAD`, so the tag is the commit date of whatever is at HEAD when you release.
The `release` target then does `git tag -f $(VERSION)`, pushes, and pushes the tags, and `undo_release` deletes the tag and removes it from the origin. There is also a `dist` target that archives `master` restricted to the icon themes with `git archive`, so a tarball and a tag come from the same commit.
Two consequences. There is no semantic version, so a consumer cannot express "anything newer than 20250501" except by date, and a re-release moves the tag rather than adding one. And the visible releases show a gap: 20250201 to 20250501 is three months, then 20250501 to 20260801 is fifteen.
The last push was on 2026-11-01 and the repository is not archived, so work is landing between releases rather than only in them.
Fifteen distribution packages, and a warning about them
The third-party packages section is a table of fifteen rows, each with a named maintainer and the command to install. Alpine uses `apk add`, ALT Linux `apt-get install`, Arch's extra repository `pacman -S` plus an AUR variant called papirus-icon-theme-git, Debian 9 and Ubuntu 18.04 use `apt install`, Fedora 27+ uses `dnf install`, FreeBSD points at freshports, Gentoo uses `emerge -a`, NixOS uses `nix-env -iA nixos.papirus-icon-theme`, OpenBSD uses `doas pkg_add`, openSUSE points at its own software portal and is marked official, ROSA uses `urpmi`, Solus uses `eopkg it`, and Void uses `xbps-install -S`.
Two markers distinguish official packaging from community packaging: openSUSE is marked official, and Arch's repository entry is marked extra, while the AUR row is a separate `-git` package. Everything else is maintained by a person whose name is in the table.
The README attaches two conditions. Packages in the list are third-party, so problems and questions go to the package maintainer, and some may be outdated, with Repology named as the place to check versions. There is also an invitation at the bottom: maintainers who want to be on the list should open an issue or a pull request.
Hardcoded tray icons need RSVGConvert and a 22px size
Some software writes an absolute path instead of an icon name in a `.desktop` file or in its own source, which makes the icon unthemable. The README's answer is two third-party tools.
For application icons the README recommends hardcode-fixer, and says Papirus supports most of the applications in that tool's list. Where it does not, the advice is to open an issue there or edit the `.desktop` file by hand.
For tray icons the tool is Hardcode-Tray, and one instruction is marked important: to get Papirus to work right with it, use the hardcode-tray option `--conversion-tool RSVGConvert`.
sudo -E hardcode-tray --conversion-tool RSVGConvert --size 22 --theme PapirusThe size is not arbitrary. The recommendations are 22px for Unity, 22px for KDE, 22px for GNOME with a pointer to the manual fixes section, and 22px for XFCE. The `-E` flag is there because sudo would otherwise strip the environment the script needs.
The test suite is grep over SVG path attributes
The Makefile carries a test section that is worth reading for what it says about the artwork. `test_short` runs seven checks: rendering glitches, optimization, SVG elements, symlinks, filenames, decimal size and lengths units. `test_long` adds one, `test_xml_struct`.
The rendering-glitch test is the interesting one, because it is a grep rather than a renderer. It searches the SVG files for path data matching two patterns, a `d` attribute whose value contains a segment ending in a dot followed by more path data, and one containing a whitespace-then-dot sequence. The test asserts that neither appears anywhere in the theme.
So the artwork is checked for structural mistakes rather than compared against reference images, which is consistent with a theme whose correctness claim is pixel behaviour at multiple sizes.
The rest of the Makefile is packaging. `install` copies the themes to `$(DESTDIR)$(PREFIX)/share/icons` and runs `gtk-update-icon-cache` for each theme unless `DESTDIR` is set, which is how packaging skips the caches.
Daily builds moved to a second PPA
The Ubuntu install section is the stable route: add `ppa:papirus/papirus`, update, and install `papirus-icon-theme`, whose inline comment notes that the package provides Papirus, Papirus-Dark and Papirus-Light together. Deb packages can also be downloaded from Launchpad.
Then a note that changes the shape of that route: the daily builds of the package are now placed in `ppa:papirus/papirus-dev`, a second archive.
So there are three cadences in one project. The `ppa` archive is what you install; the `ppa-dev` archive is built daily; and the release tags are commit dates. A user on the PPA gets a packaged upgrade path with icon caches handled by the package; a user on the install script gets master by default and updates by re-running the same command, which means the difference between a distribution package and a checkout is the difference between a version and a branch tip.
The extras the README advertises, Hardcode-Tray support, KDE colorscheme support and folder colour support, are the reason the theme is more than a folder of SVGs, and each has its own section below the installation material.
Editorial conclusion
Adopt papirus-icon-theme if you want one icon set across GTK and KDE desktops and do not mind a theme that is a superset of Paper rather than a redesign. Do not adopt it expecting the variant count in the README to match the variants you can install, since three directories ship where the text says five. Before you install, pick your route deliberately: the PPA for a packaged upgrade, the script for a per-user install, and check Repology before trusting a third-party package the README warns may be outdated.
Frequently asked questions
What is the Papirus icon theme?
A free and open source SVG icon theme for Linux, based on the Paper Icon Set with a lot of new icons and extras including Hardcode-Tray support, KDE colorscheme support and folder colour support. It ships as three variants, Papirus, Papirus Dark and Papirus Light, and an Android version lives in a separate repository.
How do you install the Papirus icon theme?
On Ubuntu and derivatives add the PPA with `sudo add-apt-repository ppa:papirus/papirus`, run `sudo apt-get update` and `sudo apt-get install papirus-icon-theme`. Otherwise pipe the installer, `wget -qO- https://git.io/papirus-icon-theme-install | sh`, where DESTDIR, EXTRA_THEMES and TAG control the destination, the extra themes and the branch, and the same command updates the theme.
How do you install the Papirus icon theme on Fedora?
Fedora 27 and later is in the third-party package table, maintained by Robert-André Mauchin, with the command `sudo dnf install papirus-icon-theme`. The README notes that third-party packages may be outdated and points to Repology for current versions.
Can I customize the Papirus icon theme?
The README documents customization through three extras with their own sections: hardcoded icon handling with hardcode-fixer for application icons and Hardcode-Tray with the RSVGConvert conversion tool for tray icons, plus KDE colorscheme support and folder colour support. It also has a manual fixes section and notes that size recommendations are 22px for Unity, KDE, GNOME and XFCE.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/papirusdevelopmentteam-papirus-icon-theme)Star history chart for your README
[](https://hysenlabs.com/projects/papirusdevelopmentteam-papirus-icon-theme)Was this useful?