We Tamed the Beast! Arch Linux + Hyprland = 🔥#
Okay, folks, the deed is done! We finally wrestled Arch Linux onto our metal monster (aka “the beast”). It was a bit of a marathon, but we emerged victorious. Now, the real fun begins: crafting a minimal, sleek desktop experience. Our weapon of choice? Wayland, naturally and the star of the show: Hyprland.
Hyprland: What’s the Hype?#
If you haven’t heard of Hyprland, you’re missing out. It’s a Wayland compositor (think of it as the brains behind your desktop visuals) written in C++ that’s making waves. Why? Because it’s dynamic. We’re talking smooth animations that’ll make your eyes happy, tiling that adapts to your workflow like a chameleon and, yes, rounded corners because who doesn’t love rounded corners? It’s like the cool kid on the Wayland block.
Getting Our Hands Dirty: Installing yay#
First things first, we need to talk about the AUR (Arch User Repository). It’s like a treasure trove of packages that aren’t in the official Arch repos. To access this goldmine, we need an AUR helper. Our go-to? yay.
Think of yay as your friendly neighborhood package manager for the AUR. It makes installing stuff a breeze. Here’s the drill:
sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
Basically, we’re grabbing the yay source code, compiling it and installing it. Easy peasy.
Lets update the yay packages
yay -Suy
Prerequisits#
Check the GPU vendor
if lspci | grep "VGA" | grep "Intel" > /dev/null; then
export GPU_PACKAGES="vulkan-intel intel-media-driver intel-gpu-tools"
export GPU_MKINITCPIO_MODULES="i915"
export LIBVA_ENV_VAR="LIBVA_DRIVER_NAME=iHD"
elif lspci | grep "VGA" | grep "AMD" > /dev/null; then
export GPU_PACKAGES="vulkan-radeon libva-mesa-driver radeontop mesa-vdpau"
export GPU_MKINITCPIO_MODULES="amdgpu"
export LIBVA_ENV_VAR="LIBVA_DRIVER_NAME=radeonsi"
fi
Install GPU drivers related packages
sudo pacman -S --noconfirm mesa vulkan-icd-loader vulkan-mesa-layers ${GPU_PACKAGES}
Override VA-API driver via environment variable
echo "${LIBVA_ENV_VAR}" | sudo tee -a /etc/environment
Set env vars for AMDGPU
if lspci | grep "VGA" | grep "AMD" > /dev/null; then
echo "AMD_VULKAN_ICD=RADV" | sudo tee -a /etc/environment
echo "VDPAU_DRIVER=radeonsi" | sudo tee -a /etc/environment
elif lspci | grep "VGA" | grep "Intel" > /dev/null; then
echo "VDPAU_DRIVER=va_gl" | sudo tee -a /etc/environment
fi
Install Video tools
sudo pacman -S --noconfirm libva-utils vdpauinfo vulkan-tools
Install PipeWire and WirePlumber#
sudo pacman -S --noconfirm pipewire pipewire-alsa pipewire-jack pipewire-pulse libpulse wireplumber --ask 4
Hyprland Time: Let’s Get This Show on the Road!#
Alright, folks, the moment we’ve all been waiting for: Hyprland installation time! Since Hyprland lives in the AUR (Arch User Repository), our trusty sidekick yay is gonna help us out.
Taming the WiFi Beast (Power Save Off!)#
Before we dive in, let’s wrangle that pesky WiFi power saving feature. It can sometimes cause hiccups, so we’re disabling it preemptively. Better safe than sorry, right?
echo -e "[connection]\nwifi.powersave = 2" | sudo tee -a /etc/NetworkManager/conf.d/wifi-powersave.conf
sudo systemctl restart NetworkManager
This little snippet tells NetworkManager to chill with the power saving on our WiFi connection.
Hyprland and Friends: The Installation Fiesta!#
Now, let’s bring on the main attraction! We’re not just installing Hyprland; we’re grabbing a whole bunch of essential tools to make our desktop sing.
yay -S --noconfirm hyprland kitty waybar wofi mako polkit-gnome python-requests grim slurp pamixer brightnessctl gvfs bluez bluez-utils blueman xdg-desktop-portal-hyprland
That’s a hefty command, but it’s all good stuff. We’re getting:
- Hyprland itself, of course!
- kitty for a blazing-fast terminal.
- waybar to keep us informed with a stylish status bar.
- wofi for launching apps like a pro.
- mako for notifications that don’t get in the way.
- polkit-gnome for handling permissions.
- python-requests (a dependency, but important!).
- grim and slurp for screenshotting magic.
- pamixer and brightnessctl for controlling audio and brightness.
- gvfs for accessing remote files.
- bluez, bluez-utils and blueman for Bluetooth connectivity.
- xdg-desktop-portal-hyprland to make sure sandboxed apps play nice with our system.
Bluetooth Activation and Portal Cleanup#
We’re not quite done yet! Let’s fire up the Bluetooth service:
sudo systemctl enable --now bluetooth.service
And to avoid any portal conflicts down the road, we’re clearing out some potentially problematic packages:
yay -R --noconfirm xdg-desktop-portal-gnome xdg-desktop-portal-gtk
Alright! The foundation is laid. Hyprland is primed and ready. Now, the real fun begins: customizing it to our liking. Stay tuned for the next post where we’ll transform this raw power into a personalized, productivity-boosting machine! Let’s fire it up:
hyprland