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:
- Firefox (browser)
- Thunderbird (e-mail + calendar)
- Transmission (bittorrent)
- LibreOffice (Office Suite)
- Calc (spread sheet)
- Impress (presentation)
- To Do
- LibreOffice (Office Suite)
- Rhythmbox (music player)
- Shotwell (photo organiser)
- Aislerot Solitaire
What I need this desktop for and the software I am planning to install:
- 3D modelling and printing
- Editing Audio
- Editing Photos & Graphics
- Recording & Editing Video
- General Productivity
- Gnome Shell Tweaks
- Gnome Shell Extensions
- VLC Player
- Chromium (web browser)
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.
I have a few behind the scenes changes and addition, I would like to make.
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:
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:
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.