My Favorite Tools on Linux

Jan 10, 2021


By: Brandon Quakkelaar

Last year I decided to take on the challenge of running just Linux. I wanted to see how good (or bad) the experience would be, and whether it’d be painful enough that I’d go back to using Windows. I went ahead and installed Linux Mint on my primary personal laptop. I did not dual boot Windows. This meant I stopped using Windows 10 unless it was work related. Thankfully, I don’t really miss Windows 10 that much. There were some bumps along the road, but the overall results were positive and enjoyable. So, I thought I’d share my favorite software choices for my personal Linux workstation.

I’ll show the installation shell commands I used, but know that these are meant for the Debian family of Linux distributions. Specifically, I ran these commands on Linux Mint 20.

Also, I’m not going to get into the stuff that comes with Linux Mint by default. You’ll get a calculator, web browser, backup tool, and the entire LibreOffice suite. You’ll get SSH, and more. Generally, these are great tools that can easily replace their Windows equivalents.

The Basics


VPN software is important for online privacy and security and NordVPN was my choice before switching to Linux. Thankfully, they have Linux support as well.

wget -qnc
sudo dpkg -i ./nordvpn-release_1.0.0_all.deb
sudo apt-get update
sudo apt-get --assume-yes install nordvpn
rm nordvpn-release_1.0.0_all.deb

Once installed, login to NordVPN with nordvpn login. If you want it to automatically connect when you start your computer you can run nordvpn set autoconnect on. Though be careful to exclude your local area network if you’re trying to connect to other computers. Whitelist your LAN’s IP range with nordvpn whitelist add subnet


No surprise here. I use Git for blogging and side projects.

sudo apt-get install git


The jq command is a handy utility for parsing JSON in the terminal. I like to automate API testing with bash scripts using jq to parse the JSON response.

sudo apt-get install jq


Filezilla is my preferred FTP client.

sudo apt-get install filezilla


I like using the terminal as much as I can. And Tmux adds a ton of flexibility, through keybindings, to create, close, move, resize, and generally play with multiple terminal “panes”. So instead of having a bunch of terminal windows, and instead of having a bunch of tabs, I use Tmux.

sudo apt-get install tmux


The ls command is very handy, but sometimes I just want to see a tree structure including child directories. Tree offers that functionality and is pretty handy when I don’t want to switch over to a windowed file browser.

sudo apt-get install tree


The direnv shell tool is for easily configuring environment variables that are specific to the folder you’re currently working in. I came across it while reading Writing An Interpreter In Go. The author of that book recommended it to manage Go environment configurations. It’s been working great.

sudo apt-get install direnv


Hugo is a static site generator that I use to manage this blog.

sudo apt-get install hugo

Text Editing


Vim is a staple editor in the Linux community. And while there is fierce competition with other options, it’s reputation is really solid among those who use it. I wrote about Vim before, back when I was still using Windows for everything.

sudo apt-get install vim

Visual Studio Code

I spend most of my time on my laptop working in Visual Studio Code. I use it for all my blogging and coding. While I’m always on the lookout for something to take it’s place, Visual Studio Code is essential to my projects.

wget -qnc -O vscode.deb
sudo apt install -y ./vscode.deb
sudo apt-get update
sudo apt-get --assume-yes install code
rm vscode.deb



Alrighty, Pencil is great. I love using this thing. It’s a tool for designing layouts and user interfaces. I used to use Balsamiq, but Pencil’s quality and user experience is very comparable. And it’s available on Linux for free!

wget -qnc -O pencil.deb
sudo apt install -y ./pencil.deb
sudo apt-get update
sudo apt-get --assume-yes install pencil
rm pencil.deb


Inkscape is a high quality vector graphics editor. There is a learning curve to it. And if you’re coming from a background using Illustrator, then you’ll need to re-learn how to do some things. I would frequently use Illustrator back when I professionally did graphics and logo design work. And considering that experience, I have no reservations recommending Inkscape for new projects.

sudo add-apt-repository -y
sudo apt update
sudo apt install -y inkscape



HandBrake is a video transcoder. It will do a pretty good job of taking a video file and converting it to another format. It also lets you tweak compression and quality levels.

sudo add-apt-repository ppa:stebbins/handbrake-releases -y
sudo apt-get update
sudo apt-get install -y handbrake-gtk
sudo apt-get install -y handbrake-cli


One of the things that my copy of Linux Mint was missing out of the box was a way to take pictures and video recordings using my laptop’s camera. Cheese is a snappy little program that provides that functionality.

sudo apt-get install cheese


I like to do a very small amount of video editing. I primarily just edit small clips of my personal records for my training log. I paid for a video editing tool that I used on Windows. But

sudo apt-get install kdenlive


Youtube-dl is a tool to download clips off of YouTube. I used it recently grab a couple small clips for my post about building strength of character.

sudo curl -L -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

Since YouTube is constantly changing their website, Youtube-dl needs to be kept as up-to-date as possible in order to work. So, once it’s installed, be sure to open a new terminal and run youtube-dl -U to update it.

Also, I had some issues getting this running. I think the fix was to make sure that Python, specifically a python command, was installed.


Python 3

I like my Python with PIP and Pipenv.

sudo apt-get install python3
sudo apt-get --assume-yes install python3-pip
pip3 install --user pipenv


I like my JavaScript with Node and NPM.

sudo apt-get install nodejs
sudo apt-get install npm

Go (Golang)

Go isn’t quite as straightforward to set up as the previous two. But it’s not too bad.

sudo add-apt-repository ppa:longsleep/golang-backports --yes
sudo apt-get --assume-yes update
sudo apt-get --assume-yes install golang-go
mkdir -p ~/go/{bin,pkg,src}
echo 'export GOPATH="$HOME/go"' >> ~/.bashrc
echo 'export PATH="$PATH:${GOPATH//://bin:}/bin"' >> ~/.bashrc


Thus concludes this list. All of this software is powerful, and free. Just about any computing activity I’ve pursued has functional software options on Linux. I hope you are encouraged by my experience to try some of these yourself.

Further Reading

Thanks for reading. Feel free to send comments to