I first started using Linux in 2001 (I was 16), driven by curiosity and the desire to further embrace the open-source community.

Over the years I have used many different Linux distributions, starting with Mandrake Linux 8.1.

Unfortunately, Mandrake Linux is no longer officially available, which is a shame, as it was an excellent choice for beginners, thanks to its incredibly comprehensive documentation.

Mandrake Linux 8.1 also supported a wide range of desktops, including KDE 2.2.1 and GNOME 1.4.1 (images below), which made experimentation easy and fun.


I initially favoured KDE (left image), but over the years transitioned to GNOME (right image).

Although I will always look back on Mandrake Linux with fond memories, I eventually switched to Ubuntu.

For many years, Ubuntu was everything I wanted from a Linux distribution, with strong sponsorship, frequent updates, and an active community.

Unfortunately, in April 2011, Ubuntu made the decision to introduce Unity as a replacement for GNOME. Although I believe Ubuntu had good intentions with Unity, I was not impressed by the early builds and personally felt the community would be better served by continuing to mature GNOME.

Thankfully, one of the best things about Linux is its flexibility. Therefore, instead of continuing to use Ubuntu, I simply switched (again) to Fedora, which (thankfully) had abandoned its early efforts to implement Unity.

Since switching to Fedora, I have been impressed with its speed and reliability, as well as the focus on cloud, development, security, and virtualisation (all things I value within my workflow). I have also learned to use Fedora “out of the box” with very little customisation, which makes rebuilding a machine very quick and easy.

With the recent release of Fedora 28, I thought I would share the process I follow to set up a new machine.

Fedora Setup

Outside of the pre-installed applications, I really only install a handful of third-party applications, specifically Chrome, Atom, Docker, Node.js, NixNote, 1Password, and Flatpak (which adds support for Dropbox, Slack, Spotify, and VLC).

Finally, I install Fedy and the GNOME Tweak Tool (AKA Tweaks), which both provide easy access to popular operating system themes, extensions, and advanced configuration.

The majority of the applications are installed using Dandified Yum (DNF), which is a software package manager for RPM-based Linux distributions.


Although I have been impressed with the latest builds of Firefox, having Chrome available is still valuable (especially when using third-party extensions and Google services).

To install, run the following terminal command:

sudo dnf install fedora-workstation-repositories

Once complete, Chrome will be available to install from the Software store.


Atom is my preferred text editor. To install, simply head to the Atom website and download the latest RPM version.

Once complete, navigate the download directory and run the following terminal command:

sudo dnf install ./atom.x86_64.rpm

Once installed, Atom will be available for use.


Over the past few years, Docker has become an integral part of my development workflow. To install, run the following terminal commands:

sudo dnf -y install dnf-plugins-core

sudo dnf config-manager \
  --add-repo \

sudo dnf install docker-ce

You can check Docker is working by running the following two terminal commands:

sudo systemctl start docker
sudo docker run hello-world

If successful, you should receive the message “Hello from Docker!”


Occasionally, I still have a need to run Node.js locally. To install, run the following command:

sudo dnf install nodejs

To confirm the installation, run node -v to display the version number.


NixNote is a free, open-source note-taking application that natively synchronises with Evernote. To install, run the following terminal commands:

sudo dnf copr enable nunodias/nixnote2
sudo dnf update -y
sudo dnf install nixnote2

Once installed, click “Sync” to login to Evernote.


1Password is a popular and comprehensive password manager, available across all platforms (Windows, macOS, Linux, ChromeOS, iOS, Android, etc.)

The easiest way to install 1Password on Linux is via the Chrome Extension.

To install, simply download, run and login.


Flatpak is packaging technology, allowing for applications to be installed on any Linux distribution. The current list of compatible applications can be found on FlatHub.

Flatpak has been pre-installed since Fedora 24. Therefore, installation is as simple as downloading and running the Flatpak Repository File.


Once installed, compatible applications (Dropbox, Slack, Spotify, and VLC) can be installed directly from FlatHub.


Fedy is a post-installation script written in bash specifically for Fedora. It provides simple access to additional applications, utilities, and codecs that do not come pre-installed with Fedora.

sudo dnf install https://dl.folkswithhats.org/fedora/$(rpm -E %fedora)/RPMS/fedy-release.rpm

sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install fedy

Once installed, Fedy will be available for use.

GNOME Tweak Tool

The GNOME Tweak Tool can be installed from the Software store (simply called Tweaks).

Once complete, I would recommend installing the Shell integration for Chrome, which will make installing extensions very simple. To install, run the following terminal commands:

sudo dnf install chrome-gnome-shell

sudo dnf copr enable region51/chrome-gnome-shell

sudo dnf install chrome-gnome-shell

Open Chrome and browse to the GNOME Shell Extensions website. You will be prompted to install a Chrome extension.

Once complete, you can simply search and enable GNOME Shell Extensions directly from Chrome. I always install “Dash to Dock”, which includes advanced settings to customise the dock.