Course Lessons
Hyprland Installation
Why you NEED to use Hyprland on Linux
If you’ve been watching any of our videos lately, you’ll notice that I’ve been using Linux as my desktop environment for quite some time. I mean, I really love Linux. It is an amazing environment not only for programming but for customization and flexibility. I mean, you can install Linux on a freaking toaster if you want!
Now, my favorite way to customize Linux is with a tiling window manager, and lately, I've been using Hyprland.
As a programmer, Hyprland gets me into a flow state FAST, and I feel like a hacker! I can flip through all my windows, create new windows, and just FLY through my system using my keyboard alone!
But wait, what the hell is a tiling window manager, and why should I care? Well, stick around. In this tutorial and video, I’ll show you what a tiling window manager is, why they’re so great, and how to get started with a basic but functional configuration for Hyperland. Stick around — this will be fun!
What is a tiling window manager and why should I care?
So, a tiling window manager in Linux is completely different from a regular desktop environment.
In a typical Linux desktop environment like GNOME, you can launch new windows, which stack on top of each other. Typically, when you want to resize or move these windows around, you use your mouse to drag them around, resize them, etc.
A tiling window manager is kind of self-explanatory. It's a window manager in Linux that opens windows in a tiling fashion. It is non-stacking and uses a tiling layout to open windows. The user then uses their keyboard to move around their windows and workspaces, which is amazing for me as a programmer.
Ok, so let's ask ourselves a question….
What is Hyprland?
Many tiling window managers are out there, but I like Hyprland a lot. Hyprland is a modern window compositor made for the Wayland display server protocol. Okay, that sentence might sound insane, so let's explain.
Quick overview of Wayland!!!!
You see, there are two main display server protocols in Linux today: X11 and Wayland. X11 has been the de facto standard for Linux for basically forever. But it's been around since the 1980s, and lately, it's really been showing its age. For example, modern hiDPI monitors require workarounds to work properly on X11.
But Wayland is a more modern approach to a display server protocol for Linux. Released in 2008, it has native support for HiDPI monitors and aims to be a more modern, flexible, and secure replacement for X11.
So, if you’re choosing a window management option for linux, you’ll want something modern and Hyprland is a modern, lightweight, and feature-rich window compositor built on the more modern Wayland protocol. Meaning it has more modern features than some other tiling WMs WHILE ALSO taking advantage of the more modern Wayland ecosystem — like hiDPI monitors, to name one.
Install hyprland
So lets install hyprland and give it a whirl. Again, you’ll have to be on wayland to use hyprland. To check that you’re on wayland:
Open a terminal and run:
echo $XDG_SESSION_TYPE
If you are using X11, the output will be:
x11
BOO !
If you are using Wayland, the output will be:
wayland
HOORAY !
To install Hyprland, we just install the hyprland package. hyprland is available on all linux distributions. I’m on arch, so I can install with pacman -S hyprland
After you install, you can reboot and see a hyprland
entry in your display manager!
Showing off built-in Hyprland Stuff
Now let's launch Hyprland and see what its all about. We are going to go over some basic configurations and cover the basic tools needed to have a functioning tiling window manager. Namely:
- basic configuration for our windows
- good resolution and scaling for our monitor
- a launcher - for launching programs
- status bar
Now, we can launch Hyprland by going back to our display manager and selecting hyprland. We can see the initial screen is… pretty barebones. You see, this is by design. Hyprland isn’t trying to be a desktop environment. It’s merely a window manager. All the choices for colors, behavior, program launchers, even a status bar, that's up to you!
When we first launch hyprland, we can see an error telling us that our config is auto generated, example:

This error also explains that we can push super q
to launch kitty (this is why I made us install kitty), and super M
to exit hyprland. Now this is very helpful to know, if you ever run into an issue with your hyprland config, and want to switch back to another desktop env (for me, I am using gnome), you can just pres super+M
and you’ve successfully logged out!
Hyprland isn’t trying to be a desktop environment.
Initial Startup and the Config error
So let's get rid of that pesky error. We launch kitty (this is why I told you to install it), and we can change the line autogenerated=1
to autogenerated=0
OR, you can just delete this line. Lets save the file and BOOM, hyprland auto-reloads it's config and the error message goes away!
What a nice introduction.
Update scaling for our 4k monitor (if you're on a hiDPI monitor)
Now we can see that our fonts and everything look really really small. That is because I am using a 4k monitor and Hyprland isn’t applying any scaling to this monitor by default.
Everything looks super tiny.
The good news is we can fix this issue really easily in Hyprland using something called hyprctl
. hyprctl
is a tool that enables control over the hyprland configuration through a command line interface. There are a TON of use cases for hyprctl
, but for now, we are going to use it to query our monitors.
So using hyprctl monitors all
, we can see all our displays, and our 4k monitor has zero scaling. so lets fix that in our config, lets first copy the name of our monitor so we can use it in our config.
hyprctl monitors all
Monitor eDP-1 (ID 0):
2256x1504@59.99900 at 0x0
description: BOE 0x0BCA
make: BOE
model: 0x0BCA
serial:
active workspace: 2 (2)
special workspace: 0 ()
reserved: 0 26 0 0
scale: 1.60
transform: 0
focused: yes
dpmsStatus: 1
vrr: 0
activelyTearing: false
disabled: false
currentFormat: XRGB8888
availableModes: 2256x1504@60.00Hz 2256x1504@48.00Hz 1920x1200@60.00Hz 1920x1080@60.00Hz 1600x1200@60.00Hz 1680x1050@60.00Hz 1280x1024@60.00Hz 1440x900@60.00Hz 1280x800@60.00Hz 1280x720@60.00Hz 1024x768@60.00Hz 800x600@60.00Hz 640x480@60.00Hz
Now let's scale this thing!
If we check out the configuration docs here: https://wiki.hyprland.org/Configuring/Monitors/can we can see the configuration schema for a monitor is as follows.
monitor = name, resultion, position, scale
We can change our scaling for the monitor’s name that we just copied like this:
monitor = NAME, preferred, auto, 1.6
We can add that line to our ~/.config/hypr/hyprland.conf
file.
Now hyprland should automatically reload our configuration and we get beautiful scaling on our 4k hiDPI monitor!
That's great but I need to launch neovim for work
So now we can launch a terminal and we’ve configured our scaling to look good. How do we launch any other program? well, let's check out our generated config for some clues.
There is a variable in our config called $menu
, and it is set to wofi
.
Wofi
is the preferred application launcher for hyprland. It's a fast, easy to use, and highly customizable launcher for wayland. Now, you can install any launcher you want, you don’t have to use wofi
, but hyprland’s default config mentions it, so lets install and use it.
yay
to install all my programs. For any tool we install, consult docs for preferred method of installation for your distribution.sudo pacman -Sy wofi
and we can see in our config, there is a line that sets a keybind to run our $menu
command.
bind = $mainMod, R, exec, $menu
Now I can launch any app I have installed on my system! that is pretty great!
Window movement
Here is the part of a tiling window manager that I absolutely love. I never have to leave the keyboard with my hands to navigate around my system.
Let's take a look at how this works in action.
I can launch my terminal with super Q. I can then launch my browser (which is zen — video review here!) by typing super R for wofi, and typing zen, then hitting enter!
Window Management in Hyprland !

Where is my status bar?
So we can see all our windows, launch applications, and do some other cool stuff. but what about a status bar? I usually love having a status bar with my setup, and hyprland doesn’t install one by default.
what is a good one to use for hyprland? well once again lets check out our config to see if there are any clues.
We can see that hyprland’s default status bar is waybar. So let's install that!
sudo pamcan -S waybar
Installing waybar on Arch
Now we want to launch waybar when hyprland starts. We can launch applications on startup in our config by using the exec-once
config option. This will launch an application once on startup.
Let's add waybar this way.
exec-once = waybar
Status bar on Launch!
Let's close out hyprland and then start it again. This will confirm waybar starts and we can see what we're starting with configuration-wise.
It looks fine, but not amazing. Time to make some tweaks!
First thing, we don’t have fontawesome installed. By default waybar uses font awesome for the icons in its bar, so let's install fontawesome.
sudo pacman -S ttf-font-awesome
Font so awesome.
Now when we re-run waybar and great! pretty much all the icons look good now! However, we are missing the workspaces for hyprland, so lets's make a config file and add those in.
The default config location ./config/waybar/config
so let's copy+paste the default configuration from waybar’s repository into this config.
Ok, it all looks the same.
Let's add our hyprland workspaces to this config. Now waybar has modules, and you can see there are a lot of modules already installed. We can see a workspaces module already, but it's the wrong one.
We want Hyprland, not sway.
This is an easy fix. Let's change our config to use Hyland/workspaces instead. And BOOM, we are up and running.
We should also modify the icons here to know the active workspace.
We can log out with super M and see if waybar is configured correctly.
Wow - this is looking great!
Let's recap. We now have a basic Hyprland installation that gives us a solid foundation for a tiling window manager.
- status bar
- application launcher
- terminal
But I need more from my tiling window manager. This config gives us some stuff, but not everything. Let's install more.
You've completed this lesson!
You completed this lesson less than a minute ago.