I just reinstalled Ubuntu on my machine, after I mounted a larger SDD.

In this article I will document my basic setup, such as options, gnome customizations, keyboard shortcuts, and basic tools to install for a base system.

The configuration is generic, but some of the applications I install are geared towards technical users and developers.

So, let’s get started.

Ubuntu Version and Flavour

I only use LTS versions, because I use my computer to work and I don’t want to fiddle around with updates every 6 months. I also had some bad experiences with updates in the past, where it would not cleanly transition to the next version. So 22.04 it is.

I use the default Ubuntu with Gnome. Initially, I was a bit skeptical of Gnome in general, but it’s the only environment (bar maybe KDE) that properly works with my nvidia graphics card and supports fractional scaling (necessary due to 4k monitor). I also find bluetooth it’s the most reliable I have seen on linux, which helps since I use a wireless keyboard.

It’s also the environment that looks the best out of the box.

Partitioning

One of the reasons I write this guide is that I stopped using a separate partition for /home, so I have to reconfigure everything each time. One of the recommended setups in the linux world is this:

  • One partition for /
  • Another for /home

This way, when reinstalling, one doesn’t need to backup files and application configuration, as it’s possible to reformat only /.

In spite of this, I find it impractical for the following reasons:

  • You never backup somewhere else because of that, then one day the disk dies.
  • Difficult to allocate disk space, as the partition split is fixed. I would find myself with a full /home partition but still lots of space on /, or the other way around.
  • I don’t actually want to keep configuration of applications around for years. After a while it starts rotting and I have a sticky ball of messy configurations. Starting fresh is nice, although you pay for it in the setup time (hence this post).

Installation Options

During installation, I never install updates, as it takes a lot of time, and in the meanwhile I cannot use the machine. I install updates at the first boot, while I configure my system.

To update everything use:

# First terminal (keep Firefox closed)
sudo snap refresh
# Second terminal
sudo apt update && sudo apt upgrade

I also do only minimal installation, as it takes less time. I mostly do not need all the application anyway, such as LibreOffice (we’re not in 2003 anymore).

Gnome Setup

Gnome out of the box is mostly fine, however you might want to customize your system to make it work and look even better and feel a little more personal. Additionally, there are some Gnome shell extensions which are really useful.

Shortcuts

Gnome is a very keyboard centric Desktop Environment, and the most efficient way to do most things is using the shortcuts.

In the following, Super is also known as the Meta, Win or Windows key. When I write Up or Left the inverse operation works with the opposite arrow key.

The most useful shortcuts are:

  • Open or switch to app: Super + name + Enter. You can type the first few letters of the name to find the app, for example “fire” for “Firefox”.
  • Maximize window: Super + Up
  • Split window on left : Super + Left
  • Switch workspace (desktop): Ctrl + Alt + Left or Super + Alt + Left
  • Cycle apps: Usually Alt + Tab, but I prefer Alt + Esc as I find easier to press Esc until the window I want comes up than to read icons. Esc is also easier to press that Tab for me.
  • Close app: Alt + F4

These are basics, but we can configure a few additional one in Settings > Keyboard:

Gnome Keyboard Shortcut Setting

My favorite are:

  • Launchers:
    • Super + C - Terminal (Console)
    • Super + F - Files
    • Ctrl + W - Web browser
    • Ctrl + Z - Settings (for bluetooth and sound)
  • Navigation:
    • Ctrl + Super + Left - Move window one workspace to the left

After this, you hardly need to search for apps anymore, at least the most common ones. The last shortcuts allows for moving windows quickly between workspaces without touching the mouse. There are also shortcuts for multi-monitor setups if you use one.

Note: Gnome likes to map your function keys (F1-F12) to the quick actions (such as music forward, calculator, etc). This might be fine for you, but I find it very annoying because I use them a lot in code editors and in the terminal.

To disable this behavior, run this command

echo options hid_apple fnmode=2 | sudo e -a /etc/modprobe.d/hid_apple.conf

then reboot.

Quick Detour on Workspaces

Some of the keyboards shortcuts above are related to workspaces (also known as virtual desktops) which are screen that contain application windows. You can move the windows around and arrange them as you like.

This is a feature I adore, as it enables much easier navigation with the keyboard.

In practice, I usually keep one workspace for each window or task. For instance, my first workspace is always the web browser, and the second is my code editor. Switching from code to documentation in then a single key press.

I then create other workspaces if I have other tasks (file browsing, terminals, image editing, etc).

Learn to use them, they are very useful!

Display, Appearance and Multitasking Customization

That is mostly up to your liking, but I usually set the following:

  • Settings > Background:
    • Set my own background.
  • Settings > Appearance:
    • Switch to dark theme and choose a color I like.
    • Disable volumes and trash icons from the dock. I never use them and they take up space.
  • Settings > Displays:
    • Enable fractional scaling and scale screen to a comfortable size.
    • Enable night light.
  • Settings > Multitasking:
    • Enable dynamic workspaces to never run out of space.
    • Enable workspaces on all displays because I want to have more space.
    • Enable include applications from current workspace only, as I keep track of workspaces in my head.
    • Enable include applications from all monitors, since most people use a single dock.

Extensions

Let’s start with the extensions. To manage them, I install the Extension Manager application with Ubuntu Software:

Gnome Extensions

This is handy, as with it you can quickly install and configure extensions.

Utility extensions I install:

  • Auto Move Windows - This is a super useful extension if you use workspaces. You can configure applications to always open to a specific workspace, so you don’t even have to move them around. For instance, I have the web browser configured on the first workspace, and the code editors in the second one.
  • Tactile - Gnome offers basic splitting of windows to the half left and right of the screen (see above). However, sometimes one needs a bit more configuration options, for instance, when using many terminals. This extension allows you to quickly tile windows in complex layout with only the keyboard.

And now the controversial bits 😀: the eye-candy. I don’t like Ubuntu’s default dock (I actually don’t use the dock much, due to keyboard) and a few other things, for instance desktop icons. Here my opinionated list of changes (from the Extension Manager):

  • Disable Desktop Icon as I never use them and they look ugly.
  • Disable Ubuntu Dock as it isn’t that customizable.
  • Install Dash to Dock and configure it with Intelligent Autohide (to maximize screen space for applications) and disabling the Applications icon (useless as you can simply press Super and type).
  • For maximum eye-candy I use Blur my Shell which adds cool blur effects, makes the top bar translucent and generally makes Gnome a little less gloomy and black.

Other extensions to consider:

Applications

This is of course user-specific, but I have some apps that I find are consistently useful:

  • Chromium as a second browser.
  • Gimp as an image editor.
  • Inkscape as a vector graphics editor.
  • Telegran for messaging.
  • IntelliJ, PyCharm and VS Code because they are great editors, all available from snap.
  • Command line tools:
    • curl for making HTTP requests and as a base tool.
    • vim for quick text editing.
    • htop for searching and killing processes.
    • ncdu to check which folder is the largest, very useful to find out what is taking up disk space.
    • git because it is obligatory.
    • python-is-python3 because I’m fed up of having to type 3.

To install all:

sudo snap install chromium
sudo snap install telegram-desktop
sudo snap install intellij-idea-community --classic
sudo snap install pycharm-community --classic
sudo snap install code --classic
sudo apt install gimp inkscape curl vim htop ncdu git python-is-python3

From there, I install what I need on demand.

Troubleshooting

Problems by updating Ubuntu Software

First close Ubuntu Software, then run

sudo snap refresh

If it says no snaps to update but it’s still not updated, kill the snap-software process and try again.

Cannot find or install Gnome extension

Try to add the Firefox browser extension, update Gnome to the latest version and reboot the machine.

If you cannot find the extension you want from the app, try installing directly from https://extensions.gnome.org

Final Tips

For even faster start when I boot my PC, I configure to launch the web browser at startup. Additionally, I set my computer to auto-login, since it’s a desktop box and never moves from my room.

I hope you enjoyed this guide and you found some information to work more efficiently with Ubuntu and Gnome!