Table Of Contents:⚓︎
-
Introduction
Go to section
Jump to the introduction. -
Preliminary Steps
Go to section
Initial preparation and requirements. -
Main Installation
Go to section
The core installation process. -
Disk Partitioning
Go to section
Set up your drive partitions. -
Disk Formatting
Go to section
Format partitions with file systems. -
Disk Mounting
Go to section
Mount the drives to the system. -
Packages Installation
Go to section
Install the base system packages. -
Fstab
Go to section
Generate the filesystem table. -
Context Switch
Go to section
Chroot into the new system. -
Time Zone
Go to section
Configure local time settings. -
Language & Keyboard
Go to section
Set up locale and TTY layout. -
Hostname & Hosts
Go to section
Network identification settings. -
Root & Users
Go to section
Set passwords and create users. -
Grub Configuration
Go to section
Install and configure the bootloader. -
Unmount & Reboot
Go to section
Safely exit and restart. -
Snapshot Updates
Go to section
Manage automatic boot entries. -
Virtualbox Support
Go to section
Guest additions and tools. -
Distrobox & Toolbox
View Distrobox
Run any Linux distribution inside your terminal.
-
AUR & Packages
Go to section
Install AUR helpers and extra tools. -
Finalization
Go to section
Final system tweaks. -
Video Drivers
Go to section
GPU driver installation. -
AMD
Go to section
Configuration for AMD hardware. -
32-Bit Support
Go to section
Enable multilib support. -
:material-nvme: Nvidia
Go to section
Configuration for Nvidia hardware. -
Intel
Go to section
Configuration for Intel hardware. -
Graphical Env.
Go to section
Set up your desktop workspace. -
KDE Plasma
Go to section
Install the Plasma desktop. -
Hyprland [WIP]
Go to section
Install the Hyprland compositor. -
Display Manager
Go to section
Login screen configuration. -
Gaming
Go to section
General gaming setup. -
Gaming Clients
Go to section
Steam, Lutris, and more. -
Windows Compat.
Go to section
Wine and Proton settings. -
Optimizations
Go to section
Performance tuning. -
Monitoring
Go to section
Track system performance. -
Additional Notes
Go to section
Extra info and tips. -
Things To Add
Go to section
Future roadmap items.
Introduction⚓︎
Introduction
-
The goal of this guide is to help new users set up a modern and minimal installation of Arch Linux with BTRFS on an UEFI system. I'll start from the basic terminal installation and then set up video drivers, a desktop environment and provide basic gaming configuration.
-
This guide is thought to be read alongside the wiki, so that it if something ever changes you can fix it but it's not necessary unless my guide becomes outdated. Also I will mention external references to justify some choices that I've made so that curious users can delve into the details.
Note That:⚓︎
NOTE that:
- I won't prepare the system for secure boot because the procedure of custom key enrollment in the BIOS is dangerous and can lead to a bricked system. If you are wondering why I'm not using the default OEM keys in the BIOS, it's because they will make secure boot useless by being more than likely not secure enough.
- "I have decided against system encryption as it is unnecessary and introduces boot-phase overhead, which can noticeably delay start-up depending on the configuration." However it may be important for you so if you really want to go this way. I'd recommend reading the wiki page in this regards and must perform the documented steps IMMEDIATELY AFTER disk partitioning. Also note that you must set the type of partition to a LUKS partition instead of a standard Linux partition when partitioning with
fdisk.
- I'll skip the Arch ISO installation media preparation.
- I'll use a wired connection, so no wireless configuration steps will be shown. If you want to connect to wifi, you can either launch
wifi-menufrom the terminal which is a TGUI or useiwctl.
Preliminary Steps⚓︎
Preliminary Steps
First set up your keyboard layout.
List all the available keyboard maps and filter them through grep, in this case i am looking for an italian keyboard, which usually starts with "it", for english filter with "en"
ls /usr/share/kbd/keymaps/**/*.map.gz | grep it
If you prefer you can scroll the whole list like this:
ls /usr/share/kbd/keymaps/**/*.map.gz | less
Or like this:
localectl list-keymaps
Now get the name without the path and the extension ( localectl returns just the name ) and load the layout. In my case it is simply "it"
loadkeys it
Check that we are in UEFI mode:
Check the internet connection:
Check the system clock:
Main Installation⚓︎
Disk Partitioning⚓︎
I will make 2 partitions:
| Number | Type | Size |
|---|---|---|
| 1 | EFI | 512 Mb |
| 2 | Linux Filesystem | 99.5Gb (all of the remaining space ) |
Disk Partitioning
Check the drive name. Mine is /dev/nvme0n1
If you have an hdd is something like sdax
fdisk -l
Now you can either go and partition your disk with fdisk and follow the steps below, or if you
want to do things yourself and make it easier, use cfdisk ( an fdisk TUI wrapper ) which is
much more user friendly. A reddit user suggested me this and it's indeed very intuitive to use.
If you choose cfdisk you will have to invoke it the same way as I did with fdisk below, but you
don't need to follow my commands blindly as with fdisk below, just navigate the UI with the
arrows and press enter to get inside menus, remember to write changes before quitting.
Invoke fdisk to partition
fdisk /dev/nvme0n1
Now press the following commands, when i write ENTER press enter
g
ENTER
n
ENTER
ENTER
ENTER
+512M
ENTER
t
ENTER
ENTER
1
ENTER
n
ENTER
ENTER
ENTER # If you don't want to use all the space then select the size by writing +XG (eg: to make a
10GB partition +10G)
p
ENTER # Now check if you got the partitions right
If so write the changes
w
ENTER
If not you can quit without saving and redo from the beginning
q
ENTER
Disk Formatting⚓︎
Disk Formatting
For the file system I've chosen BTRFS which has evolved quite a lot in the recent years. It is most known for its Copy on Write feature which enables it to make system snapshots in a blink of a an eye and to save a lot of disk space, which can be even saved to a greater extent by enabling built-in compression. Also it lets the user create subvolumes which can be individually snapshotted.
Disk Mounting⚓︎
Disk Mounting
I will lay down the subvolumes on a flat layout, which is overall superior in my opinion and less constrained than a nested one. What's the difference ? If you're interested this section of the old sysadmin guide explains it.
Create the subvolumes, in my case I choose to make a subvolume for / and one for /home.
Subvolumes are identified by prepending @
NOTICE: the list of subvolumes will be increased in a later release of this guide, upon proper
testing and judgement. See the "Things to add" chapter.
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
Unmount the root fs⚓︎
For this guide I'll compress the btrfs subvolumes with Zstd, which has proven to be a good algorithm among the choices
Mount the efi partition
Now we have to mount the efi partition. In general there are 2 main mountpoints to use: /efi or /boot but in this configuration i am forced to use /efi, because by choosing /boot we could experience a system crash when trying to restore @ (the root subvolume) to a previous state after kernel updates. This happens because /boot files such as the kernel won't reside on @ but on the efi partition and hence they can't be saved when snapshotting @. Also this choice grants separation of concerns and also is good if one wants to encrypt /boot, since you can't encrypt efi files. Learn more here
Packages Installation⚓︎
Packages Installation
- This will install some packages to "bootstrap" metaphorically your system.
- Feel free to add the ones you want.
- "base, linux, linux-firmware" are needed. If you want a more stable kernel, then swap linux
with linux-lts.
- "base-devel" base development packages.
- "git" to install the git vcs.
- "btrfs-progs" are user-space utilities for file system management. (It's needed to harness the
potential of btrfs).
- "grub" the bootloader.
- "efibootmgr" needed to install grub.
- "grub-btrfs" adds btrfs support for the grub bootloader and enables the user to directly boot
from snapshots.
- "inotify-tools" used by grub btrfsd deamon to automatically spot new snapshots and update grub
entries.
- "timeshift" a GUI app to easily create,plan and restore snapshots using BTRFS capabilities.
- "amd-ucode" microcode updates for the cpu. If you have an intel one use "intel-ucode".
- "vim" my goto editor, if unfamiliar use nano.
- "networkmanager" to manage Internet connections both wired and wireless (it also has an applet
package network-manager-applet).
- "pipewire pipewire-alsa pipewire-pulse pipewire-jack" for the new audio framework replacing
pulse and jack.
- "wireplumber" the pipewire session manager.
- "reflector" to manage mirrors for pacman.
- "zsh" my favourite shell.
- "zsh-completions" for zsh additional completions.
- "zsh-autosuggestions" very useful, it helps writing commands [Needs configuration in .zshrc].
- "openssh" to use ssh and manage keys.
- "man" for manual pages.
- "sudo" to run commands as other users.
pacstrap -K /mnt base base-devel linux linux-firmware git btrfs-progs grub efibootmgr grub-btrfs
inotify-tools timeshift vim networkmanager pipewire pipewire-alsa pipewire-pulse pipewire-jack
wireplumber reflector zsh zsh-completions zsh-autosuggestions openssh man sudo
Fstab⚓︎
Fstab
Fetch the disk mounting points as they are now (we mounted everything before) & generate
instructions to let the system know how to mount the various disks automatically genfstab
-U /mnt >> /mnt/etc/fstab
Check if fstab is fine (it is if you've faithfully followed the previous steps) cat /mnt/etc/
fstab
Context Switch To Our New System⚓︎
Set Up The Time Zone⚓︎
Set Up The Time Zone
Set Up The Language and tty Keyboard Map⚓︎
Set Up The Language and tty Keyboard Map
- Edit
/etc/locale.genand uncomment the entries for your locales. - Each entry represent a language and its formats for time, date, currency and other country related settings.
- By uncommenting we will mark the entry to be generated when the generate command will be issued, but note that it won't still be active.
- In my case I will uncomment ( ie: remove the # )
en_US.UTF-8 UTF-8andit_IT.UTF-8 UTF-8because I use English as a display language and Italian for date, time and other formats.
To edit I will use vim, feel free to use nano instead.
Now issue the generation of the locales
-
Since the locale is generated but still not active, we will create the configuration file
/etc/locale.confand set the locale to the desired one, by setting theLANGvariable accordingly. -
In my case I'll write
LANG=it_IT.UTF-8to apply Italian settings to everything and then override only the display language to English by setting (on a new line)LC_MESSAGES=en_US.UTF-8. (if you want formats and language to stay the same DON'T setLC_MESSAGES). -
More on this here
- Now to make the current keyboard layout permanent for tty sessions , create
/etc/vconsole.confand writeKEYMAP=your_key_mapsubstituting the keymap with the one previously set here. In my caseKEYMAP=it
Hostname and Host Configuration⚓︎
Hostname and Host Configuration
Create /etc/hostname then choose and write the name of your pc in the first line. In my case I'll use Arch.
Create the /etc/hosts file. This is very important because it will resolve the listed hostnames locally and not over Internet DNS.
Write the following ip, hostname pairs inside /etc/hosts, replacing Arch with YOUR hostname:
Edit the file with the information above: ↑
Root and Users⚓︎
Root and Users
Set up the root password
Add a new user, in my case mjkstra.
-
m creates the home dir automatically
-
G adds the user to an initial list of groups, in this case wheel, the administration group. If you are on a Virtualbox VM and would like to enable shared folders between host and guest machine, then also add the group vboxsf besides wheel.
useradd -mG wheel mjkstra
passwd mjkstra
- The command below is a one line command that will open the /etc/sudoers file with your favourite editor.
- You can choose a different editor than vim by changing the EDITOR variable.
- Once opened, you have to look for a line which says something like "Uncomment to let members of group wheel execute any action"
- And uncomment exactly the line BELOW it, by removing the #. This will grant superuser priviledges to your user.
- Why are we issuing this command instead of a simple vim /etc/sudoers ?
- Because visudo does more than opening the editor, for example it locks the file from being edited simultaneously and runs syntax checks to avoid committing an unreadable file.
Grub Configuration⚓︎
Grub Configuration
Now I'll deploy grub
Generate the grub configuration (it will include the microcode installed with pacstrap earlier)
Unmount Everything and Reboot⚓︎
Unmount Everything and Reboot
-
Enable newtork manager before rebooting otherwise, you won't be able to connect systemctl enable NetworkManager.
-
Exit from chroot
- Unmount everything to check if the drive is busy:
Reboot the system and unplug the installation media:
-
Now you'll be presented at the terminal. Log in with your user account, for me its "mjkstra".
-
Enable and start the time synchronization service:
Automatic Snapshot Boot Entries Update⚓︎
Automatic Snapshot Boot Entries Update
-
Each time a system snapshot is taken with timeshift, it will be available for boot in the bootloader, however you need to manually regenerate the grub configuration, this can be avoided thanks to
grub-btrfs, which can automatically update the grub boot entries. -
Edit the
grub-btrfsdservice and because I will rely on timeshift for snapshotting, I am going to replaceExecStart=...withExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto. If you don't use timeshift or prefer to manually update the entries then lookup here
Enable grub-btrfsd service to run on boot:
Virtualbox Support⚓︎
Virtualbox Support
- Follow these steps if you are running Arch on a Virtualbox VM.
- This will enable features such as clipboard sharing, shared folders and screen resolution tweaks
Install the guest utils:
Enable this service to automatically load the kernel modules:
The utils will only work after a reboot is performed.
The utils seem to only work in a graphical environment.
Aur Helper and Additional Packages Installation⚓︎
Aur Helper and Additional Packages Installation
-
To gain access to the arch user repository we need an aur helper, I will choose yay which also works as a pacman wrapper (which means you can use yay instead of pacman).
-
Yay has a CLI, but if you later want to have an aur helper with a GUI you can install
pamac(a Manjaro software, so use at your own risk), however note that front-ends likepamacand also any store (KDE discovery, Ubuntu store etc.) are not officially supported and should be avoided, because of the high risk of performing partial upgrades. This is also why later when installing KDE, I will exclude the KDE discovery store from the list of packages. -
To learn more about yay read here
NOTE!
You can't execute makepkg as root, so you need to log in your main account. For me it's mjkstra.
Install yay
sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd
yay && makepkg -si
Install "timeshift-autosnap", a configurable pacman hook which automatically makes snapshots before pacman upgrades.
Learn more about timeshift autosnap here:
Finalization⚓︎
Finalization
To complete the main/basic installation reboot the system:
Boot to new system
-
After these steps you should be able to boot on your newly installed Arch Linux, if so congrats!
-
The basic installation is complete and you could stop here, but if you want to to have a graphical session, you can continue reading the guide.
Video Drivers⚓︎
Video Drivers
- In order to have the smoothest experience on a graphical environment, Gaming included, we first need to install video drivers.
-
To help you choose which one you want or need, read this section of the arch wiki.
-
Note: skip this section if you are on a Virtual Machine:
Amd⚓︎
AMD
- For this guide I'll install the AMDGPU driver which is the open source one and the recommended, but be aware that this works starting from the GCN 3 architecture, which means that cards before RX 400 series are not supported. (I have an RX 5700 XT)
What are we installing?
- mesa: DRI driver for 3D acceleration.
- xf86-video-amdgpu: DDX driver for 2D acceleration in Xorg.
- I won't install this, because I prefer the default kernel modesetting driver.
- vulkan-radeon: vulkan support.
- libva-mesa-driver: VA-API h/w video decoding support.
- mesa-vdpau: VDPAU h/w accelerated video decoding support
32 Bit Support⚓︎
32 Bit Support
-
If you want to add 32-bit support, we need to enable the
multilibrepository on pacman: edit/etc/pacman.confand uncomment the[multilib]section (ie: remove the hashtag from each line of the section. Should be 2 lines). Now we can install the additional packages. -
Refresh and upgrade the system:
- Install 32bit support for
mesa, vulkan, VA-API and VDPAU
Nvidia⚓︎
Nvidia
In summary if you have an Nvidia card you have 2 options:
The recommended is the proprietary one, however I won't explain further because I don't have an Nvidia card and the process for such cards is tricky unlike for AMD or Intel cards. Moreover for reason said before, I can't even test it.
Intel⚓︎
Intel
- Installation looks almost identical to the AMD one, but every time a package contains the
radeonword substitute it withintel. - However this does not stand for h/w accelerated decoding, and to be fair I would recommend reading the wiki before doing anything.
Setting Up a Graphical Environment⚓︎
Setting Up a Graphical Environment
I'll provide 2 options and a partial one for Gnome with an Arch wiki link.
-
Setting up the GNOME desktop environment involves installing core components via package managers and enabling the GDM display manager, creating a customizable user interface centered on the "Activities" workflow.
-
The process generally requires updating the system, installing the gnome group, and enabling the display manager, with detailed steps varying slightly by distribution.
-
For a detailed step-by-step guide on setting up GNOME, you can refer to the Arch Wiki, which is widely considered the standard for in-depth Linux installation instructions:
- On top of that I'll add a display manager, which you can omit if you don't like (if so, you have additional configuration steps to perform).
Option 1: KDE-plasma⚓︎
Option 1: KDE-plasma
KDE Plasma is a very popular DE which comes bundled in many distributions. It supports both the older Xorg and the newer Wayland protocols. It's user friendly, light and it's also used on the Steam Deck™, which makes it great for gaming. I'll provide the steps for a minimal installation and add some basic packages.
01. plasma-desktop: the barebones plasma environment.
02. plasma-pa: the KDE audio applet.
03. plasma-nm: the KDE network applet.
04. plasma-systemmonitor: the KDE task manager.
05. plasma-firewall: the KDE firewall.
06. plasma-browser-integration: cool stuff, it lets you manage things from your browser like media
currently played via the plasma environment. Make sure to install the related extension on
firefox (you will be prompted automatically upon boot).
07. kscreen: the KDE display configurator.
08. kwalletmanager: Manage secure vaults (Needed to store the passwords of local applications
in an encrypted format). This also installs kwallet as a dependency, so I don't need to specify
it.
09. kwallet-pam: automatically unlocks secure vault upon login (without this, each time the wallet
gets queried it asks for your password to unlock it).
10. bluedevil: the KDE bluetooth manager.
11. powerdevil: the KDE power manager.
12. power-profiles-daemon: adds 3 power profiles selectable from powerdevil
(power saving, balanced, performance).
13. Make sure that its service is enabled and running (it should be).
14. kdeplasma-addons: some useful addons.
xdg-desktop-portal-kde: Integrates the plasma desktop in various windows like file pickers.
xwaylandvideobridge: exposes Wayland windows to XWayland-using screen sharing apps
(useful when screen sharing on discord, but also in other instances).
15. kde-gtk-config: the native settings integration to manage GTK theming.
16. breeze-gtk: the breeze GTK theme.
17. cups, print-manager: the CUPS print service and the KDE front-end.
18. konsole: the KDE terminal.
19. dolphin: the KDE file manager.
20. ffmpegthumbs: video thumbnailer for dolphin.
21. Firefox: the web browser.
22. kate: the KDE text editor.
23. okular: the KDE pdf viewer.
24. gwenview: the KDE image viewer.
25. ark: the KDE archive manager.
26. pinta: a paint.net clone written in GTK.
27. spectacle: the KDE screenshot tool.
28. dragon: a simple KDE media player. A more advanced alternative based on libmpv is Haruna.
- I have broken up the pacman installation instructions for the sake of brevity and so that you can see what's going on, an all in one string and it goes off the page!
- Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the related section in this guide and proceed from there otherwise you'll have to manually configure and launch the graphical environment each time, which I would advise to avoid.
Option 2: Hyprland [WIP]⚓︎
Hyprland [WIP]
Note!
Note: this section needs configuration and is basically empty, I don't know when and if I will expand it but at least you have a starting point.
- Hyprland is a tiling WM that sticks to the wayland protocol. It looks incredible and it's one of the best Wayland WMs right now.
- It's based on wlroots the famous library used by Sway, the most mature Wayland WM there is. I don't know if I would recommend this to beginners because it's a totally different experience and it may not be better.
- Moreover it requires you to read the wiki for configuration but it also features a master tutorial.
- The good part is that even if it seems discouraging, it's actually an easy read because it is written beautifully.
Install hyprland from tagged releases and other utils:
- swaylock: the lockscreen
- wofi: the wayland version of rofi, an application launcher, extremely configurable
- waybar: a status bar for wayland wm's
- dolphin: a powerful file manager from KDE applications
- alacritty: a beautiful and minimal terminal application, super configurable
wlogout: a logout/shutdown menu:
Adding a Display Manager⚓︎
Adding a Display Manager
Display managers are useful when you have multiple DE or WMs and want to choose where to boot from or select the display protocol (Wayland or Xorg) in a GUI fashion, also they take care of the launch process. I'll show the installation process of SDDM, which is highly customizable and compatible.
Note!
Hyprland does not support any display manager, however SDDM is reported to work flawlessly from the wiki
Install SDDM
Enable SDDM service to make it start on boot:
If using KDE I suggest installing this to control the SDDM configuration from the KDE settings App
Now it's time to reboot the system:
Gaming⚓︎
Gaming
Gaming on linux has become a very fluid experience, so I'll give some tips on how to setup your arch distro for gaming.
Before going further I'll assume that you have installed the video drivers, also make sure to install with pacman, if you haven't done it already: lib32-mesa, lib32-vulkan-radeon and additionally lib32-pipewire (Note that the multilib repository must be enabled, here I've explained how to do it).
Let's break down what is needed to game:
- Gaming client (eg: Steam, Lutris, Bottles, etc..)
- Windows compatibility layers (eg: Proton, Wine, DXVK, VKD3D)
Optionally we can have:
- Generic optimization (eg: gamemode)
- Overclocking and monitoring software (eg: CoreCtrl, Mangohud)
- Custom kernels
Gaming Clients⚓︎
Gaming Clients
I'll install Steam and to access games from other launchers I'll use Bottles, which should be installed through flatpak.
Install steam and flatpak:
Install bottles through flatpak"
Windows Compatibility Layers⚓︎
Windows Compatibility Layers
-
Proton's the compatibility layer developed by Valve, which includes DXVK (DirectX 9-10-11 to Vulkan), VKD3D (DirectX 12 to Vulkan ) and a custom version of Wine. It is embedded in Steam and can be enabled for non native games direclty in Steam:
Steam > Settings > Compatibility > Enable Steam Play for all other titles. -
A custom version of proton, Proton GE exists and can be used as an alternative if something is broken or doesn't perform as expected. Can be either downloaded manually or through yay as below.
Installation through yay: (AUR Helper)
Generic Optimizations⚓︎
Generic Optimizations
We can use gamemode to gain extra performance. To enable it read here
Install gamemode:
Overclocking and Monitoring⚓︎
Overclocking and Monitoring
To live monitor your in-game performance, you can use mangohud. To enable it read here.
In order to easily configure mangohud, I'll use Goverlay.
Install goverlay which includes mangohud as a dependency:
To overclock your system, I would suggest installing corectrl if you have an AMD Gpu or TuxClocker for NVIDIA.
Additional Notes⚓︎
Additional Notes - Click to open and read.
-
On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If you're not using KDE, then read here.
-
To enable Freesync or Gsync you can read here, depending on your session Wayland or Xorg and your gfx provider Nvidia, AMD, Intel the steps may differ. On a KDE wayland session, you can directly enable it from the monitor settings under the name of adaptive sync.
-
Some considerations if you are thinking about switching to a custom kernel:
-
You have to manually recompile it each time there is a new update unless you use a precompiled kernel from pacman or aur such as
linux-zen. -
There is no such thing as the best kernel, all kernels make tradeoffs eg: latency for throughtput and this it why it's generally advised to stick with the generic one.
-
If you are mainly a gamer you MAY consider the TKG or CachyOS kernel. These kernels contain many optimizations and are highly customizable, however the TKG Kernel has to be compiled Mainly it's time consuming, not difficult, while the \( CachyOS\) \(Kernel\) comes already packaged and optimized for specific hardware configurations, and can be simply installed with pacman upon adding their repos to
pacman.conf. -
Some users have reported to have experienced a smoother experience with lower latency, however I couldn't find consistent information about this and it seems that is all backed by a personal sensation and not a result obtained through objective measurements. Also this is difficult because in Linux there are countless configuration variables and it also depends on the graphic card/s being used.
Some Recommended Reads:⚓︎
-
KDE Environment
Build GuideOfficial packaging recommendations for building your KDE environment.
-
Gaming on Wayland
Read ArticleAn insightful (though older) look at the state of gaming on Wayland.
-
Gaming Performance
Improve FPSTips and tweaks for squeezing more performance out of Linux gaming.
-
System Maintenance
View WikiEssential Arch Linux guide for keeping your system clean and stable.
-
Gen. Recommendations
View WikiThe post-installation "must-read" for Arch Linux users.
-
GNOME Desktop
View WikiComprehensive docs for the GNOME desktop environment on Arch.
Things To Add⚓︎
Development Roadmap
- Pacman Optimization: Enable
paccache, colors, and parallel downloads. - Mirror Management: Configure
reflectorfor faster updates. - Advanced Snapshots: Integrate
Snapperas a Timeshift alternative. - BTRFS Overhaul: Refine subvolumes (
@log,@cache,@tmp,@snapshots). - System Stability: Implement a more robust
fstabstructure.
-
Pacman Tweaks
View WikiEnable colors, ILoveCandy, and parallel downloads.
-
Cache Cleanup
View WikiAutomate
paccacheto prevent disk bloat. -
Reflector
View WikiAutomating mirrorlist updates for top speeds.
-
Snapper
View WikiAdv BTRFS snapshot man. and boot integration.
-
BTRFS Overhaul
View WikiRefining subvolumes for
@log,@cache, and@tmp. -
Fstab Structure
View WikiImplementing a cleaner, more robust mount structure.
Additional Packages (optional)⚓︎
Note!
The target of the respective URL is also the recommended way to install the package.
GNOME Extensions (optional)⚓︎
Office Support⚓︎
-
LibreOffice
View PackageThe standard powerful, free, and open-source office suite.
-
OnlyOffice
View FlatpakHigh-compatibility Office Suite works with MS Office formats.
-
Drawing & SVG
View DrawingTools for image editing and vector graphics with BoxySVG.
Realtime Streaming to other PC, TV or Smart Device⚓︎
-
Sunshine & Moonlight
View SunshineLow-latency self-hosted game streaming server and client.
-
Vesktop
View FlatpakEnhanced DC client with native Wayland screen sharing.
-
RetroDECK
View DocsAll-in-one manager for your entire retro gaming collection.
Install Sunshine (Streaming Server)⚓︎
Sunshine Installation (Streaming Server)
- Add the LizardByte Repository to your config:
sudo nano /etc/pacman.conf
- Install Sunshine:
sudo pacman -Syyu lizardbyte/sunshine - Start the application and access the Web Interface at https://localhost:47990 to set your credentials.
For Developers⚓︎
-
Distrobox & Toolbox
View DistroboxRun any Linux distribution inside your terminal with ease.
-
Container Runtimes
View PodmanIndustry standard runtimes including Podman and Docker.
-
Virtualization & UI
View BoxesBoxes, Podman, BoxBuddyRS VM/Container management.