Make your Ubuntu OS more effective for programming and office work

Chamara Madhushan Liyanage
6 min readDec 19, 2021

--

source

Background

As programmers, we are keen on customizing and tweaking our OS a little bit to make it more effective and programmer-friendly. Here’s how I accomplished some undersized mods to my office laptop which is running on Ubuntu 20.04 LTS.

By default macOS and Linux is a bit programmer-friendly in my sentiment and by nature, any Linux variant is highly customizable than macOS. So let’s see how I turned my laptop more effective for office work.

Install `build-essential` package in Ubuntu

sudo apt update
sudo apt install build-essential

Well, all might not need this however it contains a list of packages that are required to create a Debian package (deb). These packages are libc, gcc, g++, make, dpkg-dev etc.

There might be some usecases where you would install this before installing anything else. Let’s say f you have to use an unusual software that is only available from the source code, your system will throw make command not found error because you need to install make tool first. And some tools might use g++ compiler and you can install these individually but it’s rather easy to quickly install this bundle to overcome a lot of hurdles.

Install terminator

I find the default terminal application bit tiresome, so recommend using terminator.

Refer to this for installation

Some cool features include

  • Arrange terminals in a grid.
  • Tabs.
  • Drag and drop re-ordering of terminals.
  • Lots of keyboard shortcuts (my favorite is splitting the terminals vertically or horizontally).

Use Zsh and install Oh My Zsh

Bash is probably the most well-known shell we’ve used, but there are other widely-used options as well, such as Zsh. Zsh, also known as the Z shell, extends the functionality of the Bourne Shell (sh), offering newer features and more support for plugins and themes.

  • Install zsh refer to this (explore a lot of tricks and tips of zsh)

ex: takecommand will create a directory and navigate into it (eliminating the need to type the two commands mkdir and cd), The recursive search is more helpful and easy than in sh or bash

  • Install oh-my-zsh which is to manage zsh configurations. It provides a plethora of plugins. Refer to this

What I use most is the git plugin and some themes which make my terminal looks nicer. The git plugin is really convenient for devs to know about the branching details.

source: https://github.com/ohmyzsh/ohmyzsh

Install ubuntu tweak tool

sudo apt install gnome-tweak-tool

If you get an error in this installation I think you might need universe repository enabled on our Ubuntu system. Refer to this.

This gnome tweak tool can be used to adjust a lot of things in the system in an easy way.

Customize the ubuntu Topbar (date-time, battery) using the gnome tweak tool

Open the gnome tweak tool and customize the Topbar as you wish. I needed all the following details at a glance.

Change the placement of title bar buttons

Hmm, it’s totally up to you. I prefer right 😄

Enable ubuntu extensions

Through extensions, we can extend some functionalities. I use the System monitor extension which I’ll be showing below.

Install System-monitor extension

I needed to sometimes keep tabs on my CPU and Memory utilization during some program executions. Also sometimes I experienced slowness and performance issues when the memory utilization reaches 100% due to endless chrome tabs we open and never close as programmers 😆. So it’s handy to know how many resources are available. You can find a lot of customizability with this extension so explore.

Refer to this for installation

Add the international clock (Gnome clock) 🕐

Well, sometimes we need to work collaboratively with other developers who are in different time zones. In this case, it’s convenient if we can quickly see the time in other countries. So I got this feature by installing the Gnome clock. Refer to this for more.

sudo apt install gnome-clocks

Search for the installed gnome clock app and add the countries accordingly.

View holidays in the ubuntu calendar 📆

It’s useful for me to quickly view upcoming holidays with the Ubuntu calendar panel if there’s a way. So I search through the internet and found out that integrating Google calendar to the Ubuntu calendar application kinda making it possible. So the result is above. Tiny dots below the calendar date is quite helpful to me sometimes in planning some of the sprint works considering both my local team and international teams. So I configured my google calendar to display both my country holidays and US holidays.

To enable this integrate google calendar to your Ubuntu calendar by going into Ubuntu settings → online accounts. Then only allow calendar permissions accordingly.

Enable [preview + minimize] applications in taskbar button click action

By default in Ubuntu, we can’t see all the open windows/applications at a glance using the taskbar buttons. Sometimes I need to switch between different windows of the same app without hitting Alt+Tab and cycling through all.

ex: IDEs, Web browser, etc.

So found this gsetting very helpful. Execute this command in the terminal

gsettings set org.gnome.shell.extensions.dash-to-dock click-action ‘minimize-or-previews’

Use Jopline 📓

It’s the note taking app I’m using as an alternative for Microsoft OneNote or Evernote (which are not available for Linux other than web applications at the time of writing this article). I needed to have a convenient way to keep all the notes into different sections and categories and sync them to the cloud as well. There’s a mobile app too so you can jot down notes from anywhere. It supports markdown too.

Refer to this for installation. (I think it needs Node.js ) 😅

Use shutter 📷

The default Ubuntu screenshot taking app is boring. 😕. So I use shutter. It’s easy to use and equipped with a handful of features. As devs we need to quickly capture a portion of the screen, edit (highlight, censor, crop) copy(ctrl+c), and paste to a chat right.

All the images above are easily captured and edited using the shutter itself. Below ones are too 👇

Use Safe Eyes 👀

This app is an open-source tool for Linux users to reduce and prevent repetitive strain injury (RSI).

Refer to this

Miscellaneous

Other than these things I always try to make the IDEs more customizable with themes and quick shortcuts so it’s totally up to you to decide your preference.

I use FiraCode font in all of my IDEs and Text editors including the terminal I guess. I find it more developer-friendly, again there are a bunch of good fonts out there so check them out too.

--

--