Unique

Frost

A Linux icon theme where a Dockerfile is a stack of crates and a lock file is a padlock

Two file-manager grids side by side on a dark background. On the left, Ubuntu's default icons: orange folders and a row of near-identical grey document pages for bun.lock, LICENSE.txt, Dockerfile and deploy.sh. On the right, the same files in Frost: blue frosted-glass folders and a colour-coded page for each type — teal for App.tsx and index.ts, grey with a padlock for bun.lock, yellow braces for package.json, a rosette for server.pem, stacked crates for the Dockerfile.

Every icon is one vivid colour behind a pane of frosted glass with a white symbol on top, and the symbol is the point: JSON is { }, Markdown is M↓, a certificate is a rosette, a Dockerfile is a stack of crates — so a project folder reads at a glance instead of as a row of identical grey pages.

Sayantan Das went looking on gnome-look.org for a replacement for Ubuntu’s stock icons and, finding nothing that held up in a real file list, drew a set instead. Frost went public on 19 September under the MIT licence, artwork included: 183 icons and 84 aliases covering folders, places, top-bar status icons and 134 file types, all in the same two shapes and a glyph. Colour tells you the kind — yellow for data and keys, teal for code, blue for documents, orange for archives — the symbol tells you the family, and from 48px a short label spells out the exact type.

The part most themes skip is the small sizes: shrinking a 128px icon to 16 turns it to mush, so every Frost icon has its own hand-drawn 16, 22 and 24px version with each edge on a whole pixel. The glass is baked into PNGs, so it looks the same in GTK 4, GTK 3 and Qt apps; the status icons are symbolic SVG so the shell can recolour them, and the microphone turns orange while something is listening.

The best thing in the project is a finding rather than a drawing. Icons follow file types, and Linux’s shared type database is wrong in places a developer trips over daily: .ts is a Qt translation file, .tsx a Tiled game tileset, go.mod a tracker-music module from the 1980s, .key a Keynote deck even when the file begins BEGIN PRIVATE KEY, and bun.lock, .env, Dockerfile and .gitignore plain text. Nobody is to blame — .ts meant Qt translations long before TypeScript existed — but no icon theme can fix it alone, so Frost ships an optional per-user MIME add-on (--mime) that gives them real types, reversibly. A second tool marks each project folder with the stack inside it, fetching the marks from Simple Icons on your machine so the theme ships no trademarked logos — which is also why Firefox, Chrome and VS Code keep their own icons, and the rest falls through to Papirus.

The caveats are those of a one-day-old project: made and tested on GNOME 50 with GTK 4.22 on Ubuntu 26.04 and nowhere else yet, with 82 downloads and eight stars when this was written. The MIME fix is a real change to what your account thinks a file is, and one early commenter noted that anyone working in both Qt and TypeScript would want it selectable per type. The credits are unusually plain, down to the pipeline and pixel hinting being built “with a lot of help from Claude Code.” Installing is one curl | sh that never switches your current theme; you pick Frost in GNOME Tweaks when you are ready.

github.com ↗

← back