Arch OS Docs
Contents⚓︎
-
Recommendation
View RecommendationOur suggested setup and best practices for the best experience.
-
Advanced Installation
View SetupDeep dive into custom flags and complex environment configurations.
-
Features
View FeaturesExplore the full list of capabilities and what this project can do.
-
Technical Information
View InfoSpecifications, architecture details, and under-the-hood data.
-
Rescue & Recovery
View RescueEssential tools and steps to recover your data or reset your state.
-
Troubleshooting
View FixesSolutions for common errors and frequently asked questions.
-
Development
View DevContribute to the project or build your own custom extensions.
-
Credits
View CreditsAcknowledgements for the contributors and tools that make this possible.
Recommendation⚓︎
For a robust & stable Arch OS experience, install as few additional packages from the official Arch Repository or AUR as possible. Instead, use Flatpak or GNOME Software. Furthermore change system files only if absolutely necessary and perform regular package upgrades.
- Arch OS System Manager:
arch-os - System information:
fetch - Update system:
paru -Syu - Search package:
paru -Ss <my search string> - Install package:
paru -S <my package> - List installed packages:
paru -Qe - Show package info:
paru -Qi <my package> - Remove package:
paru -Rsn <my package>
NOTE
See ~/.aliases for useful command aliases
Add the following snippet to your ~/.bashrc (for Bash) or ~/.zshrc (for Zsh) to load your aliases automatically:
- System Update: alias update="sudo pacman -Syu"
- List Files (detailed): alias ll="ls -alF"
- View Hidden Files: alias la="ls -A"
- Change to root user: alias root="sudo su -"
- Display current IP: alias myip="ip -br -c a"
- Display memory usage: alias mem="free -h"
GNOME Shortcuts⚓︎
NOTE
Only available with default installation preset (desktop).
- Close Window:
Super + q - Hide Window:
Super + h - Toggle Desktop:
Super + d - Toggle Fullscreen:
Super + F11
Additional Packages (optional)⚓︎
NOTE
The target of the respective URL is also the recommended way to install the package.
Theming (optional)⚓︎
-
Desktop Font
View PackagesRecommended fonts including Inter and Adwaita for a clean UI.
-
Desktop Theme
View ThemeAdw-gtk3: Bringing the modern Libadwaita look to GTK3 applications.
-
Icon Theme
View IconsColorful and modern icon sets: Tela and Tela-circle themes.
-
Cursor Theme
View CursorsBibata and Nordzy cursor sets for precise and stylish navigation.
-
Firefox Theme
View ThemesGNOME-specific styling for Firefox via AddWater and native themes.
-
GTK3 Variant
View ExtensionAdw-gtk3-colorizer: A GNOME extension to customize your GTK3 colors.
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 Boxes
For Gamers⚓︎
Gaming Meta Package⚓︎
-
Steam (Runtime)
View PackageThe standard version. Best balance of performance and stability.
-
Steam Native
View AURUses system libraries instead of the Steam runtime for max performance.
-
Steam Flatpak
View FlatpakSandboxed version for the best compatibility across distributions.
Steam⚓︎
Steam Theming
To make Steam match your GNOME desktop, install AdwSteamGtk and apply the Adwaita theme.
Other Gaming Tools⚓︎
-
Lutris & Bottles
View LutrisOn github for running Windows games via Wine & specialized environments.
-
Cartridges
View FlatpakA clean, modern GTK4 game launcher that brings all your libraries into one place.
-
Retro & ScummVM
View RetroDeckAll-in-one solutions for retro gaming and classic point-and-click adventures. ScummVM
-
Wine & Proton
View WineEssential compatibility layers including Winetricks and GE-Proton builds. Wine. Proton.
-
ProtonPlus & Tricks
View ProtonPlusManage your Proton versions and prefixes with ease using these utility tools.
-
System Libraries
View WikiCore dependencies and configurations required for high-performance gaming.
-
MangoHud
View PackageVulkan and OpenGL overlay for monitoring FPS, temperatures, and CPU/GPU load.
-
Gamescope
View PackageSteamOS micro-compositor for improved scaling and low-latency gaming.
-
Haguichi (Hamachi)
View FlatpakEasy-to-use VPN GUI for virtual LAN gaming with LogMeIn Hamachi.
For Audiophiles⚓︎
-
PipeWire Config
View WikiAdvanced low-latency audio server configuration for Arch Linux.
-
AutoEq
View ProjectAuto Headphone Equalization, AutoEq for thousands of headphone models.
-
EasyEffects
View PresetsEasyEffects Community-driven presets for professional-grade audio processing.
Advanced Installation⚓︎
Installer Configuration (installer.conf)
The installer.conf file is automatically generated on the first run (excluding your password for security). It updates with every setup change and acts as a preset for future installs.
- Customization: Edit this file to pre-configure your Arch OS installation.
- Post-Install: A copy of
installer.confandinstaller.logis moved to your new user's home directory. - Cleanup: These files can be safely deleted or kept for future reference.
See the Example Installer Config for a full property list.
Example: installer.conf⚓︎
installer.conf
- ARCH_OS_HOSTNAME='arch-os' # Hostname
- ARCH_OS_USERNAME='tux' # User
- ARCH_OS_DISK='/dev/sda' # Disk
- ARCH_OS_BOOT_PARTITION='/dev/sda1' # Boot partition
- ARCH_OS_ROOT_PARTITION='/dev/sda2' # Root partition
- ARCH_OS_FILESYSTEM='btrfs' # Filesystem | Available: btrfs, ext4
- ARCH_OS_BOOTLOADER='grub' # Bootloader | Available: grub, systemd
- ARCH_OS_SNAPPER_ENABLED='true' # BTRFS Snapper enabled | Disable: false
- ARCH_OS_ENCRYPTION_ENABLED='true' # Disk encryption | Disable: false
-
ARCH_OS_TIMEZONE='Europe/Berlin' # Timezone | Show available: ls /usr/share/zoneinfo/** | Example: Europe/Berlin
-
ARCH_OS_LOCALE_LANG='de_DE' # Locale | Show available: ls /usr/share/i18n/locales |Example: de_DE
- ARCH_OS_LOCALE_GEN_LIST=('de_DE.UTF-8 UTF-8' 'de_DE ISO-8859-1' 'de_DE@euro ISO-8859-15' 'en_US.UTF-8 UTF-8') # Locale List | Show available: cat /etc/locale.gen
- ARCH_OS_REFLECTOR_COUNTRY='Germany' # Country used by reflector | Default: null | Example: Germany,France
- ARCH_OS_VCONSOLE_KEYMAP='de-latin1-nodeadkeys' # Console keymap | Show available: localectl list-keymaps | Example: de-latin1-nodeadkeys
- ARCH_OS_VCONSOLE_FONT='' # Console font | Default: null | Show available: find /usr/share/kbd/consolefonts/*.psfu.gz | Example: eurlatgr
- ARCH_OS_KERNEL='linux-zen' # Kernel | Default: linux-zen | Recommended: linux, linux-lts linux-zen, linux-hardened
- ARCH_OS_MICROCODE='intel-ucode' # Microcode | Disable: none | Available: intel-ucode, amd-ucode
- ARCH_OS_CORE_TWEAKS_ENABLED='true' # Arch OS Core Tweaks | Disable: false
- ARCH_OS_MULTILIB_ENABLED='true' # MultiLib 32 Bit Support | Disable: false
-
ARCH_OS_AUR_HELPER='paru' # AUR Helper | Default: paru | Disable: none | Recommended: paru, yay, trizen, pikaur
-
ARCH_OS_BOOTSPLASH_ENABLED='true' # Bootsplash | Disable: false
-ARCH_OS_HOUSEKEEPING_ENABLED='true' # Housekeeping | Disable: false - ARCH_OS_MANAGER_ENABLED='true' # Arch OS Manager | Disable: false
- ARCH_OS_SHELL_ENHANCEMENT_ENABLED='true' # Shell Enhancement | Disable: false
-ARCH_OS_SHELL_ENHANCEMENT_FISH_ENABLED='true' # Enable fish shell | Default: true | Disable: false - ARCH_OS_DESKTOP_ENABLED='true' # Arch OS Desktop (caution: if disabled, only a minimal tty will be provied)| Disable: false
- ARCH_OS_DESKTOP_GRAPHICS_DRIVER='amd' # Graphics Driver | Disable: none | Available: mesa, intel_i915, nvidia, amd, ati
- ARCH_OS_DESKTOP_EXTRAS_ENABLED='true' # Enable desktop extra packages (caution: if disabled, only core + gnome + git packages will be installed) | Disable: false
- ARCH_OS_DESKTOP_SLIM_ENABLED='true' # Enable Sim Desktop (only GNOME Core Apps) | Default: false
-
ARCH_OS_DESKTOP_KEYBOARD_MODEL='pc105' # X11 keyboard model | Default: pc105 | Show available: localectl list-x11-keymap-models
-
ARCH_OS_DESKTOP_KEYBOARD_LAYOUT='de' # X11 keyboard layout | Show available: localectl list-x11-keymap-layouts | Example: de
- ARCH_OS_DESKTOP_KEYBOARD_VARIANT='nodeadkeys' # X11 keyboard variant | Default: null | Show available: localectl list-x11-keymap-variants | Example: nodeadkeys
- ARCH_OS_SAMBA_SHARE_ENABLED='true' # Enable Samba public (anonymous) & home share (user) | Disable: false
- ARCH_OS_VM_SUPPORT_ENABLED='true' # VM Support | Default: true | Disable: false
- ARCH_OS_ECN_ENABLED='true' # Disable ECN support for legacy routers | Default: true | Disable: false
Minimal Installation⚓︎
Minimal Installation
Set these properties to install Arch OS Core only with minimal packages & configurations. This is the same as preset core:
ARCH_OS_CORE_TWEAKS_ENABLED='false'
ARCH_OS_BOOTSPLASH_ENABLED='false'
ARCH_OS_DESKTOP_ENABLED='false'
ARCH_OS_MULTILIB_ENABLED='false'
ARCH_OS_HOUSEKEEPING_ENABLED='false'
ARCH_OS_SHELL_ENHANCEMENT_ENABLED='false'
ARCH_OS_AUR_HELPER='none'
- If you want to disable VM support add
NOTE
You will only be provided with a minimal tty after installation.
Features⚓︎
Each feature can be activated/deactivated during installation. Further information can be found in the individual feature headings.
Core Tweaks⚓︎
Core Tweaks
Enable this feature with ARCH_OS_CORE_TWEAKS_ENABLED='true':
-
vm.max_map_countis set to1048576for compatibility of some apps/games (default) -
quiet splash vt.global_cursor_default=0is set to kernel parameters for silent boot -
Pacman parallel downloads is set to
5 - Pacman colors and eyecandy is enabled
- Sudo password feedback is enabled
- Debug packages are disabled in
/etc/makepkg.conf - Watchdog is disabled with kernel arg
nowatchdogand blacklist:/etc/modprobe.d/blacklist-watchdog.conf
Disable this featuree with ARCH_OS_CORE_TWEAKS_ENABLED='false'
Housekeeping⚓︎
This feature will install and configure:
| Package | Service | Config | Description |
|---|---|---|---|
| reflector | reflector.service | /etc/xdg/reflector/reflector.conf | Rank & update the mirrorlist on every boot |
| pacman-contrib | paccache.timer | none | Weekly clear the pacman cache |
| pkgfile | pkgfile-update.timer | none | Missing command suggestion and daily database update |
| smartmontools | smartd | none | Monitor storage devices |
| irqbalance | irqbalance.service | none | Distribute hardware interrupts across processors on a multicore system |
Disable this feature with ARCH_OS_HOUSEKEEPING_ENABLED='false'
Shell Enhancement⚓︎
-
If the property
ARCH_OS_SHELL_ENHANCEMENT_ENABLEDis set totrue, the following packages are installed and preconfigured (for root & user). -
To keep
bashas default shell, setARCH_OS_SHELL_ENHANCEMENT_FISH_ENABLED='false'.
Package Dependencies:
-
Shell & Prompt
View Themefishis the default shell with a pre-configuredstarshipprompt for a modern CLI experience. -
Modern CLI Tools
View ezaStandard tools are enhanced:
lsis replaced byeza, andmanpages are colorized viabat. -
System Info
View Fastfetchfastfetchprovides instant system overview, whilenanoserves as the reliable default editor.
-
Navigation & Search
View zoxideZSH-z smart directory jumping, fd for fast searching, and
ll/la/ltfor listing files. -
System Management
View btopRun fetch for info,
btopfor task management, andlogsto view system activity. -
File Operations
View MCOpen mc for a dual-pane manager or use
open <file>to launch files in GNOME.
Useful Terminal Keyboard Shortcuts⚓︎
Keyboard Productivity
Tab: Autocomplete commands.Ctrl + r: Search command history.Alt + s: Run previous command assudo.Alt + .: Paste the last parameter from previous command.
Configuration File Paths
Detailed aliases and configurations can be found at these locations:
- Aliases:
~/.aliases - Shells:
~/.config/fish/config.fish&~/.bashrc - Prompt:
~/.config/starship.toml - System Tools:
~/.config/fastfetch/config.jsonc&~/.config/btop/btop.conf - System Wide:
/etc/nanorc&/etc/environment
Promt Theme ➜ Arch OS Starship Theme
Starship Theme
fishis set as default shellstarshipis set as fancy default promt see~/.config/fish/config.fishlsis replaced with colorfulezasee~/.aliases
manis replaced with colorfulbatsee~/.config/fish/config.fishnanois set as default editorfastfetchis preconfigured as system info
Useful Terminal Commands⚓︎
Terminal Commands
helpopen fish help in browserhistoryopen command historyfishopen fish shell (default)bashswitch to bash shell (go back to fish withq)-
fetchshow system info
-
btopshow system manager logsshow system logsmcopen file manager-
fdAlternative search
-
zAlternative cd (zoxide) lllist files in dirlalist all files (+ hidden files) in dir-
lttree files in dir
-
.go back cclear screenqexitopen <file>open file in GNOME app
Note
See ~/.aliases for all command aliases
Configuration⚓︎
Config Files
These config files are created or modified during the Arch OS installation.
# Aliases
~/.aliases
# Bash config
~/.bashrc
# Fish config
~/.config/fish/config.fish
# Starship config
~/.config/starship.toml
# Fastfetch config
~/.config/fastfetch/config.jsonc
# Midnight Commander config
~/.config/mc/ini
# Btop config
~/.config/btop/btop.conf
# Nano config
/etc/nanorc
# Environment config
/etc/environment
# Open Fish web config
fish_config
Arch OS Manager⚓︎
GitHub Project ➜ github.com/murkl/arch-os-manager
Install ➜ archlinux-updates-indicator and set this in extension options to integrate Arch OS Manager:
- Check command:
/usr/bin/arch-os check - Update command:
arch-os --kitty upgrade - Package Manager (optional):
arch-os --kitty
Install Graphics Driver (manually)⚓︎
Set the property ARCH_OS_DESKTOP_GRAPHICS_DRIVER='none' and install your graphics driver manually:
-
OpenGL
View OpenGLDev of OpenGL ceased 2017 in favour of Vulkan.
-
Intel HD
View Intel HDIntel graphics are essentially plug-and-play.
-
NVIDIA
View NvidiaCommunity open-source driver, see Nouveau.
-
NVIDIA Optimus
View Arch WikiTech allows Integrated GPU & Discrete NVIDIA GPU
-
AMDGPU
View Arch WikiAMDGPU open source graphics driver.
-
ATI Legacy
View Arch WikiOpen source driver which supports older AMD.
Tools⚓︎
- AMD LACT: Overclocking Tool
VM Support⚓︎
If the installation is executed in a VM (autodetected), the corresponding packages are installed.
Supported VMs:
- kvm
- vmware
- oracle
- microsoft
Disable this feature with ARCH_OS_VM_SUPPORT_ENABLED='false'
Technical Information⚓︎
Here are some technical information regarding the Arch OS Core installation.
Partitions Layout⚓︎
The partitions layout is seperated in two partitions:
- FAT32 partition (1 GiB), mounted at
/bootas ESP - EXT4/BTRFS partition (rest of disk) optional with LUKS2 encrypted container, mounted at
/as root
| Partition | Label | Size | Mount | Filesystem |
|---|---|---|---|---|
| 1 | BOOT | 1 GiB | /boot | FAT32 |
| 2 | ROOT / BTRFS / cryptroot | Rest of disk | / | EXT4/BTRFS + Encryption (LUKS2) |
BTRFS⚓︎
Great GUI for managing Snapshots: AUR/btrfs-assistant
| Subvolume | Mountpoint | Description | Snapper Config |
|---|---|---|---|
| @ | / | Mount point for root | /etc/snapper/configs/root |
| @home | /home | Mount point for home | x |
| @snapshots | /.snapshots | Read-only snapshots created by snapper | x |
NOTE
If btrfs as filesystem and grub as bootloader is selected, OverlayFS is used and lets you overlay a writable layer on top of a read-only Btrfs snapshot, so changes are temporary and the original data stays untouched. It is enabled by adding grub-btrfs-overlayfs to the HOOKS array in /etc/mkinitcpio.conf.
| Package | Service/Timer | Description |
|---|---|---|
| grub-btrfs | grub-btrfsd.service | Automatically updates GRUB menu entries when Btrfs snapshots change. |
| btrfs-progs | btrfs-scrub@-.timer | Schedules regular Btrfs scrub for the root filesystem. |
| btrfs-progs | btrfs-scrub@home.timer | Schedules regular Btrfs scrub for the /home subvolume. |
| btrfs-progs | btrfs-scrub@snapshots.timer | Schedules regular Btrfs scrub for the /snapshots subvolume. |
| snapper | snapper-boot.timer | Automatically creates a Btrfs snapshot at every system boot. |
| snapper | snapper-timeline.timer | Automatically creates periodic Btrfs snapshots. |
| snapper | snapper-cleanup.timer | Cleans up old Btrfs snapshots based on retention policy. |
Installed Packages
These packages are installed:
NOTE
By installing snap-pac, a Pacman hook is created that automatically generates Btrfs snapshots before and after each package transaction.
Swap⚓︎
As default, zram-generator is used to create swap with enhanced config.
You can edit the zram-generator default configuration in /etc/systemd/zram-generator.conf and to modify the enhanced kernel parameter in /etc/sysctl.d/99-vm-zram-parameters.conf
Packages⚓︎
Packages
This group of packages will be installed during Arch OS Core Installation (~150 packages in total):
Services⚓︎
Services
These services will be enabled during Arch OS Core Installation:
Configuration⚓︎
This configuration will be set during Arch OS Core Installation:
- Bootloader timeout is set to
0 - User is added to group
wheelto usesudo
Note
The password (ARCH_OS_PASSWORD) is used for encryption (optional), root and user login and can be changed afterwards with passwd if necessary.
Rescue & Recovery⚓︎
If you need to rescue your Arch OS in case of a crash, boot from an Arch ISO device and start the Arch OS Recovery.
BTRFS Rollback - Manually⚓︎
BTRFS Rollback - Manually
EXT4 Recovery - manually⚓︎
Follow these instructions to do this manually.
1. Disk Information⚓︎
Disk Information
- Show disk info:
lsblk
Example
- Example Disk:
/dev/sda - Example Boot:
/dev/sda1 - Example Root:
/dev/sda2
2. Mount⚓︎
Mount
Note: You may have to replace the example /dev/sda with your own disk
- Create mount dir:
mkdir -p /mnt/boot -
a) Mount root partition (disk encryption enabled):
cryptsetup open /dev/sda2 cryptrootmount /dev/mapper/cryptroot /mnt
-
b) Mount root partition (disk encryption disabled):
mount /dev/sda2 /mnt
- Mount boot partition:
mount /dev/sda1 /mnt/boot
3. Chroot⚓︎
Chroot
- Enter chroot:
arch-chroot /mnt - Fix your Arch OS...
- Exit:
exit
Troubleshooting⚓︎
Troubleshooting
If an error occurs, see created installer.log for more details.
Installation Failed⚓︎
Installation Failed
If you encounter problems with a server during Arch OS installation (error: failed retrieving file or related errors), remove this server from /etc/pacman.d/mirrorlist (Arch ISO) and run Arch OS Installer again.
Example⚓︎
Example
# From booted Arch ISO:
nano /etc/pacman.d/mirrorlist
Device is Busy⚓︎
Legacy Routers (ECN disabled)⚓︎
Legacy Routers
Set ARCH_OS_ECN_ENABLED="false" in Arch OS installer.conf.
Downgrade a Package⚓︎
Reset Pacman Keyring & Update⚓︎
Reset Pacman Keyring & Update
Reset Pacman/AUR cache⚓︎
Development⚓︎
Development
Create new pull request branches only from main branch! The dev branch will be deleted after each merge into main.
The Arch OS dev branch can be broken, use only for testing!
Parameter⚓︎
Parameter
Credits⚓︎
Credits
Many thanks for these projects and the people behind them!
- Arch Linux
- GNOME
- Gum by charm
Et cetera
The equation \(\color{#FF5733}{\mathbf{y(0,t)}} = \color{#33FF57}{-a} \color{#3357FF}{\sin(} \color{#F39C12}{\omega} \color{#8E44AD}{t} \color{#3357FF}{)}\) defines a sinusoidal boundary condition or displacement at the spatial origin (\(x = 0\)) over time (\(\color{#8E44AD}{\mathbf{t}}\)), featuring an amplitude \(\color{#33FF57}{\mathbf{a}}\), a negative sign indicating a phase inversion, and an angular frequency \(\color{#F39C12}{\mathbf{\omega}}\).
Parameter Breakdown⚓︎
- \(\color{#FF5733}{\mathbf{y(0,t)}}\): Transverse displacement at the spatial origin.
- \(\color{#33FF57}{\mathbf{-a}}\): Inverted peak amplitude starting downward.
- \(\color{#3357FF}{\mathbf{\sin}}\): The harmonic oscillation function.
- \(\color{#F39C12}{\mathbf{\omega}}\): Angular frequency (\(\color{#F39C12}{\mathbf{\omega}} = 2\pi f\)).
- \(\color{#8E44AD}{\mathbf{t}}\): Time elapsed during the cycle.
Et cetera
The equation \(y(0,t) = -a \sin(\omega t)\) defines a sinusoidal boundary condition or displacement at the spatial origin (\(x = 0\)) over time (\(t\)), featuring an amplitude \(a\), a negative sign indicating a phase inversion, and an angular frequency \(\omega \).