This is my list of software that I find essential if I'm using a Windows machine. When I setup a new computer, these are the programs I install, or end up installing when I need them. There are certain tasks that I don't even bother with on a Windows box, so this list does not include everything I want to do with a computer, just those tasks I usually want to do in a Windows desktop/laptop. I maintain this list for my own convenience so I can quickly remind myself of (and find) all of the software I like to use.
All of these programs are free, and most are open-source as well. In some cases I have listed alternatives, honorable mentions, or close seconds. Having said that, I try not to have redundant programs unless they bring something to the party.
I would love to get at email@example.com if I'm missing a really great program that would enhance my quality of life and make me wonder how I ever lived without it.
Document and Text
- Acrobat Reader DC: The original and still probably the best PDF viewer. Due to poor performance, I used to prefer alternatives like Foxit Reader, but Foxit started catching up in the bloat category and either Acrobat got better or my computers got faster.
- Calibre: All-in-one ebook manager. Whatever you need to do to/with an ebook, this will do it. It organizes, converts, downloads covers, etc.. I can't imagine managing my ebooks without it.
Markup & TeX/LaTeX Tools
- Pandoc: Convert markup formats to other other formats. Handles Markdown, html, EPUB, LaTeX, etc.
- MiKTeX: A port of the LaTeX document publishing system. Output can be PDF, HTML, etc.
- TeXstudio: Lightweight portable LaTeX IDE, including editor, spell checker, symbol toolbars, etc.
- TeXnicCenter is a great program, and it used to be my first choice, but development seems to have stalled.
- This isn't a software link, but a really useful site about LaTeX fonts is here . And while I'm breaking the rules and posting web links, here's a really good website for LaTeX info.
- LibreOffice: Word processor, spreadsheet, database, and presentation applications. For nearly all intents and purposes, this is a total replacement for Microsoft Office. Back in the day, the LibreOffice spreadsheet lacked fancier Excel features like Goal Seek and Pivot Tables, but those gaps have been long since filled. In my opinion, it still lacks the polish of Office in many respects, but with the exception of a few items, almost all the functionality is there.
- Meld: The best graphical file comparison (AKA "diff") program I've seen. The colorized output really helps you quickly see what's changed and what hasn't. There is 2 and 3-way file diff and merge, as well as directory comparison.
- Vim: Powerful keyboard-based text editor with a legendary, steep learning curve. Not for everybody, but every Linux/Unix guy should know it because it is always there. While I use Vim extensively on Linux, I generally only use it for certain tasks on Windows.
- I should probably mention Neovim here. Neovim aims to bring Vim into the 21st century with a clean code base and features like Lua extensibility and the ability to be embedded in other software. It is still a work in progress but it is totally usable right now, although it doesn't have a conventional installer like Vim does yet.
- Notepad++: My text editor of choice for everyday, quick editing on Windows. The main limitation is that it doesn't handle big files very well if you want syntax highlighting (say >100MB). The syntax highlighting engine isn't that great, and the interface in general is clunky and ugly, but it is still a very useful tool. Learning the keyboard shortcuts is vital for productivity.
- WriteMonkey: Full-screen, distraction-free text editing seemed to be all the rage in the late 00's, and WriteMonkey emerged to be an early winner for me. If you like that sort of thing, it fits the bill perfectly. These types of apps don't usually have a ton of features, as they focus on reducing on-screen clutter more than anything else. But having said that, WriteMonkey has also been adding quite a few neat features over the last decade and I think it leads the pack in functionality. Its support of Markdown is a nice bonus.
- 7-Zip: archiver with great compression, useful from command line, nice GUI and Explorer integration, and it is fast.
- PeaZip: If 7-zip doesn't work for you, PeaZip is the place to look. It supports basically every format you will ever encounter.
- balenaEtcher: A nice clean, easy to use program to write disk images to a flash devices (USB drives, microSD cards, etc.). This is great for putting Linux distros on bootable USB drives or setting up a microSD card for a Raspberry Pi.
- Honorable mention goes to UNetbootin, and I only include it here because it has been around for a long time and Etcher is the new kid on the block.
- Eraser: Secure deletion with a nice GUI and Explorer integration. I don't like the idea of having remnants of tax returns and whatnot on drives, so I copy those types of files to the new location and then wipe the original location instead of just moving them normally.
- Between these three programs, you should be able to recover any file that is physically possible to recover without special hardware:
- Recuva: Very nice interface.
- Zero Assumption Recovery: The free version gets the job done.
- DiskDigger: Lightweight, single exe so no install necessary. While it is free for personal use, it will nag you before recovering each and every file, so if you have a lot of files to recover, it might be worth just buying it. It is a really good program and worth the price.
- Process Monitor: List and interact with processes and file handles. Also monitors file access in real time. Useful for identifying i/o hogs.
- Side note: this program and SDelete (mentioned above) are part of the Sysinternals Suite, which was bought by Microsoft years ago, and it contains lots of really interesting utilities. It is worth taking a look at all of them.
- WildRename: Wonderfully full-featured file renaming utility that supports regular expressions.
- WildReplace: Search for files and replace text in the files.
- WizTree: The best way to see which files are eating up your diskspace. It is INSANELY fast because it uses master file table instead of querying each file.
- ConEmu: is the console emulator that I always dreamed of on Windows, but never had it. It is a must if you use the command line in Windows. It is basically just a wrapper for cmd.exe, Powershell, whatever, but it is very configurable.
- Swiss File Knife: This is the essential command line tool set for Windows. It does a little of everything, and you need to just read the list of commands on the website to believe it. It's a single executable, so it's portable as well.
- FreeFileSync: Local backup and synchronization program to do things like make nightly backups from one hard drive to another.
- For something more full featured than simple "folder sync", Duplicati might be what you need. It works nicely over a network, making remote admin a breeze.
- Google Backup and Sync: For cloud backup, this is an easy solution if you're invested into the Google ecosystem, which I am. Backs up photos and anything else I tell it.
- Virtualbox is a decent free program for creating and running virtual machines. It is an easy and robust way of running Linux (and other OSes) under Windows, which is often handy. There are some toolchains that just are a pain to set up in Windows, so I don't even bother and just skip right to a VM running Linux.
- Windows Subsystem for Linux (WSL): Okay, this is a game-changer. This software from Microsoft lets you run Linux tools directly in Windows without a virtual machine. Bash, Zsh, compilers, interpreters, grep, awk, and all the rest of the command line tools you need right under Windows. You actually can download this from the Microsoft Store now (for free), so there's no direct download link.
- VLC: Video player for nearly any format imaginable. Especially useful for playing videos with obscure codecs, e.g. a clip encoded in some strange AVI variation.
- MusicBee: This is basically a free iTunes to organize your music library.
- Plex: The best personal media server for steaming your media to your Roku, smart TV, etc. Just tell Plex where you store your movies, TV shows, and music and it will do the rest, including downloading cover art and show descriptions.
- HandBrake: Convert video from nearly any format.
- For video HandBrake is the best, but if you need to convert audio files as well as video, MediaCoder might be the better tool for you. With modern streaming music services (e.g. Pandora, Spotify, Prime Music, Google Music), I just don't mess with MP3s and audio files anymore.
- Audacity: Full-featured multi-track audio editor.
- MakeMKV: Rips and decodes DVDs (even with copy protection).
- Greenshot: You don't know how handy a good screenshot tool is until you start using it. It's just really handy to automatically save screenshots (or portions of screens) to a given folder, and keep it on the clipboard as well. A tool like this wasn't even on my radar, but once I sat down at a computer with Greenshot on it and I accidentally used it, now I can't live without it.
- Photoscape X: Great program for photo viewing and touch-up. It makes it easy to do common tasks like cropping to standard sizes and removing red-eye. There is a Pro version with extra features, but the free version boasts a truly impressive feature set that is more than enough for most people.
- I used to love Picasa for casual photo manipulation, but since Google has made it their Vision Statement to discontinue every product I truly love, I didn't have a choice but find an alternative.
- GIMP: Powerful image/photo editor like Photoshop. Not necessarily appropriate for a casual user who just wants to crop some photos. The scripting allows for complex plugins and automation.
- Paint.NET is a fantastic alternative to GIMP for those weary of the learning curve (or the name). It is easy to use and really polished, and I often use it instead of GIMP for certain quick tasks.
- Inkscape: Really nice vector image editor for creating professional quality, scalable diagrams, logos, you-name-it.
- YACReader: Comics reader organizes as well as displays comics. Reads every popular format: cbr, cbz, cb7, pdf, etc.
- SpeedCrunch: Calculator with FAST start-up and plenty of functionality. This is the first app I reach for when I need to do some simple math.
- If you want the power of an HP RPN calculator, try HP Prime Virtual Calculator. It is a straight-up emulator of the HP Prime, delivered officially by HP itself. Honestly, it seems somewhat silly to use this on a computer where you can use full blown math programs though.
- QtGrace: This is a port of an OLD Unix program called Grace (AKA XMGrace) that is a GUI driven graphing program. It lets you tweak every conceivable feature of a graph... if you have the patience to figure it out. If you know what you're doing, the graphs are publication quality. Great for papers and theses.
- Gnuplot: Runner up is this command-line driven plotting/graphing program that can make amazing graphs. It isn't easy to use, per se, but it is incredibly powerful. It's good to have in the toolbox if you are serious about math and data.
- PAST: I use Minitab at work, but if you don't have the money, and you just want to do some quick stats number crunching (t-tests, histograms, etc.), this is where it's at. This superb software is developed by a guy out of the University of Oslo, and it's bare-bones calculation with no safety net or hand-holding to help you interpret the results. Super powerful if you know what you're doing. It also has an amazing manual describing the equations used and even includes extensive citations, so this is no black box!
- I'm keeping my eye on Jamovi. It is essentially a front-end for R, which is the 800 pound gorilla of stats packages. It looks very polished and has an impressive roadmap.
- SOFA is another interesting package that's under development. It's main selling point for me is the hand-holding it provides to help select the right test for your application. This is like Minitab's "assistant" functionality.
- Maxima: Full symbolic computer algebra system. Comes with wxMaxima, which is an easy-to-use graphical interface.
- GNU Octave: A numerical computation program that started off as a Matlab clone, so porting programs is fairly trivial. Octave was always a second class citizen on Windows, but that is changing and it works so you may get some warnings during installation about not supporting Windows 8/10, etc., but it still seems to work fine for pure math.
- Scilab: Numerical computation program, similar to Matlab in functionality, but not syntax. If Octave doesn't do what you need, Scilab is a worthy option.
- Solvespace: Don't let the retro look fool you. This is a powerful 2D/3D parametric modeler with a legit constraint solver. Try to find that in a free CAD software. It is rare to non-existent. If you are into making 3D objects for 3D printing, this program is great. For normal use, I think its only glaring omission in its feature set is a tool for adding fillets/rounds.
- FreeCAD : The is a fairly full-featured 3D parametric CAD modeler. This is the only free CAD program that looks like a real, commercial CAD program. Is it as good as a commercial product like NX, Catia, Pro Engineer, etc.? No, not even close, but it is free and good enough for many hobbyist projects.
- Sketchup: This is a 3D modeling program for when you want to see how something will look, but you aren't concerned with the details. It's where I start if I want to design a patio deck or a shed. It is really quirky to use if you are accustomed to regular CAD programs, but it works.
- Git: Git quickly took over the open source world, and with good reason. It is a distributed VCS, so maybe it isn't the best solution for every situation, but it works very well. A big bonus is you get all the Unix command line tools along with the install.
- Related is TortoiseGit: Graphical interface for Git, if that's your thing.
Programming Editors/IDEsNote: Some of the editors in the general Text Editor section also are great for programming.
- Visual Studio Code: I think Microsoft shocked a lot of people when they knocked VS Code out of the park. I didn't see it coming, but it is a legitimately great IDE for just about every language.
- Atom is most notable for its hackability, providing a package system allowing the user to modify/extend the entire program with ease, and share it with others. I'm using it for certain tasks like editing Markdown files since it supports live preview very nicely. It is also decent for programming in Go due to the fairly good Go tools support. Due to its architecture, it will probably never be super-fast, but it is worth checking out for work in specific domains.
- Python: A great general purpose programming language
Additional Python Packages
- PyQt: Probably the best looking, best featured cross-platform GUI toolkit.
- Also worth checking out is wxPython, which is a really nice toolkit that I've used on a number of projects.
- NumPy: math module (replaces Numeric and Numarray)
- SciPy: Scientific package useful for everything from plotting to linear algebra.
- Matplotlib: 2D plotting library
- HxD: Has everything I need in a hex editor. Simple and lightweight.
Below are a few fixed-width fonts suitable for programming, consoles, terminal windows, PuTTY, etc. While just one font should be sufficient, I typically have all of these installed as one font may look better in a certain terminal or editor, at a particular size, or on a particular monitor.
- Dina: Great bitmap font in 6, 8, 9, and 10 points with normal, bold, italic, and bold/italic faces. I like the 8 and 10 especially well; the 9 is a bit tall for the width. Dina is so clear and crisp that it is actually pleasurable to read.
- Anonymous Pro: This is a TrueType font with the feel of a bitmapped font. It also has good Unicode support, and scales well in large and small point sizes, and it actually has embedded bitmaps for sizes 7-10.
- Source Code Pro: This font from Adobe looks amazing on high resolution monitors. It is actually a family of fonts including Extra Light, Light, Medium, and Black variations.
- Fantasque Sans Mono: This is a whimsical font in a field where most programming fonts are fairly boring. Full of curvy letters and distinct characters, this font is worth a look. It has enough character that I like it for prose like email as well.
Network and Internet
- Google Chrome: Fast and secure browser that bumped Firefox from being my default browser many years ago.
Remote Shell Access
- PuTTY: Awesome ssh/telnet/rlogin client.
- Steam: Must-have for PC gaming.
- Interactive Fiction (IF)
- Windows Frotz: My favorite Z-machine interpreter. If you play interactive fiction games or know what Infocom games are, you probably already know what this is. This supports all the various Infocom formats: zip, dat, z5, z8, etc., including z6.
- Frotz8 is a native Windows app that supports touch screens, and it has handy integration with the IF Archive, so I'm keeping my eye on it.
- Gargoyle: This is my current choice for a multi-format interpreter that handles more than just Z machine files. It essentially has no user interface because it requires you to edit a text file to change fonts and whatnot, but it focuses on good typesetting, which is a really interesting niche. The big selling point is it supports tons of formats because it is basically a wrapper for a number of interpreters. The default (and excellent) Bocfel Z machine interpreter has partial support for z6 files too.
- Filfre: This is easier to use than Gargoyle for sure, so I'm mentioning it here, but it has minimal customization options. The selling point is it supports Z-machine and Glulx. The interface reminds me of Windows Frotz. Solid choice. Only supports versions 3, 4, 5, and 8 Z-Machine story files though.
- Lectrote: This is the new kid on the block with novel features like autosave. It looks really nice to me (great fonts and themes), but it uses ZVM as the Z interpreter, so it only supports Z1-Z5. This seems to be under active development, so we'll see where it goes.
- Trizbort: If you play IF games, you know mapping is essential, and Trizbort helps you do that. There is even an automap function that works pretty well.
- Just for easy reference, here are some websites to find and download some great IF stories to use with the interpreters:
- Windows Frotz: My favorite Z-machine interpreter. If you play interactive fiction games or know what Infocom games are, you probably already know what this is. This supports all the various Infocom formats: zip, dat, z5, z8, etc., including z6.
Less Than Essential
Here are some other miscellaneous programs that I use occasionally. They are useful, but not "essential". I might download them when I need to, but I'm not going to preemptively install them because I don't use them on a regular basis. I'm still recording them here, because in some instances, I've tried a number of solutions before settling on the best one for my use case. I don't want to forget what I liked, so here they are:
- Blender: 3D modeling and animation. Has more power than I have skill, but other people do really cool things with it.
- Synfig Studio: Nice 2D animation package. I dabble with projects, and when I do, this works for me.
- Pivot Animator: This is incredibly specific software and clearly nowhere close to essential, but if you need to make stick figure animations, Pivot Animator has you covered.
- fre:ac: free audio converter and CD ripper for various formats and encoders. It features MP3, MP4/M4A, WMA, Ogg Vorbis, FLAC, AAC, and Bonk format support. This is less than essential because I just don't use CDs anymore.
- CDex: Tried and true alternative to rip and encode CDs to mp3 and other formats with automatic naming thanks to freedb support. The only reason fre:ac pushed this back to an honorable mention is the development seemed to stagnate for a while (although it seems to be alive and well once again).
- TagScanner: Fix MP3 tags and rename files quickly with this tool. This was handy before I started streaming all my music through services like Prime Music, Spotify, etc.
This is a crowded category for me. I don't edit video enough to know these very well, but sometimes one shines in the area that I need for that one use. I'm playing with them all, we'll see what shakes out.
- DaVinci Resolve: This is a professional package, but they have a free version that's very impressive.
- Openshot: If you don't have a preference or have any really special needs, you could start here. Openshot covers all the basics and it's easy to use.
- kdenlive and Shotcut both look like full featured multitrack editors with nice interfaces.
- Scribus: Desktop publishing software which is nearly always overkill for my needs. If you're publishing a print book or a fancy printed newsletter, this is great, but for a simple birthday invitation or something, I just use Inkscape.
- Asciidoc: Markup language for creating formatted documents. Lighter than LaTeX, but more powerful than Markdown.
- Cool Reader: Nice standalone e-reader that handles the popular formats like mobi and ePub,. The main advantage it has over Calibre's built-in reader is the customization options.
- ExpressSCH: This is a really simple, yet powerful program for making schematics.
- Wireshark: Network protocol analyzer. For those of you keeping track, this used to be called Ethereal.
- TigerVNC: Remote desktop control. There are lots of VNC options out there, but this lightweight client/server does the job for me. I just don't find myself using VNC as much as I used to as I move more functions to the cloud and rely less on my own desktops.
- copssh: SSH server that is really easy to install. This is just an installer that bundles OpenSSH, OpenSSL, and a very minimal Cygwin shell environment. If you want a full blown Unix-like environment, you would want to go the full Cygwin route or, even better, the new Windows Subsystem for Linux, but if you just want to ssh into your machine to modify a couple files remotely, or create a proxy tunnel, or transfer files via SFTP, then this is the perfect solution.
- Macrium Reflect Free: I switched a laptop from a traditional harddrive to an SSD with this tool. It was seamless and free. I highly recommend.
- Clonezilla: Clone a disk image. I haven't used this much recently, but in the past it has always worked great for me to backup an entire disk image.
- Pstart: Customizable menu-based launcher. Useful for portable apps on a USB drive. I have Pstart configured to pop up by right-clicking on the side of the screen. This program is ridiculously simple and hasn't been updated in probably a decade, and yet I still find it useful.
- ImgBurn: Lightweight CD/DVD/HDDVD/Blu-ray burning application that does everything I could possibly want to do. No need for anything else... but I don't burn discs anymore so it's pushed down to the bottom of the page.
- UnxUtils: Unix-like command-line tools compiled natively for Windows (i.e. no cygwin dependencies). Note: I no longer need this as Git (see above) has all the same tools, making this package redundant.
- PsTools: Command line tools for managing processes, services, and remote administration.psexec is especially useful to issue a remote command.
Maybe as I get older I get sloppier, but I just don't care as much about encryption and whatnot in my own house. I have so much data in the cloud, I have bigger problems than encrypting my local hard drives. So these apps I formerly used a lot. Not so much now.
- CCleaner: Cleans out temp files, histories, cookies, and other stuff hanging around on your computer that could compromise your data and privacy. If you do online banking and shopping, it isn't a bad idea to clean up after yourself regularly. If the data isn't there, it can't be stolen.
- GPG: GNU Privacy Guard for cross-platform file encryption/signing.
- VeraCrypt: on-the-fly disk and file encryption. Works absolutely seamlessly with the OS so you wouldn't even know you are using an encrypted disk. This is a continuation of the old TrueCrypt program.
- Julia: Similar to Python in its lightweight syntax, but focused on math/science applications. It is much faster than Python due to its JIT compiler. I use it more as a math tool than a general purpose scripting language.
- Go: Even though I don't do a ton of programming in compiled languages on Windows, when I do, I am usually making command line programs like file utilities, text manipulators, number crunching programs, etc, and Golang fits the bill nicely.
Chat & Messenging
Honestly, since the advent of smartphones, I don't find myself using desktop chat (outside of a browser) at all, but I'm keeping this here in case I need it again.
- Pidgin: Chat client for every protocol that matters. Checkout the Plugins page to get extras like a Facebook chat support.
- HexChat: Good IRC client based on the old Xchat program. While IRC isn't as popular as it once was back in the day, there are still some good technical communities where you can ask questions.