Skip to content
Go back

A Journey for ArchLinux+ Hyprland+ Steam on ROG Zephyrus G14 with Nvidia 4090

Updated:
Edit page

Philosophy

Using Linux is like embracing the quiet space between things - simple, clean, open, and honest. You take only what you need, no extra weight, no noise, just what serves your purpose. It’s pure do-it-yourself, crafting your path bit by bit. Small and lasting, rooted deep in the old ways of Unix, steady and enduring while the world rushes by chasing change. This calm stillness, this “negative space (留白),” holds its shape through decades-unmoved by the chaos, the noise, the flood of new fads. In that emptiness, the true essence stays.

Wikipedia: In art and design, negative space or negative volume is the empty space around and between the subject(s) of an image.[2][3] In graphic design this is known as white space. Negative space may be most evident when the space around a subject, not the subject itself, forms an interesting or artistically relevant shape, and such space occasionally is used to artistic effect as the “real” subject of an image.

ArchLinux

My Arch Linux Journey (a love-hate story)

I’ve been using Arch Linux (and sometimes Manjaro) as my main workstation for years. I even installed and configured Arch on MacBook Pro hardware, just for the challenge. I’ve been a Linux user for over 20 years, and I still love its open-source spirit. Over time, I’ve played around with Fedora, Ubuntu, Debian, and more. My default editor? Always vim — no contest.

Recently, I decided to install Arch Linux again on my ROG Zephyrus G14 with an NVIDIA 4090. The goal was simple: ditch Windows completely and make Arch my one and only workstation.

I’ll be honest — it wasn’t all smooth sailing. I spent years on Manjaro because it just made life easier, especially when it came to NVIDIA setup. But after a while, I missed the pure Arch experience — the control, the learning — so I came back. Let’s just say, switching back was the only way I could eat and sleep well again.

Still, the installation process was rough. I probably spent four hours getting the base system up and running, and I made plenty of mistakes along the way:

If you’re going through this too, the Arch Wiki is your best friend:

Arch Wiki – GRUB

My Hardware and How It Looks with Arch Installed

It has both an AMD Radeon integrated graphics card and a dedicated Nvidia RTX 4090. After this extensive installation, we can see only 840 packages installed.

Arch Installation

Following the installation guide closely, I think there might be a few hiccups along the way. But honestly, I feel confident that any problems that come up can be sorted out without too much trouble.

Reference: Arch Linux Installation Guide

Partition

So, I went with just two partitions: one is a 2GB EFI boot partition (a lot of guides saying 1GB EFI boot partition is enough. Trust me you need 2GB as latest Kernel and firmware are usually as big as 300MB+. Plus fallback image, 300MB+, the remaining space is less then 300MB, which is insufficient for new kernel), and the rest of the space is for the root (/). I’m thinking about enabling LUKS encryption on the root partition later on. Just a heads-up though, turning on encryption will make the boot time a bit slower.

File System Type

For the root partition, I chose Btrfs. It’s a modern file system that supports features like snapshots and compression, which can be really handy.

Kernel

I’m using the DKMS kernel instead of the LTS kernel because DKMS works better with Nvidia drivers. DKMS basically lets kernel modules (like Nvidia drivers) automatically rebuild when the kernel updates, so you get smoother updates.

Essential Packages

Besides the basic recommended packages, here’s what I like to install right after mounting the root partition but before running arch-chroot, just my personal setup:

base-devel git linux-headers iwd sudo gvim which rsync bash-completion openssh cmake

iwctl, from iwd package, is very important to install if you don’t want to have wired connection for network.

Hyprland

Must-Have

Here are the essentials you want to have running with Hyprland:

hyprpolkitagent xdg-desktop-portal-hyprland rofi swaync 

Eco-System

To complement Hyprland, check out these tools:

hyprsunset hyprshot hyprpaper

Multi-Media

For sound and media control, these are the essentials:

wireplumber pipewire-pulse pavucontrol 

Fonts

pacman -S nerd-fonts 

GPU Drivers

This part can get a bit tricky. Here’s what I did on my ROG Zephyrus G14 laptop to get it all working smoothly.

Basically, we want to disable the open-source nouveau driver and switch to the official Nvidia proprietary driver for better performance and compatibility.

Disable nouveau

First, blacklist nouveau so it doesn’t load:

[jeff@arch modprobe.d]$ pwd
/etc/modprobe.d
[jeff@arch modprobe.d]$ cat blacklist-nouveau.conf 
blacklist nouveau
options nouveau modeset=0

Enable Vulkan and Nvidia drivers

For everything Nvidia and Vulkan-related, check out this handy guide: Hyprland Nvidia Wiki

Here’s the basic setup:

Verify it’s working

Run this command to check if the Nvidia driver is active and working:

nvidia-smi

If you see your GPU details, you’re golden!

Steam on Arch Linux

Launching RDR on Hyprland

Reference: ArchWiki - Steam

These steps will help avoid common pitfalls and get Steam running smoothly on Arch Linux.

Troubleshooting Vulkan Initialization Error for Rockstar Launcher

If you see this error when launching the Rockstar launcher:

vkEnumeratePhysicalDevices failed, unable to init and enumerate GPUs with Vulkan.
BInit - Unable to initialize Vulkan!

Here’s what to check and fix:

Other Packages as Personal Preference

Dark Mode

I like to keep things easy on the eyes, so I install dark mode themes like these:

pacman -S nwg-look adw-gtk-theme

Then add the following 2 lines in ~/.config/hypr/hyprland.conf

exec-once = gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita'
exec-once = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'

Development Tools

vim as Python IDE

For coding, I prefer vim with Python IDE features, so I grab this version from AUR:

yay -S vim-youcompleteme-git

It adds autocomplete, making coding smoother.

Epub Reader and Image Viewer

To read ebooks and look at images, these simple tools do the job:

pacman -S foliate imv

Foliate is a user-friendly epub reader, and imv is a lightweight image viewer for the terminal or Wayland.

Asus ROG Specific

Since I use an ROG Zephyrus G14, I install these packages to control hardware features:

pacman -S amd-ucode intel-ucode
pacman -S rog-control-center asusctl power-profiles-daemon

Note: I’ve chosen not to install the linux-14g kernel and headers because I want to manually limit battery charging to 80% for better battery health.

ROG Pugio Mouse

To customize the RGB lighting on your ROG Pugio mouse under Arch, OpenRGB is your friend:

pacman -S openrgb
lsmod | grep i2c-dev

If the module isn’t loaded, you can enable it with:

modprobe i2c-dev

This setup helps you unify RGB control on your system, especially for ROG devices.

Chinese Input Method Setup with fcitx5

To get Chinese input working on Arch Linux, I’d recommend using fcitx5 along with the Chinese addons. Here’s what you need to install:

pacman -S fcitx5-im fcitx5-chinese-addons

After installation, you’ll want to configure environment variables so your apps know to use fcitx5 as the input method:

Add the following lines to your ~/.pam_environment (for both X11 and Wayland. My configuration is Wayland) or ~/.xprofile (for X11 only):

GTK_IM_MODULE=fcitx5    # comment out this for Hyprland and Wayland
QT_IM_MODULE=fcitx5
XMODIFIERS=@im=fcitx5

Next, launch the fcitx5 configuration tool to add double-byte language(s) as you want.

Reference

https://wiki.archlinux.org/title/Installation_guide https://wiki.archlinux.org/title/Steam https://wiki.archlinux.org/title/Wayland https://wiki.archlinux.org/title/Xorg https://wiki.archlinux.org/title/Vulkan https://wiki.archlinux.org/title/Hyprland https://wiki.archlinux.org/title/Fcitx5


Edit page
Share this post on:

Previous Post
My Simple Way to Install Astro + TailwindCSS + Giscus
Next Post
Design Philosophy