Recently I realized my life would be easier if I dual-booted Windows 10 and Ubuntu. I tried out Windows Subsystem for Linux and it just wasn't quite for me. My biggest pain points were:

  • It's slow
  • It's sometimes confusing to figure out where I am in the working directory
  • The rules about what can and can't write where are confusing
  • Writing automated browser tests for my applications is not easy

That last one is critical.

So I grabbed my Ubuntu 18.04 livedisk, partitioned off a chunk of my hard drive, and started the installation.

The process wasn't painless by any means. My first live disk got corrupted and silently failed for hours. When I finally remade the live disk and completed the installation, I goofed up a few settings borked my graphics driver because of secure boot and UEFI settings. On my third installation, I got it right.

Between my second and third installations, I lost a lot of configuration work. I don't want to lose that information again, so here's just a list of everything I need to make my development machine inhabitable. It's not comprehensive: I usually find the best way to install stuff is to wait until I need it and figure it out then. But this is a solid baseline for my Ubuntu installs

That's it! Each of these steps usually comes with its own little config steps and options, but I find my preferences change over time. This list is pretty static and includes everything I need to get up and running.