How to Install GNOME Desktop in Arch Linux [Complete Guide]


This guide explains the steps you need to install GNOME Desktop in Arch Linux. This guide has two parts. The first part deals with installing the base Arch system. The second part is installing the complete GNOME desktop environment on top of Arch Linux.

What is the GNOME Desktop?

GNOME is a popular desktop environment that is a default desktop choice for many top-tier desktops-based Linux distributions such as Ubuntu, Fedora. Almost all flavors provide a GNOME desktop option.

The GNOME desktop is one of the stable and user-friendly desktops, hence it is preferred by many average, advanced users. If you want a desktop that remains invisible while you carry out your work, GNOME is the one. It never gets into your way while working. Hence it is still popular and default option for many despite many controversies about being GNOME3 (current iteration) is being slow, resource-heavy, etc,

With all that said, let’s take a look at how you can install a GNOME desktop in bare metal Arch installations.

Install GNOME Desktop in Arch Linux

Part 1: Install Arch Linux

If you have already Arch Linux installed, you can skip this step and directly go to the install GNOME Desktop section below.

For a quick Arch Linux base installation, follow the below steps. You can also visit this guide for a complete tutorial on how to install Arch Linux as Dual Boot or in a virtual machine.

Download Arch Linux

Download Arch Linux .iso from the below link. There are magnet and torrent links available. Once you download, write the ISO to a USB drive. And then boot from the drive.

If you are planning to install it as a virtual machine image via GNOME Boxes, virt-manager – then you do not need to write it to a USB drive.

Boot and Configure Partitions

After you boot from the Arch Linux iso, you have to run a series of commands to install the base system.

First, run the below command to find out the device identifier.

fdisk -l
fdisk -l before

Then with the device identifier, run the below command to start partitioning your disk. Make sure to change /dev/sda as per your system.

cfdisk /dev/sda

Select label type = dos in the next prompt.

Select the free space and choose option NEW from the bottom. In this example, I will create three partitions as per below.

/dev/sda1 - 1G - for /boot
/dev/sda2 - 5G - for root
/dev/sda3 - 1G - for swap
cfdisk

In the next screen provide partition size for the boot partition (for this example, I gave 1 GB). Select it as the primary partition.

Repeat the same step for the main root partition of size 5GB.

Swap partition type change

Create a swap partition using the same steps with size 1G (you may change it as per your need). After you create the swap partition, make sure to choose Type at the bottom and mark it as a swap with the option “Linux Swap/Solaris”.

final partition list in cfdisk

Once done, write the changes to the disk using the Write option at the bottom. Make sure you take a backup before you write as this is a permanent change in your system.

Run the below command to check before you proceed. You can see in this example, three partitions are listed.

fdisk -l
final partition list in fdisk

Run the following commands in sequence to format and create an ext4 file system in the newly created partition above. Make sure you change the /dev/sda1 and /dev/sda2 as per your need.

mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda2
mkswap /dev/sda3
swapon /dev/sda3

After completion, mount the system and create necessary directories.

mount /dev/sda2 /mnt
mkdir /mnt/boot /mnt/var /mnt/home
mount /dev/sda1 /mnt/boot

Again, make sure you change /dev/sda1, /dev/sda2 and /dev/sda3 as per your system.

prepare file system

Install the base system

I hope you are already connected to the internet. If not, try using a USB dongle or wired internet connection which Arch installer automatically configure and detect. If you do not have a wired connection available, follow this guide to configure a wireless or wifi network using Arch Linux installer.

Run the below commands in sequence to install the base system in the mounted partition. The download size is approx 400 MB.

pacman -Syy
pacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub
Install base system

Once complete, generate file system table without which you can’t boot the system.

genfstab -U /mnt >> /mnt/etc/fstab

Configure the base system

Follow the below commands in sequence to configure the base system. This involves setting up your locale, language, add a login user, and setting up the internet.

arch-chroot /mnt
nano /etc/locale.gen

Uncomment the locale of your choice by removing # at the beginning. For this guide, I have chosen en_US.UTF-8 UTF-8. Press CTRL+O, Enter, and CTRL+X to exit from nano.

change locale

Generate the locale using:

locale-gen

Setup the language using the below command.

echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8

Setup the local time zone.

ln -s /usr/share/zoneinfo/America/New_York /etc/localtime

Again, you can choose them as per your need. You can list the local timezones via the below commands.

ls /usr/share/zoneinfo
ls /usr/share/zoneinfo/America

Setup the hardware clock, create a hostname, and enable the DHCP for the internet using the below commands in sequence. You can change "arindam-pc" to any hostname as per your desire.

hwclock --systohc --utc
echo arindam-pc > /etc/hostname
systemctl enable dhcpcd

The next step is to set up the root user password, create an admin user, and add the user in the sudoers file.

Follow the below commands in sequence. Make sure to change the user name from debugpoint to something else as per your need.

passwd root
useradd -m -g users -G wheel -s /bin/bash debugpoint
passwd debugpoint
create user

Open the sudoers file and add the below lines.

nano /etc/sudoers

Add below lines. As you already created the root user, the entry should be there.

root ALL=(ALL) ALL
debugpoint ALL=(ALL) ALL
update sudoers file

Install grub, setup the initial ramdisk environment, unmount the system using the below commands in sequence.

grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -p linux
exit
configure grub

Then reboot your system. If you are isntalling in a physical system, unplug the USB media at this step.

umount /mnt/boot
umount /mnt
reboot

You have now successfully installed the Arch Linux base system. It’s time to install the complete GNOME desktop.

Arch is installed

Part 2: Install GNOME in Arch Linux

After reboot, choose Arch Linux from grub. In the Arch Linux prompt start running the following commands in sequence. These commands install Xorg server, display manager, GNOME desktop components, controller packages, and additional applications.

For all the commands use default i.e. press enter when asked.

  • Install Xorg server. Approx install size is 80 MB.
sudo pacman -S --needed xorg 
  • Install display manager, GNOME desktop. Approx install size is 300 MB.
sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome multi-writer adwaita-icon-theme chrome-gnome-shell xdg-user-dirs-gtk fwupd arc-gtk-theme seahosrse gdm
  • Install applications

This is just a reference. You can also install the ones you require.

sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper

Now it’s time to enable the display manager and network manager as service. So that next time you log on, they can run automatically by systemd.

systemctl enable gdm
systemctl enable NetworkManager

Reboot the system using the reboot command.

reboot
GNOME Desktop in Arch Linux

If all goes well, you should see a nice login prompt on the GNOME desktop. Login using the credential you just created. You should be greeted with a nice and clean GNOME desktop in Arch Linux.

I hope this guide helps you to install GNOME desktop in a bare metal Arch instalation.