Built with by Lazar Dragos George. The content may not be distributed without my permission.

31 May 2025
Custom Icons for My Filesystem
Have you ever looked at your Windows folders and thought
I did.
So I built windows-fs-icons — a fully custom icon set for my Windows filesystem. I designed or modified each icon using
Along the way, I ran into a few challenges, like ensuring all icons were perfectly square and writing a custom pipeline for converting SVGs into .ico files.
Let me walk you through the process.
Designing the Icons
The first step was visual - drawing the icons themselves.
I created or remixed SVG versions of popular app icons, folder types, and tools I frequently use using Affinity Designer.
However, Windows icon files (.ico) are very particular:
- They require
- They often embed multiple sizes, but for my use-case, a single high-res size sufficed.

Converting SVG to ICO
I initially tried writing the converter in Go, but found that good SVG rendering and ICO encoding support were lacking — especially when it came to scaling and padding. So, I turned to Rust. Here's the script I built:
- Reads all SVG files from a directory
- Converts each to a centered, padded 256x256 PNG
- Color all icons in the default yellow of a windows folder
- Converts the PNGs to proper ICO files using the ico crate
Tip: Windows expects icons to be square, typically 256x256, and you can bundle multiple resolutions, but I focused on single-size icons for simplicity.
Applying Icons in Windows
Once you have your ICO files ready:
1. Right-click a folder and choose Properties
2. Go to the Customize tab → Click "Change Icon"
3. Browse to your custom ICO file and apply
You can also use a third-party tool like IconPackager or tweak shortcut icons to point to your new files.
Pro tip: Keep your ICOs in a centralized folder so you can reapply them after reinstalls or across machines.

Conclusion
This project was a fun dive into Rust, vector graphics, and OS customization. It solved a real itch: making my system look the way I wanted.
If you're new to Rust, building a CLI like this is a fantastic beginner project that covers:
- File I/O
- Error handling
- Working with external libraries
- SVG rendering and image manipulation
Even if you're not looking to build an icon converter, I highly recommend tinkering with similar projects to deepen your systems knowledge while making something visual and satisfying.
If you'd like to create your own setup, fork the repo, modify the SVGs, and start customizing your own digital space. ✨