Install_

NVIDIA GPUs in ANY capacity are NOT supported, but you may ask for some help around on the Discord server, people have been running Hyprland on NVIDIA with success.*

Requirements -


Content:



Arch Linux




AUR

hyprland-git - compiles from latest source

hyprland - compiles from latest release source

hyprland-bin - compiled latest release

NixOS



Make sure to check out the options of the Nix module.


With Flakes

# flake.nix

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
hyprland = {
url = "github:hyprwm/Hyprland";
# build with your own instance of nixpkgs
inputs.nixpkgs.follows = "nixpkgs";
};
};

outputs = { self, nixpkgs, hyprland }: {
nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem {
# ...
modules = [
hyprland.nixosModules.default
{ programs.hyprland.enable = true; }
# ...
];
};
};

Don't forget to replace HOSTNAME with your hostname!

Without Flakes

NOTE: If you're using Hyprland through an overlay, set programs.hyprland.package = pkgs.hyprland;

# configuration.nix
{config, pkgs, ...}: let
flake-compat = builtins.fetchTarball "https://github.com/edolstra/flake-compat/archive/master.tar.gz";
hyprland = (import flake-compat {
src = builtins.fetchTarball "https://github.com/hyprwm/Hyprland/archive/master.tar.gz";
}).defaultNix;
in {
imports = [
hyprland.nixosModules.default
];

nixpkgs.overlays = [ hyprland.overlays.default ];

programs.hyprland = {
enable = true;
package = pkgs.hyprland;
};
}

Home Manager Module

You can use the Home Manager module by adding it to your configuration:

{ config, pkgs, inputs, ... }: {
imports = [
inputs.hyprland.homeManagerModules.default
];

wayland.windowManager.hyprland.enable = true;
# ...
}

For a list of available options, check the module file.

Modules mix'n'match

If you plan on using the HM module alongside the NixOS module, set the NixOS programs.hyprland.package = null;

If you don't plan on using the NixOS module, but want to use the HM module, you will have to enable all the options the NixOS module enables.

If you don't plan on using any module, manually enable whatever options the modules set.



Fedora




The steps to build Hyprland on Fedora are relatively simple and very similar to the steps described in the wiki. The main difference is in the package names between Arch and Fedora. These steps were tested on Fedora 35 and Fedora 36 Workstation.



Step 1 - Install all the Dependencies

sudo dnf install git ninja-build cmake meson gcc-c++ libxcb-devel libX11-devel pixman-devel wayland-protocols-devel cairo-devel pango-devel

Step 2 - Download the Hyprland Source Code

git clone --recursive https://github.com/hyprwm/Hyprland

The --recursive argument is important - it will clone the required branch of wlroots into the subprojects directory. Note that compiling with the master branch of wlroots will cause compiler errors - you need the branch of wlroots with the modified structures.


Now you're ready to build Hyprland.

cd Hyprland
meson _build
ninja -C _build
sudo ninja -C _build install

Finally, Copy the sample config into place

mkdir -p ~/.config/hypr
cp example/hyprland.conf ~/.config/hypr

NOTE FOR GDM USERS: Hyprland may not show if gdm is running in a X session instead of Wayland, check /etc/gdm/custom.conf to make sure Wayland is enabled



Manual Build




Step 1 - Install these Dependencies* -


gdb ninja gcc cmake libxcb xcb-proto xcb-util xcb-util-keysyms libxfixes libx11 libxcomposite xorg-xinput libxrender pixman wayland-protocols cairo pango

*Please note Hyprland builds wlroots. Make sure you have the dependencies of wlroots installed, you can make sure you have them by installing wlroots separately (Hyprland doesn't mind).


Also note that Hyprland uses the C++23 standard, so your compiler has to support gcc>=12.1.0 or clang>=15.



Step 2 - Download Hyprland source code

cd ~
git clone --recursive https://github.com/hyprwm/Hyprland

The --recursive argument is important - it will clone the required branch of wlroots into the subprojects directory. Note that compiling with the master branch of wlroots will cause compiler errors - you need the branch of wlroots with the modified structures.



Install with Cmake (Recommended)


cd Hyprland
sudo make install

Install with Meson


meson _build
ninja -C _build
sudo ninja -C _build install

Finally, Step 4 - Copy the config

mkdir -p ~/.config/hypr
cp example/hyprland.conf ~/.config/hypr

If you have any doubt(s) or are getting any error(s), please-