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.

Appearance

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:

testpattern

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

colormake

Simple wrapper around make to colorize its output.

redshift

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:

Tools

Terminator

Multi-window terminal with lots of features.

ripgrep

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:

geany

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

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

glances

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.

screenshot_2016-11-07_06-24-23

Optimizations

ccache

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

Virtualbox

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
avatar
wpDiscuz