Essential 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 (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.

Network and Internet


Web Browser

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

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.

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.

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.
    • TeXnicCenter  is a great program, and it used to be my first choice, but development seems to have stalled.

Office

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

Text Comparison

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

Text Editing

  • 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.
    • Honorable mention: GNU Emacs is the Yin to Vim's Yang.  It is less likely to be installed on a barebones Linux install, but it is enormously powerful and popular among diehard fans.  It isn't my cup of tea.  I jumped on the Vi(m) bandwagon too long ago to switch to Emacs now.
  • 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.
    • The other popular general purpose editor out there is Sublime Text.  It has some cool features, but it never really clicked with me. Honestly, it has a better interface than Notepad++ (both aesthetically and usability), but I don't have the mental bandwidth to relearn a whole new set of keyboard shortcuts and whatnot.  I have it installed, and I dabble.  Maybe someday?
  • 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.
  • 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.

Mathematics, Science, & Technical


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

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

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

Symbolic Computation

  • Maxima: Full symbolic computer algebra system.  Comes with wxMaxima, which is an easy-to-use graphical interface.

Numeric Computation

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

Modeling

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

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: Graphical interface for Git, if that's your thing.

Scripting Language

  • 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 are  wxPython (which is a really nice toolkit) and  PyGTK (but it doesn't use native toolkits when it can, like wxPython). 
  • Reportlab: PDF generator
  • NumPy: math module (replaces Numeric and Numarray)
  • SciPy: Scientific package useful for everything from plotting to linear algebra.
  • Matplotlib: 2D plotting library

Hex Editor

    • HxD: I usually don't like using old/abandoned/unmaintained programs, but even though HxD hasn't been updated since 2009, it has everything I need in a hex editor.  The website only mentions Windows 95 through Windows 7, but it actually works fine on Windows 8 and Windows 10 as well.

    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, PeaZip is the place to look.  It supports basically every format you will ever encounter. 

    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.
      • FileShredder is a another option, and I sometimes use it instead of Eraser. You should probably try both.
      • SDelete: Good for portable USB drives, this is a command-line secure delete that wipes free-space too.
    • 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 Management

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

    File Management

    • WildRename: Wonderfully full-featured file renaming utility that supports regular expressions.
    • WildReplace: Search for files and replace text in the files.
    • WinDirStat: This is the best way to see how you are using your diskspace. It helps find big files and programs that waste space.  With small SSD drives, this program is really helpful.

    Console/Command Line

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

    Backup/Synchronization

    • SyncBackFree: Backup and synchronization program. Make sure to get "SyncBackFree" since the other products, SyncBackSE and SyncBackPro, are not freeware.

    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.

    Multimedia


    Media Players

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

    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.

    Audio Tools

    • MediaCoder: Convert from/to nearly any video and audio format, including extracting audio from video. 
    • Audacity: Full-featured multi-track audio editor.

    Screenshots

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

    DVD Ripping/Encoding

    • MakeMKV: Decodes discs even with copy protection.

    Image Viewing/Editing/Browsing

    • FastStone Image Viewer: FastStone is a great program for casual photo viewing and touch-up.  It makes it easy to do common tasks like cropping to standard sizes and removing red-eye.  
      • It doesn't have all the features that Picasa did, 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.

    Comic Reader

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

    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 on a particular monitor.  
    • I really like the Consolas font, but since it has shipped with Windows since Vista, I don't have it listed here as a separate download.
    • DinaGreat bitmap font in 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.
    • 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.

    Games

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




    Other Honorable Mentions
    Here are some other miscellaneous programs that I use occasionly.  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:
    • 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
      • 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 only an honorable mention 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.
    • Video Editing: 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.
      • OpenshotIf 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 
      • Shotcut 
      • avidemux 
    • Artistic
      • MyPaint: Simple ditigal painting software. Just the basics, but it works very well.
      • Krita: Great, full-featured digital painting software.
    • 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.
      • ExpressSCH: This is a really simple, yet powerful program for making schematics.
    • 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. 
    • Chat & Messenging: Honestly, since the advent of smartphones, I find myself rarely using desktop chat 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.
    • File/Disk/OS Utilities
      • UNetbootin: Weirdly named program for writing a bootable image to a USB drive. When you need to do that, this is the best.
      • 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.
    • 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.
    Comments