BUILT WITH Qt
fman
fman: The Cross-Platform, Dual-Pane File Manager That Makes You Faster, Built with Qt and Python!
Are You (f)man Enough?
fman is a dual-pane file manager for Windows, Mac, and Linux. You use it as an alternative to Explorer on Windows or Finder on Mac.
Why would you do that, you ask? Well, fman aims to revolutionize file managers the same way Sublime Text changed what we think of text editors. Just like Sublime Text, fman works across platforms and sports keyboard shortcuts, a dark theme and other recent innovations from the world of text editors. fman's charmingly minimalistic design based on Qt Widgets forgoes graphical bells and whistles to maximize compatibility and speed.
In short, fman makes you faster at file-related tasks like browsing, copying, renaming or opening files. And we all like speed, don't we?
Another key for success lies in fman's extendability, which is not very present in other file management applications out there. fman's powerful plugin system lets you customize your fman with plugins created by the growing community within the ranks for Python developers. If you feel like giving back, write your own and share them with the community!
Three things really impressed me: I was able to build the first prototype of fman with only 126 lines of code. The Model/View framework is very well thought-out. And Qt's documentation is fantastic.
Michael Herrmann, creator of fman
Evaluate Twice, Code Once
This story is not only about the creation of a brilliant file management tool, it is also a young developer's journey of discovery to find the perfect framework for his project.
Michael needed a cross-platform GUI framework for his Python application that would boast great performance and support for custom styles. After careful evaluation, he chose Qt because it let him “develop a stylable, performant, cross-platform desktop app with minimal effort.”
In addition, choosing “the most prominent GUI framework fulfilling fman's requirements” came with numerous advantages, especially with regards to documentation quality, a large community or language bindings.
This choice, says Michael, saved him years. He started off with an OS X version, because the quality of existing tools at the time was the lowest. Thanks to Qt, he could release the Windows version only a month later, most of which was spent on implementing true automatic updates.
Below is a list of frameworks Michael evaluated, and the reasons why they didn't fulfill his requirements. Visit his blog for a more elaborate description of how he picked his desktop application development technology.
Framework runners-up
- JavaFX / Swing
- Electron
- GTK+
- wxWidgets
- Tk
Disqualifying criteria
- Java Virtual machine had too long start-up times
- Would not achieve the required performance
- Only limited support for Windows / OS X
- Very limited support for custom styles
- Qt has better documentation and a larger community
To help others who want to build desktop applications with Qt and Python, Michael open-sourced fman's build system. He claims it can save you months of development time.

About Michael Herrmann
Michael Hermann was born in Vienna, Austria, and has an MSc from the University of Oxford. He has been working on fman since February 2016. Previously, he founded an appointment reminder service for doctors and two test automation tools (Automa and Helium). In his earlier life, he worked for willhaben.at, Austria's largest portal for classified ads. To get in touch with Michael, send an email to michael(at)herrmann(dot)io or follow him on Twitter @m_herrmann.
Oh, there's more
Avilus | Built with Qt
Avilus uses Qt to build high-performance, certifiable operator interfaces for a new class of dual-use drones.
Read More
Agile Robots | Built with Qt
Agile Robots uses Qt for the creation of high-performance teach pendants for its cross-platform capabilities, C++ integration, and CRA compliance.
Read More
iLovePDF | Built with Qt
Learn how iLovePDF gained a modern UI and significantly improved performance by switching to Qt 6 and the declarative QML language.
Read More