Getting started with Ubuntu on your desktop

I have been using Linux for a long time. Some times with a Dual Boot setup – that is when the system starts you choose between the installed operating systems e.g. Windows and Linux. And I have been using Linux as the main desktop as well. In this post I will be exploring getting started with Ubuntu.

This write-up will document my choices and reasonings for those choice. Mainly as a reminder to myself but perhaps it can be of use to you too! It will be a “Work-in-Progress” so consider it ever-changing.

Latest revision: January 1st, 2021

For quite some time I have used Debian as my main Linux distribution. “Debian is one of the oldest operating systems based on the Linux kernel” (according to wikipedia). And it is one of the more conservative Linux distributions available. This means that the software included is not the latest version available. But it is very stable as it has been tested for quite some time before being included or updated.

I am currently running Debian 10 on my Home Server and was until recently also running it on my desktop machine. So recently I decided to switch to the latest Ubuntu – Groovy Gorilla – to allow me to use newer software on my desktop. Today I decided to start over from scratch.

Getting started with Ubuntu

First you need a copy of Ubuntu. You can install from CD, DVD or USB – your choice. I used a 16 GB USB 3.0 stick for the job mainly down to speed and ease.

This post is being written on a fresh install of Ubuntu Groovy Gorilla without any additional software installed. I do need to install new software, but let us go through what is installed by default:

  • Internet
    • Firefox (browser)
    • Thunderbird (e-mail + calendar)
    • Transmission (bittorrent)
  • Productivity
    • LibreOffice (Office Suite)
      • Writer
      • Calc (spread sheet)
      • Impress (presentation)
      • Draw
    • To Do
    • Calendar
  • Entertainment
    • Rhythmbox (music player)
    • Shotwell (photo organiser)
    • Games
      • Aislerot Solitaire
      • Mahjongg
      • Mines
      • Sudoku

What I need this desktop for and the software I am planning to install:

  • 3D modelling and printing
    • Blender
    • Cura
  • Editing Audio
    • Audacity
  • Editing Photos & Graphics
    • GIMP
    • Inkscape
  • Recording & Editing Video
    • OBS
    • Lightworks
  • General Productivity
    • GKrellm
    • Gnome Shell Tweaks
    • Gnome Shell Extensions
  • Entertainment
    • Music
      • Spotify
    • Video
      • VLC Player
    • Games
      • FS-UAE
      • VICE
      • Steam
  • Internet
    • Chromium (web browser)
  • Programming
  • Miscellaneus
    • Java

I will add a header for each of the software packages I install. When reading this document assume that any software mentioned previously has been installed.

First changes

I have a few behind the scenes changes and addition, I would like to make.

Grub

First, when Ubuntu boots, you are given a boot screen where any other operating systems – like Windows – are listed. I do not have any other operating systems installed so I do not need as long a wait time so I am changing that to 5 seconds:

In order to change change the setting for grub the boot loader, we need to open a terminal. This can be done either through pressing the SUPER (Windows) key or clicking on Activities then type term – this will give you a terminal window. As I use the terminal quite often I will add that to my favourites in the activities bar by right clicking the Terminal icon and then ‘Add to Favourites’

In the terminal window write (omit the $):

$ sudo vi /etc/default/grub

This will open up the configuration file for grub (the bootloader) in the vi editor. Find the line GRUB_TIMEOUT=0 and change it to what you would like. I will change it to 5 seconds:

GRUB_TIMEOUT=5

To exit and save press <ESC> then : then x

Then run grub-update:

$ sudo grub-update
Sourcing file /etc/default/grub' Sourcing file/etc/default/grub.d/init-select.cfg'
 Generating grub configuration file …
 Found linux image: /boot/vmlinuz-5.8.0-33-generic
 Found initrd image: /boot/initrd.img-5.8.0-33-generic
 Found linux image: /boot/vmlinuz-5.8.0-25-generic
 Found initrd image: /boot/initrd.img-5.8.0-25-generic
 Adding boot menu entry for UEFI Firmware Settings
 done

Connecting to network drives (NFS)

Secondly I have some network drives on my Home Server that I would like access to via NFS. Again in the terminal window open the vi editor this time to edit the fstab file:

$ sudo vi /etc/fstab

Here I need to add the network drives I want to have access to:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
# UUID=64116f8d-e839-41c9-8934-6dc56f3b7b8f /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
 UUID=7B31-02AD  /boot/efi       vfat    umask=0077      0       1
 /swapfile                                 none            swap    sw              0       0
# NFS mounts
 192.168.2.20:/home      /mnt/home       nfs     auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
 192.168.2.20:/mnt/media /mnt/media      nfs     auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

I added the last four (4) lines to the file that was already there – 1 blank, 1 comment (# NFS mounts) and two network drives. Save and exit vi with then : then x.

Before we can mount these files we need to add capability to mount NFS drives by installing the NFS client module:

$ sudo apt install nfs-common 
 Reading package lists… Done
 Building dependency tree       
 Reading state information… Done
 The following additional packages will be installed:
   keyutils rpcbind
 Suggested packages:
   open-iscsi watchdog
 The following NEW packages will be installed
   keyutils nfs-common rpcbind
 0 to upgrade, 3 to newly install, 0 to remove and 0 not to upgrade.
 Need to get 295 kB of archives.
 After this operation, 1.147 kB of additional disk space will be used.
 Do you want to continue? [Y/n] 
 Get:1 http://dk.archive.ubuntu.com/ubuntu groovy/main amd64 rpcbind amd64 1.2.5-9 [45,0 kB]
 Get:2 http://dk.archive.ubuntu.com/ubuntu groovy/main amd64 keyutils amd64 1.6.1-2ubuntu1 [45,7 kB]
 Get:3 http://dk.archive.ubuntu.com/ubuntu groovy/main amd64 nfs-common amd64 1:1.3.4-2.5ubuntu6 [204 kB]
 Fetched 295 kB in 0s (698 kB/s)     
 Selecting previously unselected package rpcbind.
 (Reading database … 189269 files and directories currently installed.)
 Preparing to unpack …/rpcbind_1.2.5-9_amd64.deb …
 Unpacking rpcbind (1.2.5-9) …
 Selecting previously unselected package keyutils.
 Preparing to unpack …/keyutils_1.6.1-2ubuntu1_amd64.deb …
 Unpacking keyutils (1.6.1-2ubuntu1) …
 Selecting previously unselected package nfs-common.
 Preparing to unpack …/nfs-common_1%3a1.3.4-2.5ubuntu6_amd64.deb …
 Unpacking nfs-common (1:1.3.4-2.5ubuntu6) …
 Setting up rpcbind (1.2.5-9) …
 Created symlink /etc/systemd/system/multi-user.target.wants/rpcbind.service → /lib/systemd/system/rpcbind.service.
 Created symlink /etc/systemd/system/sockets.target.wants/rpcbind.socket → /lib/systemd/system/rpcbind.socket.
 Setting up keyutils (1.6.1-2ubuntu1) …
 Setting up nfs-common (1:1.3.4-2.5ubuntu6) …
 Creating config file /etc/idmapd.conf with new version
 Adding system user statd' (UID 128) ... Adding new userstatd' (UID 128) with group nogroup' ... Not creating home directory/var/lib/nfs'.
 Created symlink /etc/systemd/system/multi-user.target.wants/nfs-client.target → /lib/systemd/system/nfs-client.target.
 Created symlink /etc/systemd/system/remote-fs.target.wants/nfs-client.target → /lib/systemd/system/nfs-client.target.
 nfs-utils.service is a disabled or a static unit, not starting it.
 Processing triggers for man-db (2.9.3-2) …
 Processing triggers for systemd (246.6-1ubuntu1) …

We also need to add the directories that holds these two mount points:

$ sudo mkdir /mnt/home
$ sudo mkdir /mnt/media
$ ls -l /mnt
 total 8
 drwxr-xr-x 2 root root 4096 dec 29 12:16 home
 drwxr-xr-x 2 root root 4096 dec 29 12:16 media

mkdir makes a directory. ls lists the files and directories at a given point.

Now we can mount the two network drives:

$ sudo mount /mnt/home
$ sudo mount /mnt/media

And here is the result:

$ df -h
 Filesystem               Size  Used Avail Use% Mounted on
 tmpfs                    1,2G  1,7M  1,2G   1% /run
 /dev/sda2                292G  9,0G  269G   4% /
 tmpfs                    5,9G     0  5,9G   0% /dev/shm
 tmpfs                    5,0M  4,0K  5,0M   1% /run/lock
 tmpfs                    4,0M     0  4,0M   0% /sys/fs/cgroup
 /dev/sda1                511M  7,8M  504M   2% /boot/efi
 tmpfs                    1,2G  912K  1,2G   1% /run/user/1000
 192.168.2.20:/home       824G  517G  308G  63% /mnt/home
 192.168.2.20:/mnt/media  1,3T  923G  308G  75% /mnt/media

As we put them into the /etc/fstab file they will mount automatically when the system is booted up.

Setting up my personal desktop

The Ubuntu 20.10 desktop looks something like this in its default installation:

Ubunto 20.10 Groovy Gorilla vanilla desktop

But I would like to costumise it a bit – I need to add Gnome Shell Extensions that shows extra information about my computer and it’s surroundings to help my daily work. For this I am going to install Gnome Shell Extensions and Gnome Tweak Tools.

Installing Gnome Tweak Tools

First we need to enable the Universe repositories for Ubuntu:

$ sudo apt-add-repository universe
 [sudo] password for jan: 
 Adding component(s) 'universe' to all repositories.
 Press [ENTER] to continue or Ctrl-c to cancel.
 Added component universe
 Hit:1 http://dk.archive.ubuntu.com/ubuntu groovy InRelease
 Get:2 http://dk.archive.ubuntu.com/ubuntu groovy-updates InRelease [110 kB]
 Get:3 http://dk.archive.ubuntu.com/ubuntu groovy-backports InRelease [101 kB]
 Get:4 http://security.ubuntu.com/ubuntu groovy-security InRelease [110 kB]
 Get:5 http://dk.archive.ubuntu.com/ubuntu groovy-updates/main amd64 DEP-11 Metadata [24,1 kB]
 Get:6 http://dk.archive.ubuntu.com/ubuntu groovy-updates/universe amd64 DEP-11 Metadata [15,1 kB]
 Get:7 http://dk.archive.ubuntu.com/ubuntu groovy-backports/universe amd64 DEP-11 Metadata [600 B]
 Get:8 http://security.ubuntu.com/ubuntu groovy-security/main amd64 DEP-11 Metadata [4.676 B]
 Get:9 http://security.ubuntu.com/ubuntu groovy-security/universe amd64 DEP-11 Metadata [2.816 B]
 Fetched 369 kB in 1s (373 kB/s)
 Reading package lists… Done

Then we pull gnome-tweak-tool down:

$ sudo apt install gnome-tweak-tool 
 Reading package lists… Done
 Building dependency tree       
 Reading state information… Done
 The following additional packages will be installed:
   chrome-gnome-shell gir1.2-handy-0.0 gnome-shell-extension-prefs gnome-tweaks
 Suggested packages:
   chromium | chromium-browser
 The following NEW packages will be installed
   chrome-gnome-shell gir1.2-handy-0.0 gnome-shell-extension-prefs
   gnome-tweak-tool gnome-tweaks
 0 to upgrade, 5 to newly install, 0 to remove and 0 not to upgrade.
 Need to get 91,8 kB of archives.
 After this operation, 649 kB of additional disk space will be used.
 Do you want to continue? [Y/n] 
 Get:1 http://dk.archive.ubuntu.com/ubuntu groovy/universe amd64 chrome-gnome-shell all 10.1-5 [13,9 kB]
 Get:2 http://dk.archive.ubuntu.com/ubuntu groovy/main amd64 gir1.2-handy-0.0 amd64 0.0.13-2 [9.984 B]
 Get:3 http://dk.archive.ubuntu.com/ubuntu groovy-updates/universe amd64 gnome-shell-extension-prefs amd64 3.38.1-1ubuntu1.1 [7.564 B]
 Get:4 http://dk.archive.ubuntu.com/ubuntu groovy/universe amd64 gnome-tweaks all 3.34.0-4 [58,6 kB]
 Get:5 http://dk.archive.ubuntu.com/ubuntu groovy/universe amd64 gnome-tweak-tool all 3.34.0-4 [1.840 B]
 Fetched 91,8 kB in 0s (307 kB/s)
 Selecting previously unselected package chrome-gnome-shell.
 (Reading database … 189377 files and directories currently installed.)
 Preparing to unpack …/chrome-gnome-shell_10.1-5_all.deb …
 Unpacking chrome-gnome-shell (10.1-5) …
 Selecting previously unselected package gir1.2-handy-0.0:amd64.
 Preparing to unpack …/gir1.2-handy-0.0_0.0.13-2_amd64.deb …
 Unpacking gir1.2-handy-0.0:amd64 (0.0.13-2) …
 Selecting previously unselected package gnome-shell-extension-prefs.
 Preparing to unpack …/gnome-shell-extension-prefs_3.38.1-1ubuntu1.1_amd64.deb 
 …
 Unpacking gnome-shell-extension-prefs (3.38.1-1ubuntu1.1) …
 Selecting previously unselected package gnome-tweaks.
 Preparing to unpack …/gnome-tweaks_3.34.0-4_all.deb …
 Unpacking gnome-tweaks (3.34.0-4) …
 Selecting previously unselected package gnome-tweak-tool.
 Preparing to unpack …/gnome-tweak-tool_3.34.0-4_all.deb …
 Unpacking gnome-tweak-tool (3.34.0-4) …
 Setting up gir1.2-handy-0.0:amd64 (0.0.13-2) …
 Setting up chrome-gnome-shell (10.1-5) …
 Setting up gnome-shell-extension-prefs (3.38.1-1ubuntu1.1) …
 Setting up gnome-tweaks (3.34.0-4) …
 Setting up gnome-tweak-tool (3.34.0-4) …
 Processing triggers for mime-support (3.64ubuntu1) …
 Processing triggers for hicolor-icon-theme (0.17-2) …
 Processing triggers for gnome-menus (3.36.0-1ubuntu1) …
 Processing triggers for desktop-file-utils (0.24-1ubuntu4) …

Then we can start Tweaks from the activity menu (<SUPER> + tweaks):

Installing Gnome Shell Extensions:

Let us install the extensions package:

sudo apt install gnome-shell-extensions
 Reading package lists… Done
 Building dependency tree       
 Reading state information… Done
 The following NEW packages will be installed
   gnome-shell-extensions
 0 to upgrade, 1 to newly install, 0 to remove and 0 not to upgrade.
 Need to get 154 kB of archives.
 After this operation, 1.158 kB of additional disk space will be used.
 Get:1 http://dk.archive.ubuntu.com/ubuntu groovy/universe amd64 gnome-shell-extensions all 3.38.1-1 [154 kB]
 Fetched 154 kB in 0s (861 kB/s)                
 Selecting previously unselected package gnome-shell-extensions.
 (Reading database … 189456 files and directories currently installed.)
 Preparing to unpack …/gnome-shell-extensions_3.38.1-1_all.deb …
 Unpacking gnome-shell-extensions (3.38.1-1) …
 Setting up gnome-shell-extensions (3.38.1-1) …
 Processing triggers for libglib2.0-0:amd64 (2.66.1-2) …

In order to install and manage our extensions we need to open the FireFox browser and navigate to https://extensions.gnome.org:

Before we can install and manage extensions in FireFox, we need to add the browser add-on. Click the link in the light blue box and allow the browser add-on to be installed and run.

I am going to install the following extensions:

Workspaces is a feature of Gnome-Shell that enables you to have multiple desktop workspaces at the same time, where you can organise the applications you are running and thus keep your desktop clutter-free.

Leave a Reply