DEV Community

Sayantan
Sayantan

Posted on

Linux desktop icons are dull, so I drew a better set and made it free

Frost: project folders showing their stack, and file icons that say what they are

Look at your Linux desktop for a second. The Home folder icon. The file manager in your dock. The row of folders in your Documents.

They're fine. They're also dull. Flat, muddy, a bit sad, clearly not something anyone enjoyed making. And once you notice it you can't stop noticing it, because these are the icons you look at more than any others, all day.

I went looking for a replacement on gnome-look.org and came away frustrated. Plenty of packs cover a handful of icons and leave the rest mismatched. Plenty look great in the showcase screenshot and fall apart in an actual file list.

So I drew my own, and made it free.

Frost is a frosted-glass icon theme for Linux. MIT licensed, one line to install, one line to remove.

Before and after

Ubuntu's default icons on the left, Frost on the right

Same folder, same files. Every icon is the same idea: a vivid colour seen through a soft pane of frosted glass, with one crisp white symbol on top.

Your project folders show what is inside them

Project folders marked with Next + Bun + TypeScript, Docker + Go, Docker + Python and Flutter

This is the part I use every day. Frost reads each project and marks the folder with the stack it actually contains. A package.json with Next and TypeScript plus a bun.lock gets Next, Bun and TS. A go.mod next to a Dockerfile gets Go and Docker. A pubspec.yaml gets Flutter.

One command tags everything under your code directory, and --undo puts it back. The marks are fetched on your machine from Simple Icons (public domain), so the theme itself ships no trademarked logos.

Your files say what they are

All 134 file types in Frost

Out of the box, every JSON file in a project looks like a terminal, and your lock file, your notes and your TLS certificate all look like the same grey page.

Frost draws 134 file types. 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: braces for JSON, M with a down arrow for Markdown, a padlock for lock files, a rosette for certificates, stacked crates for a Dockerfile. From 48 px up, a small label spells out the exact type.

There is a catch that is not the theme's fault, and it was my favourite thing to find. Icons come from file types, and Linux's file types are wrong in places:

  • .ts is a Qt translation file, not TypeScript
  • .tsx is a Tiled tileset, a 2D game map format
  • go.mod is tracker music from the 1980s
  • .tf and go.sum are to-do lists
  • .key is Keynote, even when the file begins with BEGIN PRIVATE KEY
  • bun.lock, .env, Dockerfile and .gitignore are just 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 one-file fix for your user account, and then the icons follow.

It still looks good when it is tiny

The same icons scaled down from 128 px, next to versions drawn at 16 px

Most themes look great at 256 pixels and turn to mush in a file list, because shrinking a big icon is not the same as drawing a small one. Left is a 128 px icon scaled down to 16. Right is Frost's hand-drawn 16 px version. Every icon has its own 16, 22 and 24 px drawing, with every edge on a whole pixel.

Try it

# install (it never switches your current theme)
curl -fsSL https://raw.githubusercontent.com/thissayantan/frost-icon-theme/main/install.sh | sh

# with the file-type fixes for developer files
curl -fsSL https://raw.githubusercontent.com/thissayantan/frost-icon-theme/main/install.sh | sh -s -- --mime

# changed your mind
sh install.sh --uninstall
Enter fullscreen mode Exit fullscreen mode

Then pick Frost in GNOME Tweaks, under Appearance and Icons. Brand icons are left alone, so Firefox, Chrome and VS Code keep their own, and anything Frost has not drawn falls back to Papirus.

Code, one-line install and icon requests: github.com/thissayantan/frost-icon-theme

Where to get it

It is MIT, artwork included. Use it, fork it, repaint it. If it makes your desktop nicer to look at, a star on the repo is the only thanks I am after, and if an icon you use is missing, open an issue and I will draw it.

Top comments (1)

Collapse
 
marcusykim profile image
Marcus Kim

Hand-drawing the 16, 22 and 24 px versions puts the effort where I'd notice it most: scanning a crowded file list. The optional MIME fix is an interesting tradeoff too, especially with.ts covering both TypeScript and Qt translations. Making those overrides selectable by file type would help developers working across both ecosystems, where a clearer-looking icon could otherwise tell them the wrong thing.