DEV Community

Cover image for Ubuntu 20.04 - how to make it perfect for development & productivity
Alexandru-Dan Pop
Alexandru-Dan Pop

Posted on • Edited on • Originally published at blog.alexandrudanpop.dev

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

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.

Top comments (12)

Collapse
 
1oglop1 profile image
Jan Gazda

Thanks @alexandrudanpop for both articles about Mac M1 and Ubuntu, I'm currently doing a research what machine should I buy. I've been working on Mac past few years but user interface still does not fit me on the other hand I really liked the battery life.
I've heard there are some problems with meeting programs like Zoom or MS Teams, Slack, etc..

Do you have any experience with that?

Another thing that is holding me back from MacM1 is that it comes with maximum 16GB of RAM and non-mac computers offer 32GB even 64GB for the same/similar price.

I plan to run a bunch of docker containers, so more RAM is always better however if I cannot use the communication tools for video meetings it may be a deal breakers.

Thank you!

Collapse
 
alexandrudanpop profile image
Alexandru-Dan Pop

Zoom, slack, Skype, all work on Ubuntu. Haven't tried MS teams but shouldn't be a problem since it's an electron app.

Collapse
 
1oglop1 profile image
Jan Gazda • Edited

Thank you for your reply,

I've heard that "drawing on someone elses screen" may be a problem, but I guess I have to try it myself, I mainly use Chrome for these apps rather than native app.

UPDATE: I installed Ubuntu 21.04 and I'm unable to share the entire scree in any application - it's just black - this issue seem to be related to the Wayland session in Gnome.

Thread Thread
 
devangpipaliya profile image
Devang Pipaliya

There is an wayland option available in "/etc/gdm3/custom.conf"

Just uncomment it and restart. Full screen sharing should work.

Image description

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

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

Thanks! 🙏

Collapse
 
alexandrudanpop profile image
Alexandru-Dan Pop

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
 
sm0ke profile image
Sm0ke

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

Collapse
 
joyess profile image
joyess

This was very insightful! Thank you for this. I recently used UTM to install Ubuntu 20.04 on my M1 mac and attempted to install Homebrew and VSCode due to me not running on an Intel chip. Was wondering if you had any additional tips/insight on how to accomplish installing the recommended tools?

Collapse
 
iamolami profile image
iamolami

Can I try all this settings on Ubuntu 19.04?