Skip to main content

My minimal desktop (Hyprland) installation on a fresh Archlinux

·720 words·4 mins· loading · loading ·
Ronny Roethof
Author
Ronny Roethof
A little bit about you
Table of Contents

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

Related

From FreeBSD and Debian to Arch: A Daily Driver Transition - Initial Impressions
·1052 words·5 mins· loading · loading
Taming the Beast: My Arch Linux Install for a Clean, Mean and Secure Work Machine
·2382 words·12 mins· loading · loading
Error: externally-managed-environment when installing via pip3
·325 words·2 mins· loading · loading