Ubuntu 20.04 - how to make it perfect for development & productivity
Published: 2021-04-05 14:57:45

---
title: Ubuntu 20.04 - how to make it perfect for development & productivity
description:  How to customize Ubuntu fro development. Make Ubuntu look like MacOs BigSur
canonical_url: https://blog.alexandrudanpop.dev/posts/ubuntu-20-04-how-to-make-it-perfect-for-development-productivity-1jk5/
---

Since I recently configured my laptop to dual boot into Ubuntu 20.04, I wanted to share my experience and what I think you can do to make your use of this system as pleasant as possible.

I'm very impressed by how stable this system is and how customizable it is & quite frankly I think it makes an awesome dev environment.

This article assumes that you already configured your system to run Linux (Ubuntu 20.04) - and describes what customizations I did that I think are cool.  If you haven't installed Ubuntu 20.04 yet, a simple google search will get you all info needed on how to create a bootable USB with Ubuntu, how to shrink your current Windows partition & finally configure BIOS to boot & install Linux.

Also, please note that this article is just scratching the surface of the configuration options of Ubuntu.

## MacOS BigSur theme
Since I've used an M1 Mac with BigSur for a while I got very used to the "BigSur theme" and the good thing is you can replicate this on Ubuntu.

Here's how:
1. Add the universe apt repo:
`sudo apt-add-repository universe`
2. Install gnome tweeks: `sudo apt install gnome-tweak-tool`
3. Install gnome shell extensions: `sudo apt install gnome-shell-extensions`
4. Download the WhiteSur Gtk Theme from [here](https://www.gnome-look.org/p/1403328/). I downloaded both the simple dark & light ones.
5. In your home folder create a `.themes` folder if it doesn't exist and unzip the downloaded folders there.
6. Download and unzip the WhiteSur icon theme from [here](https://www.pling.com/p/1405756/) and put it in your home directory in a `.icons` folder
7. Once you do this you open `Tweaks` app and configure the themes and icons: 
![tweaks app customizations](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ky5y70ttz71dpn14j8go.png)

Note you can also install & configure MacOS fonts, but I like the Ubuntu ones so I kept those. 

One additional thing I did was install a BigSur wallpaper image, that you can easily find on google, and now the apps you open on your new Ubuntu installation will look like this, and I personally think it's pretty nice:

![tweaked ubuntu](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fwl0w2n94tgxm5jio2o5.png)

## Configure Dash to dock
One more thing I consider it's nice to do is to configure **Dash to dock** - this can give you also a dock experience similar to macOS. 

To do this: 
1. Go to Gnome Extensions and install [dash to dock](https://extensions.gnome.org/extension/307/dash-to-dock/)
2. Go to the `Tweaks` app again in the Extensions section - `Dash to dock` should be enabled or enable it if it's not - and disable `Ubuntu dock`.
3. You should see the Dash to dock now - right-click on the 9 little dots icon - and click on `Dash to dock settings`. From here you can configure the position on screen - Bottom, the sizes of the icons (for me it's 32px), and in the Appearance tab - the Opacity and other small things. 
![dash to dock config](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/luwri4sro7i0rdaxgjxl.png)

You should probably log out & log in again to make sure the settings are applied.

The steps above are courtesy of this video, but using the WhiteSur theme, and with simplified steps. 
{% youtube ZerCpEihkE8 %} 

## Install Albert 
**Albert** is a spotlight-like search tool (launcher) for Linux. Even though Ubuntu already comes with a pretty nice search functionality out of the box - pressing the Super/Windows key, I still like using Albert more. 

You can read more about it and how to install it from [here](https://albertlauncher.github.io/installing/). 

After you install it, make sure to go to `Startup Applications` app and configure it to run on startup. The command to launch it should be `/usr/bin/albert`. You can start Albert, and from the Settings screen configure your desired hotkey to open it and the Theme (I choose Spotlight Dark).

## Install Tilix terminal
I like Tilix better than the default terminal, I like how customizable it is, and the split panel feature. I configure it so `ctrl+t` adds a new split terminal and `ctrl+w` closes a panel. You can install Tilix from the `Ubuntu Software` app.
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tfqgvlne4vqmj78798ct.png)
 
I also installed `fish shell` and use it as the default shell. I think fish is a much nicer shell, especially for the autosuggestions. You can check it out [here](https://www.vultr.com/docs/installing-fish-shell-on-ubuntu).

## Brave browser
**Brave** is my default browser for a few months. It's exactly like **Google Chrome** (Chromium-based), so you can use all extensions & features you have on Chrome, but unlike Chrome - it's not a tracking machine. 

It supports ad-blocking and tracker-blocking out of the box. 

You can set it to use **DuckDuckGo** as the default search engine, and probably have a much better web surfing experience since you don't see all those ads and trackers don't make the websites you visit slow.  

You can add Brave from the `Ubuntu Software` app.

## Dev & productivity tools 
I won't insist too much on this aspect, as it's pretty obvious that the best tools for development work great on this distro, and are pretty easy to install. I use:
- VSCode
- Notepad++ 
- Docker
- Postman
- Homebrew
- Nodejs, yarn, etc. 

From my previous experience of trying out the **M1 Mac**, and trying all sorts of workarounds for simple stuff, I can say everything has been a breeze on Linux. 😊 

{% post https://dev.to/alexandrudanpop/the-m1-mac-is-it-worth-it-for-devs-3fi5 %}

I also like using Spotify that works great here & **Notion** for note-taking & personal task management.

I use [Melde](https://meldmerge.org/) as a 3-way merge tool for git - that is also pretty easy to configure - see below:

If I do a `cd ~ && cat .gitconfig` - will only copy here the merge tool config:

```
[merge]
    tool = meld
[mergetool "meld"]
    cmd = meld "$LOCAL" "$MERGED" "$REMOTE" --output "$MERGED"
"$MERGED"
    keepBackup = false
```
Then when you have a git conflict, you can use: `git mergetool` to fix it. 

## Make it faster
Linux systems are extremely memory-efficient, I sometimes look at the OS especially without having many things running and I marvel at how little memory it uses compared to Windows or macOS. But some application startup times are not the best, but for this, you can use `preload`, at the cost of some additional RAM.

To improve startup times for different applications:
`sudo apt install preload` 

## Conclusions
Consider trying Ubuntu or some other Linux distro if you are a developer. You will not regret it!

You might even see that your 3y old laptop/mac doesn't need an upgrade, just because of how memory efficient & well-optimized Linux is.

Thanks for reading, if you enjoy this article chances are you will also like what I post on [Twitter](https://twitter.com/alexandrudanpop).