Essential Windows Software

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 feedback at blake@blakeg.net 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.

Multimedia

Media Players

  • VLC: Video player for nearly any format imaginable. Especially useful for when you need to do uncommon things like adjust audio/bluetooth sync or load custom subtitles.
  • MusicBee: A great way to organize and play your music library. Includes handy features like gapless playback and auto-tagging.

Media Server

  • 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. I actually run my Plex server on a Linux SBC in my now, so I don't technically need this on Windows anymore, but I'm keeping it on my list for posterity because it's really fantastic software.

Audio/Video Tools

  • HandBrake: Convert video from nearly any format.
      • If you want to convert your DVD library, you'll need to put the libdvdcss library in the Handbrake directory.
      • If Handbrake is too confusing and all you want to do is rip a DVD, MakeMKV rips and decodes DVDs (even with copy protection). It just isn't as versatile as Handbrake.
  • Audacity: Legit multi-track audio editor.

Screenshots

  • Greenshot: You don't know how useful 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.

Photo/Image Viewing/Editing

  • Photoscape X: Great program for photo viewing and casual 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.
  • GIMP: Robust image editor similar to Photoshop. It might not be appropriate for a casual user who just wants to crop some photos, but it's not really suited for pros either since it's missing CMYK support. Having said that, if you're doing non-print stuff, it will almost certainly get the job done if you have the patience to learn the tool. Bonus: 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.

Vector Image Editor

  • Inkscape: Really nice vector image editor for creating professional quality, scalable diagrams, logos, you-name-it.

Artistic Image Editor

  • Krita: Great digital painting software. It actually could replace Gimp for many use cases, and it supports CMYK.

Video Editing

  • Shotcut is a capable multitrack editor with a nice interface. If I don't need anything special, this is the first place I reach.
  • kdenlive: If you do need something special like keyframing, it's great to have kdevlive in the toolbox. Shotcut has it beat in a few areas, so I still prefer it in general, but kdenlive has some features that make it worth having around.
      • DaVinci Resolve: This is a professional package, but they have a free version that's very impressive. It probably outshines the above editors in features, but I'm reluctant to learn a tool that could disappear at a whim, so in general the opensource tools above get my vote.
      • Openshot: I'm listing this to remind myself to keep an eye on its development. It is similar to a less-featured kdevlive, but it seems pretty buggy yet. Having said that, it might scratch your itch, and it's worth checking out along with the others.

Network and Internet

Web Browser

Remote Shell Access

  • PuTTY: Awesome ssh/telnet/rlogin client.

File Transfer

  • WinSCP: Great ftp/sftp/scp client with lots of advanced features like bandwidth limiting and shutting down the program or computer after file transfers are done.
  • qBittorrent: Lightweight, yet powerful, BitTorrent client. This is basically uTorrent without the tedious ads. For server use, I prefer Transmission.

Utilities

Compression

  • 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 because you've encountered some obscure format, PeaZip is the place to look. It supports basically every format that you would conceivably run into. You also might like its interface better than 7-zip.

Disk Imager

  • 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 Rufus. It gives you more options than Etcher at the cost of some added complexity.

File Deletion/Recovery

  • 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. The advent of SSD drives has thrown a monkey wrench in secure deletion, so do some research before trusting your file is really gone.
  • 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.

File Management

  • WildRename: Wonderfully robust 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 the master file table instead of querying each file.

Console/Command Line

  • ConEmu: The console emulator that I always dreamed of on Windows, but never had. 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.

Backup/Synchronization

  • FreeFileSync: Local backup and synchronization program to do things like make nightly backups from one hard drive to another.
      • For something more involved 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.

Virtualization

  • 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.

Linux Environment

  • 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.

Document and Text

PDF Viewing

  • 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.

eBook Tools

  • 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.

Comic Reader

  • YACReader: Comics reader organizes as well as displays comics. Reads every popular format: cbr, cbz, cb7, pdf, etc.

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.
      • 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.
  • TeXstudio: Lightweight portable LaTeX IDE, including editor, spell checker, symbol toolbars, etc. (For those keeping track, this was forked from TeXMaker back in 2009, and it's clearly outpaced it.)

Office

  • LibreOffice: Word processor, spreadsheet, database, and presentation applications. For most use cases this is a total replacement for Microsoft Office. Back in the day, the LibreOffice (AKA OpenOffice) 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. If you're making fancy tables and charts, I think it takes more effort to make them attractive than it does with a recent version of Office.

Text Comparison

  • Meld: My favorite graphical file comparison (AKA "diff") program. 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. Even though they are essentially the same, I like Meld better than WinMerge mostly because I use Meld on Linux too, and I'm familiar with it.

Text Editing

This is a busy category, but text editors are like knives: you wouldn't use a Bowie knife when you need a scalpel or a steak knife when you need a machete, so I use multiple editors depending on the task.
  • 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 syntax highlighting engine is limited and slow, and the interface in general hasn't kept up with the times, 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.

STEM

Calculator

  • 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 on the desktop.
      • 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.

Graphing

  • Gnuplot: Command 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. (The Python library Matplotlib makes this software somewhat redundant, but Gnuplot is still worth checking out.)
      • If you want an easier interface, LabPlot is fantastic if you only need XY plots and histograms, or SciDAVis may do the trick since it can handle more chart types including box plots and bar graphs with varying degrees of customization. You can definitely produce something that doesn't look like just another Excel plot with these.

Statistics

  • 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 works in a pinch. Past is developed by a guy out of the University of Oslo, and it's chock-full of stats functions 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, but there's a lot missing yet and you have almost no customization options for the graphs. I think the interface will quickly move it into first place for me as it fleshes out the weak spots.

Symbolic Computation

  • Maxima: Symbolic computer algebra system. Comes with wxMaxima, which is an easy-to-use graphical interface.
      • Runner up is SymPy, which technically isn't a program, but rather a Python library.

Numeric Computation

  • GNU Octave: A numerical computation program that started off as a Matlab clone, so porting programs is fairly trivial. The use cases of a program like this (for me) are pretty narrow given the current capabilities and performance of Python's SciPy and NumPy libraries. Octave is still a great environment for mathematical exploration though, so I'm leaving it on my list.

2D/3D Modeling

  • FreeCAD : This is a fairly full-featured 2D/3D parametric CAD modeler. This is the only free CAD program that looks remotely like a real, commercial CAD program. Is it as good as a commercial product like Catia or Pro Engineer? No, but it is free and good enough for many hobbyist projects. It has made some big improvements over the last few versions, and it's worth checking out again if you haven't tried it in a year or two.
      • Solvespace is such a tiny, fast, quirky, unique, and capable program, I had to mention it. Don't let the retro look fool you. This is a powerful 2D/3D parametric modeler with a legit constraint solver. Besides FreeCAD, that is a very rare find in free CAD software. This interface is nothing like a standard CAD package, but if you are into making 3D objects for 3D printing, this program is great. For normal use, I think the glaring omission in its feature set is a tool for adding fillets/rounds.

Programming

Version Control

  • 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, a nice graphical interface for Git, if that's your thing.

Programming Editor/IDE

Note: 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.

Scripting Language

  • Python: My favorite general purpose programming language. It's perfect for getting the job done quickly without a lot of boilerplate and heavy lifting. I'm a pragmatic engineer, so I just want to solve a problem as efficiently and elegantly as possible, and I'll leave the arguing about static typing and whatnot to the real developers and CS engineers.
  • I used to list a bunch of other essential Python libraries that needed to be downloaded separately, but nowadays everything you need is on PyPi, and pip is the best way to get it. For convenience, I'll give a pip command line (for easy cutting and pasting) and a description of a couple of my favorite packages to get you started:
      • pip install numpy scipy matplotlib seaborn reportlab pyinstaller pyexcel pyexcel-io pyexcel-xlsx PyQt5 jupyter pandas pillow markdown sympy
        • SciPy is a scientific package useful for everything from statistics to linear algebra. Also vital are pandas and NumPy which handle data structures, numeric arrays, and math functions. These three packages really work hand-in-hand.
        • 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.
        • Matplotlib is a robust plotting library, and Seaborn is a higher level package that can really improve your productivity.
        • Jupyter is an interactive notebook where you can embed Python code and plots and easily share the sessions with others or save them for later.

Hex Editor

  • HxD: Has everything I need in a hex editor. Simple and lightweight.

Programming Fonts

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 scaling, 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.

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:

Games

I actually do consider gaming pretty essential, but I only game on a couple of the Windows boxes I use, so Games aren't essential in the sense that I immediately install these on every computer I set up.
  • Steam: Must-have for PC gaming.
  • Cheat Engine: Okay, look, I don't hate fun, but I have limited time for gaming, so sometimes when I'm enjoying the story of a game but it's kind of grindy, I'll use Cheat Engine to give myself resources or something. It's not trivial to figure out, but it can do amazing things.
  • 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. The project has been stagnant since 2013, so what you see is what you get.
      • 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 Z3, Z4, Z5, & Z8. 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:

File/Disk/OS Utilities

  • 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 is a great open source option to clone disks and I have found it useful in the past, but I still recommended Macrium Reflect Free because Clonezilla has a the limitation that the destination disk can't be smaller than the source disk (even if the data on the source disk would fit on the destination disk). You can get around this by shrinking the source disk's partition to the same size of the destination disk first, but Reflect is just easier.
  • Pstart: Customizable menu-based launcher. Useful for portable apps on a USB drive. I used to 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.

Security

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.

Programming

  • 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 many protocols. 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.

Animation

  • 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.

Audio/MP3 Tools

With modern streaming music services like Pandora, Spotify, Prime Music, and Google Music, I just don't mess with CDs, MP3s, and audio files anymore so I don't find the following tools very essential anymore like I once did.
  • MediaCoder: For video HandBrake is the best, but if you need to convert audio files as well as video, this might be the better tool for you.
  • 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.
    • 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.

Music Creation

  • Cakewalk: This used to be a commercial DAW that is now free as of 2018. It’s a rebranded version of SONAR Platinum, and it's incredibly powerful. This is a great place to start if you want to make some music.
  • LMMS: Its website says it's a "sound generation system, synthesizer, beat/baseline editor and MIDI control system which can power an entire home studio". It's a nice step sequencer with VST and SoundFont support for creating music. I wouldn't call it a DAW because it doesn't record multitrack audio, but combined with Audacity, you can make some cool stuff. I wouldn't even list LMMS now that Cakewalk is free, except LMMS is opensource, and Cakewalk may go away sometime in the future.
  • A couple great plugin synths worth trying with LMMS and Cakewalk are dexed and Helm.

Sheet Music Generators

  • MuseScore: Easy to use interface for creating sheet music.
      • If you want to make sheet music and have complete control over every aspect of the output, LilyPond is where it's at. There's no GUI, it's super niche software, so it's not for everyone.

Document Creation/Editing/Viewing

  • 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.

Electronics

  • ExpressSCH: This is a really simple, yet powerful program for making schematics.
  • Arduino IDE: ...for when I want to program an Arduino.

Network Utils

  • 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.