A More Productive Look and Feel on an Ubuntu Workspace

I think this looks cool. Tee hee.

An aesthetically pleasing look and feel on your desktop environment is a nice thing to have. Especially when working long hours on your machine, it becomes more of a mandatory requirement, because the last you need when you’re cracking your brains trying to find a solution to a problem is an annoying user interface which just keep adding to the frustration.

Using a few tools and some tweaks here and there, you could make your Ubuntu Desktop look cooler and more efficient. In this post, I show you how to do just that.

The Terminal

The Linux Shell is a developer’s best friend. The default terminal in Ubuntu is fine, but it looks a bit dull and does not provide nearly enough helpful features or information that other shells could provide.

ZSH, an extension of Bash, is a heavily customizable shell which practically allows us to do whatever we want. There are tons of plugins and frameworks which can be run on Zsh to make a developer’s life much easier.

Let’s install Zsh first.

apt install zsh

Now that you’ve installed the new shell, lets get to customizing it.

Enter Oh My Zsh! This is a powerful framework that lets you take advantage of all those plugins and pretty themes. To install, run the following dash command.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Once the installation is complete, login to the system again. Now the default shell will be ZSH.

Oh My Zsh Themes

Oh My Zsh comes with many themes packed with its installation. The default theme you see when you first use OMZ is called RobbyRussell and it looks something like this.

Looks simple and neat, yeah?

Here is a list of all themes that come with the installation. If you want to switch to a different theme, open the .zshrc file in the home directory and change the value of ZSH_THEME to your preferred theme name. Once this is done, reload the terminal to observe the changes.

If you’re looking for something more advanced, Powerlevel10k is a Zsh theme that offers a whole lot of customizations and tools to enhance the developer experience.

As you can see, this theme delivers much more information in a single line than the previous one, and it can be further tweaked to deliver more…or less. This theme is not available with the original OMZ installation, therefore you will have to install it manually by executing the following command and updating the /.zshrc file as mentioned earlier.

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k

To see all other customizations available in Powerlevel10k, checkout their Github repo.

If you feel all this extra information clutters the terminal, it’s better to stick to the simplistic themes shown earlier.

Plugins

Zsh plugins will help add more functionality to the terminal. Try the auto-complete feature for git commands by typing git and hitting TAB. This is what you would see.

This is possible because the Git plugin is already included in the installation. You will be able to find such plugins for other languages and tools as well from here. To enable the plugin once it is installed, simply open the /.zshrc file and append the plugin name to theplugins list with a space. For example,

plugins=(
git
zsh-syntax-highlighting
zsh-autosuggestions
bgnotify
colorize
)

To reflect the changes on the terminal, execute source ~/.zshrc in the terminal or reload the terminal.

There are a few more plugins that will prove extremely useful.

1 — zsh-syntax-highlighting — this highlights commands that can be executed in green and commands that aren’t available in red.

To install, execute the following and update /.zshrc -> plugins.

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting 

2 — zsh-autosuggestionsthis plugin offers command completions based on your command history. If the suggestion is the correct one, press the right arrow key and the command will be completed.

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

3 — bgnotifyif you initiate a process and let it run on the terminal while you get on with some other work, this plugin will alert you once the task is completed. This plugin is available by default.

Indicating that the server has been successfully shutdown.

4 — fzfa finder tool for the terminal. By pressing Ctrl+T you can search for any file in the current directory.

Also, by pressing Ctrl+R you will be able to view all your recent commands history.

You can simply navigate to the required command using the arrow key and press Enter to use the particular command. To install, execute the following.

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

A Better Looking GNOME Environment

The Ubuntu desktop environment can be customized to your preference as well. There are hundreds of themes available to change the look and feel of the Ubuntu GUI and it is even possible to make it look somewhat like the other operating systems that you’re familiar with.

Start by installing the Gnome Tweak tool.

sudo apt install gnome-tweaks

Once the installation is done, run the tool by using the command gnome-tweaks or by using the applications menu. This tool will give you access to several awesome features that the generic settings of Ubuntu would not provide, such as more flexibility on changing appearance and fonts, adding extensions, customizing the top bar, etc.

Themes and Icons

To download themes, head over to gnome-look.org and browse. There are tons of cool resources available here for customizing GNOME. Some of my personal favourite themes are the Prof Gnome and the Mc-OS themes.

After downloading the theme zip files, create a folder called .themes in your home directory and extract the zips to this folder.

Navigate to the Appearance tab in the Gnome Tweak tool and change the theme to your preferred one.

You can also follow the same approach for icons. Download the icon pack zips from Gnome-look and extract them to a folder named .icons in the home directory. If you don’t see the new theme or icon pack shown in the tool, try restarting the tool.

A Less Obtrusive Dock

Not everyone is a fan of the default dock shipped with Ubuntu. The side panel may make things look odd and feel out of balance. You could try switching the dock to the bottom like it is in Windows, but then again, why stop there when there’s a much better option available.

Dash-to-Dock is a dock much like the macOS dock, but for Gnome. With better aesthetics, and easier launching and switching between applications, this dock makes the desktop environment much cleaner and easier to use.

This extension can be easily installed via the Gnome Shell extension on Google Chrome. When browsing the Gnome Extensions website, it’ll prompt you to install the Chrome extension. Once this is done, it is only a matter of toggling the On-Off switch on the top right corner of the extension page to install it.

Navigate to the extensions tab in the Gnome Tweaks tool and edit preferences to personalize the Dash-to-Dock. There are some useful options such as intellihide (an improvised auto-hide mechanism), show window previews with double click, switch between windows of the same application by scrolling over the icon, and much more.

Another extension that would replace the default dock and the top bar altogether would be Dash-to-Panel. This combines both the dock and the top bar into a single component like the taskbar in Windows.

Try it out, if you’re interested. But my personal favourite is Dash-to-Dock because of its simplicity.

Save Pixels

Nowadays, most work laptops are compact and come with smaller screens. So you’d want to use all the space available for the work that you’re doing. Reducing the clutter and unnecessary GUI components helps focus more on the problem at hand. Especially if your monitor size is below 15", it better to hide all docks and bars and go full screen when working.

Dash-to-Dock has already helped you achieve that partially. Its compactness frees up a lot of space, and setting it to auto-hide helps free up all the pixels that would otherwise be used for a full dock panel.

Still, there is a little bit more real estate available we could utilize. The Activity Bar and the Title Bar.

By installing the Pixel Saver extension, the title bar could be fused with the activity bar. This merges the information that would be shown in the title bar and the exit, minimize, maximize buttons to the activity bar in a convenient manner.

Furthermore, we could set the activity bar to intellihide just like we did for Dash-to-Dock. To do this, install the Hide Top Bar extension and manually adjust the animation durations in the Gnome Tweak tool according to your preference.

So now my entire workspace looks like this.

Fullscreen! Crispy clean! And no distractions.

Simply move your cursor towards an edge to view the activity bar or the dock. Other application windows are only a single scroll-on-the-dock-icon away.

I’ll keep this post updated if I find more ways to improvise.

Hope this helps! Cheers! :)

Also, say Hi to Felicity, the Fosa mascot of the new Ubuntu 20.04 LTS!

“Talent is a pursued interest. Anything that you’re willing to practice, you can do.”