Arch / Derivatives

1

1. AUR Helper

One of the most prominent and enticing features of Arch Linux is the Arch User Repository (AUR). The AUR is a community-driven repository that provides package descriptions (PKGBUILDs). These allow you to compile software from source using makepkg and then install it with pacman.

An AUR helper is recommended for installing packages from the AUR, as it simplifies the process. You can install packages without an AUR helper, but using one makes it much easier. Distros like EndeavourOS and other Arch-based distros usually include an AUR helper by default, but on vanilla Arch Linux, you need to install it yourself.

You can choose between Yay or Paru, if you’re unsure, just go with Yay.

Yay (Yet Another Yogurt):

sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si

Paru :

sudo pacman -S --needed base-devel && git clone https://aur.archlinux.org/paru.git && cd paru && makepkg -si
2

2. Pacman Configuration:

2.1 Enable Multilib repository (Required for Drivers and Wine)

Open the pacman configuration file:

sudo nano /etc/pacman.conf

Uncomment these lines:

[multilib]
Include = /etc/pacman.d/mirrorlist

2.2. Update Mirrors to Use the Fastest Server

Backup current mirrorlist:

sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak

Enable parallel downloads:

sudo nano /etc/pacman.conf

Set ParallelDownloads = 10

Install reflector:

sudo pacman -S reflector

Update mirrors:

sudo reflector --verbose --latest 10 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

Restore backup if needed:

sudo cp /etc/pacman.d/mirrorlist.bak /etc/pacman.d/mirrorlist
Pacman Animation

This replaces the progress bar in Arch with a Pacman.

Edit pacman config:

Uncomment:

Add:

3

3. Driver Installation

If you're using an Nvidia GPU, you’ll also need to install proprietary drivers manually. AMD users can skip this, since Mesa drivers are included in the kernel and work out of the box. However, if you want to install all the 32-bit libraries and Vulkan support, see the instructions below.

Unlike Windows, most drivers are already included in the Linux kernel and the rest of the drivers is usually included in the linux-firmware package. You usually don’t need to install them manually.

3.1 Nvidia Drivers:

There are currently two drivers available for NVIDIA GPUs: the proprietary one and the open-source GPU kernel modules. To determine which one you need, please read below.

NVIDIA released open-source Linux GPU kernel modules (not to be confused with the fully open-source drivers Nouveau). These are still the proprietary drivers but semi open-source and are recommended for NVIDIA Blackwell and higher, as proprietary drivers won’t work for them. However, if you have anything older than Pascal, then it is recommended to use the proprietary drivers, as the open-source ones aren’t compatible. The performance is the same for other architectures, so you may choose to use whichever one you want.

You can compare your gpu architecture in the chart below:

GPU Generation

Architecture

RTX 50 Series Laptop GPU

Blackwell

RTX 40 Series Laptop GPU

Ada Lovelace

RTX 30 Series Laptop GPU

Ampere

RTX 20 Series Laptop GPU

Turing

GTX 16 Series

Turing

GTX 10 Series

Pascal

Update system:

sudo pacman -Syu

Check GPU detection:

lspci | grep -i nvidia

If it doesn’t show, try switching to Hybrid GPU mode using supergfxctl and run the command again.

For EndeavourOS users:

yay -S nvidia-inst
nvidia-inst

Manual installation (Arch and Arch-based distros):

Proprietary driver:

sudo pacman -S dkms nvidia-dkms nvidia-utils lib32-nvidia-utils nvidia-settings libva-nvidia-driver vulkan-icd-loader lib32-vulkan-icd-loader

Nvidia open kernel module driver:

sudo pacman -S dkms nvidia-open-dkms nvidia-utils lib32-nvidia-utils nvidia-settings libva-nvidia-driver vulkan-icd-loader lib32-vulkan-icd-loader

3.2. AMD Drivers

The drivers for AMD are usually installed out of the box since they’re part of the Linux kernel. If you want to make sure you have everything, including the 32-bit libraries and Vulkan, simply run the command below.

sudo pacman -S mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon libva-mesa-driver libva-utils

3.3 Intel:

Same for intel as well.

sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel intel-media-driver libva-intel-driver libva-utils

After installation, wait for the initramfs to be regenerated.

Enable Nvidia services:

sudo systemctl enable nvidia-hibernate.service nvidia-suspend.service nvidia-resume.service nvidia-powerd.service
4

4. Asus Software Installation:

Install Asus tools:

yay -S asusctl rog-control-center supergfxctl

Enable GPU switching daemon:

sudo systemctl enable supergfxd.service --now

Ignore the "Asus kernel isn’t loaded" message in rog-control-center.

4.1 Switching GPU Modes (via Terminal or GUI)

Rog-control-center Center is the GUI for asusctl. You can also use asusctl without the GUI if you prefer. The same applies to supergfxctl , it’s a terminal only tool by default, but you can install the GNOME extension or KDE applet to get a graphical interface.

GNOME: Install the supergfxctl-gex extension.

KDE:

yay -S plasma6-applets-supergfxctl

Log out and log back in for the applet to appear on the taskbar.

Switch to Hybrid mode:

supergfxctl --mode Hybrid

Changing to/from Hybrid mode requires logout. Ultimate mode requires a reboot.

Fixing Hotkeys

Some hotkeys are handled by the BIOS directly and can’t be remapped. Test by creating a shortcut and see if it registers.

GNOME

Go the following: Settings > Keyboard > View and Customize Shortcuts > Custom Shortcuts

Then, click Add a Shortcut.

Next, enter the command in the Command field. For the shortcut, click Set Shortcut and press the hotkey you want to assign. After that, give your shortcut a name, and finally, click Add. The shortcut should now work normally.

KDE

Go to Settings > Keyboard > Shortcuts and click Add New (Command or Script).

Enter the command and assign a name for the hotkey.

Locate the command you just added in the Command section, then click Add under Custom Shortcuts.

Assign the key combination you want, then click Apply.

Commands:

  • Open Armoury Crate: rog-control-center

  • Toggle Aura lighting: asusctl aura -n

  • Change performance profile: asusctl profile -n

5

5. Enable Bluetooth (If it isn't enabled by default)

Install:

sudo pacman -S bluez bluez-utils

Enable service:

sudo systemctl enable bluetooth
sudo systemctl start bluetooth
6

6. Flatpak

Flatpak is a Linux tool for installing and managing software. It runs applications in a sandboxed environment, keeping them partially separated from the main system. It is a widely used platform that allows software to work across various Linux distributions.

Most Arch-based distributions come with Flatpak, but if it isn’t installed, you can use the following command to install it and add the Flatpak repository.

sudo pacman -S flatpak && flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
7

7. Backups:

Timeshift is a powerful Linux backup tool that functions similarly to System Restore on Windows or Time Machine on macOS. It protects your system by creating incremental snapshots of your file system at regular intervals. These snapshots allow you to restore your system to a previous state, undoing any system changes or issues.

Installation:

sudo pacman -S  timeshift

How to Use Timeshift:

  1. Select Snapshot Type: Choose between RSYNC and BTRFS based on your file system.

If your system is using the BTRFS file system, it is recommended to use the BTRFS snapshot option for better performance. If not, select RSYNC.

  1. Choose Snapshot Location: Select the disk or partition where snapshots will be saved.

  2. Configure Snapshot Schedule: Enable periodic snapshots if desired and select a snapshot frequency (daily, weekly, or on boot).

  3. Create a Snapshot: Click Create to manually create a snapshot at any time.

  4. Restore a Snapshot: To undo system changes, select a previous snapshot and click Restore.

Restoring a Broken System Using Timeshift:

  1. Boot from a Linux ISO with Timeshift installed.

  2. Select the same snapshot type (BTRFS or RSYNC) as used before.

  3. Choose the location where your backup is stored.

  4. Select the desired backup from the list shown.

  5. Click Restore to revert your system to the previous working state.

8

8. Firewall

A firewall is a security system that monitors, filters, and controls incoming and outgoing network traffic according to predefined security rules. While it isn't mandatory to have a firewall for a workstation, it is highly recommended to set up some form of firewall. There are two firewall options depending on the netfilter installed:

This covers only the basic things about firewalls. If you want advanced configuration or documentation, please visit the respective page for the firewalls on the Arch Wiki.

To check which netfilter is installed, run the following command:

sudo pacman -Q | grep -E 'nftables|iptables'

9.1. Ufw:

If you have iptables(legacy) installed, then it is recommended to use Uncomplicated Firewall (ufw).

Install ufw and its GUI with:

sudo pacman -S ufw gufw

Then enable it with:

sudo ufw enable

The default configuration denies all incoming connections while allowing outgoing connections. The default should be enough for most users, but if you use Docker, SSH, or any torrent software, you will need to give it access through your firewall.

The gufw package provides a GUI for ufw, which can be used to configure ufw. For your home network, set the profile as "home," and for a private network, set the profile as "public."

To allow/deny access to a specific port, run the following command:

sudo ufw allow <port>/<optional: protocol>

9.2. Firewalld:

Firewalld is recommended for systems that have iptables-nft installed, which includes most modern distros.

Install the firewalld package:

sudo pacman -S firewalld python-pyqt6

Then enable it with the following command:

sudo systemctl enable firewalld --now

Again, if you need to open a port or a service, you can either use the GUI or the terminal for it. The firewalld package contains a GUI by default, while the Python package adds applet support for firewalld.

To open/close a port or service, you can run the following command:

sudo firewall-cmd --zone=public --remove-port=<port>/<optional: protocol>

For Services:

sudo firewall-cmd --zone=public --remove-service=<service>

By default, firewalld only saves these changes temporarily until a reboot. If you want to make the changes persistent, use the --permanent flag as such:

sudo firewall-cmd --permanent --zone=public --remove-service=<service>

Then reload firewalld to integrate changes into the current runtime:

sudo firewall-cmd --reload

Last updated