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
orSuper + Alt + Left
- Cycle apps: Usually
Alt + Tab
, but I preferAlt + Esc
as I find easier to pressEsc
until the window I want comes up than to read icons.Esc
is also easier to press thatTab
for me. - Close app:
Alt + F4
These are basics, but we can configure a few additional one in Settings > Keyboard:
My favorite are:
- Launchers:
Super + C
- Terminal (Console)Super + F
- FilesCtrl + W
- Web browserCtrl + 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:
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:
- Clipboard Indicator - Allows to paste previous things copied, not only last one.
- Useless Gaps - adds gaps between windows giving a unique look.
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
andVS 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 type3
.
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!