Essential Linux Dev Stuff

I’ve recently started developing more in Linux, here is a collection of tools, tips and tricks to get the most out of the box. I’ll expand this list from time to time.


Terminal & Editor font: Hack

Here is a test pattern I am using to evaluate fonts:

This is how the pattern looks like with Hack, my favourite programming font:


All characters are very distinguishable, e.g. 0 and O, 1 and l. Subpixel hinting is also excellent.


Simple wrapper around make to colorize its output.


Install redshift-gtk, which is similar to f.lux but is more robust on my graphics card. I use this config for redshift (geoloc provider has problems).

In file ~/.config/redshift.conf:



Multi-window terminal with lots of features.


Extremely fast grep tool, similar to ack but much faster, even faster than silver searcher. It searches through my 48GB subversion folder in 1 second. Also available for Windows! See here for installation instructions.

I’ve also added some aliases in ~/.bash_aliases:


Replacement for gedit, for basic editing tasks. It’s not excellent but usually does the job. I’m not a vim/emacs guy.

Visual Studio Code

Nice and highly configurable editor, also great in Linux. Just open a directory and you are ready to go. Get it here. Essential extensions are:

There are many others, but these are the bare minimum I use.


Glances gives a fantastic overview of what’s going on in the system. Using you can see at a glance if e.g. your memory, disk space, swap is running out. The version you’ll get with apt is unfortunately quite outdate, so I am installing it with pip (see the homepage).


Useful Time Savers

Clear Terminal buffer

In ~/.bash_aliases, put this:

While Ctrl+L just clears the screen, cls will now clear the whole buffer. Convenient for a large build job and you want to scroll up to find something without scrolling too far.

Sleep Until

I use this ruby script to sleep until a given time. It’s in ruby so I can also easily use it in Windows:

I use this to schedule builds, so that when I arrive at the office everything is already built with the latest version so I can start working right away.

bash prompt with runtime and errorcode

See my Linux Bash Prompt post. It’s awesome.




Use ccache, and use it on an SSD disk. Here are my settings from ~/.ccache/ccache.conf:

I’m using this for a huge C++ project where I build debug, release both in 32bit and 64bit, so a large ccache helps. Using compression_level is only a very minor slowdown, but practically increases cache size by a factor of 3-5 or so.

Use tmpfs for /tmp

Much faster compilation. Add this to /etc/fstab:

Compressed RAM

Especially in virtual machines or low-end machines where memory is constrained, zram provides memory compression.

Reboot your machine, and everything is well configured. For more information, see

Disk Cleanup

Remove libreoffice

Remove old Kernels

Source: How to Easily Remove Old Kernels in Ubuntu 16.04


Dynamic Disk Size

Don’t do it. It’s much slower. If you have to, be aware of this:

I’m using Linux in a Windows Host, my .vdi image is on an SSD. When using dynamic disk size, this unfortunately grows the space continuously when compiling a lot, because deleted files won’t shrink the .vdi image. But it is possible to do this with e.g. zerofree (a hazzle), or better with TRIM:

  • In the Windows host, enable SSD and TRIM support for the image (see here):

  • In Linux guest, perform TRIM, you’ll see the .vdi disk shrinking while this runs:

  • Add a nightly task to crontab with sudo crontab -e, there add this line:

I also tried to mount the image with the discard option (see here), but it caused my Linux to hang so I disabled it again

Mount shared folder

Add the user to the vboxsf group:

Edit /etc/fstab e.g. like this:

GNOME keyring Without Password Prompt

It’s unfortunate when a scheduled svn up asks for password because it has not been entered for a while. To disable the password question, do this:

  1. sudo apt install seahorse
  2. Follow this guide.

Be the First to Comment!

Notify of