DEV Community

loading...
Cover image for Ubuntu 20.04 - how to make it perfect for development & productivity

Ubuntu 20.04 - how to make it perfect for development & productivity

alexandrudanpop profile image Alexandru-Dan Pop Originally published at blog.alexandrudanpop.dev ใƒปUpdated on ใƒป5 min read

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

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

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

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.

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.

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

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.

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. ๐Ÿ˜Š

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

I use Melde 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
Enter fullscreen mode Exit fullscreen mode

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.

Discussion (9)

pic
Editor guide
Collapse
ladipo profile image
Ladipo

This is a great writeup. I removed my dvd drive and added another hard disk to install Ubuntu 20.04 since last year, when Windows was frustrating my live with their troublesome update. I have never regret doing it. The writeup is just on point. All what you install was just great.

Collapse
alexandrudanpop profile image
Alexandru-Dan Pop Author

Thanks! ๐Ÿ™

Collapse
ozzythegiant profile image
Oziel Perez

I'm here to advocate for this development environment. I switched from MacOS to Ubuntu 20.10 and I think I've had a speedier experience working in this environment. Only one app has given me problems and that was Zoom but everything else works perfectly; less system resources were wasted too (I'm using Kubuntu distro).

If you happen to be a designer, I do recommend you try GIMP, Inkscape, Scribus, and Darktable as I've been able to replace Adobe with those apps in my workflow. If you are using Ubuntu in a non-Apple laptop and need Android Studio emulators, I recommend you have a dedicated graphics card installed; otherwise hang in there with using an Android phone via USB. If you develop iOS apps, unfortunately you can't build native stuff with Swift, but you could always try Flutter and integrate CodeMagic or an AWS Mac Mini server into your build pipeline.

Collapse
alexandrudanpop profile image
Alexandru-Dan Pop Author

Thanks for this comment, a great addition for the creative folks of course those are great alternatives and you can also use tools like Figma that are browser-based.

Collapse
sm0ke profile image
Sm0ke

Cool! Keep Writing.
... <('_')> ...

Collapse
lance1572 profile image
lance1572

Nice write up. Ive been using ubuntu for about a year or so for development. I too have found it very fun to work on.

Collapse
fagnertito profile image
fagnertito

I have an old Macbook Pro (mid 2011) with MacOs, but I see it works very hard with the software installed. Do you think I could make it more responsively if I try to run Ubuntu on it? I know that MacOS is part Linux but Apple input too many stuff on it, and even with 8gb ram sometimes you could hear the suffering of the fan in the processor. That's why Iยดm asking you for this advice.

Collapse
alexandrudanpop profile image
Alexandru-Dan Pop Author

You can definitely try. You can research more what Linux distros are out there that have even lighter system requirements than Ubuntu, as there are quite a few out there. Of course, they will lack in other areas. Good luck!

Collapse
iamolami profile image
iamolami

Can I try all this settings on Ubuntu 19.04?