Due to their proprietary nature, Nvidia GPUs have limited compatibility withHyprland. If you want to try Hyprland on Nvidia regardless (many people havereported successes), follow the Nvidia page after installingHyprland.
Arch, NixOS and openSUSE Tumbleweed are very supported. For any other distro(not based on Arch/Nix) you might have varying amounts of success. However,since Hyprland is extremely bleeding-edge, distros like Pop!_OS, Ubuntu, etc.might have major issues running Hyprland.
Additional packages like hyprlock, hypridle, xdg-desktop-portal-hyprland,hyprland-plugins, hyprpaper and hyprpicker are available in theGURU overlay. Community-contributedscripts are also available in GURU as part of the hyprland-contrib package.
I have an existing garuda installation on the dr460nized edition.
I would have loved to experiment with hyprland on it alongside plasma, keeping both installed, and being able to chose one or the other on sddm at login.
By the way, there are no dotfiles files or folders associated with this Silverblue derivative installation. I was looking for them to make some modifications. It turned out that Hyprland was installed with Nix. The configuration files, such as hyprland.conf, will be living somewhere else such as /var/usr. That gives me an indication that installing Hyprland via Nix in my current Bluefin-DX might work.
Tested #3 Installing Hyprland using Nix following the instructions here. The installation completes but at the time of starting Hyprland I get some errors related to the absence of these libraries: iris_dri.so, kms_swrast_dri.so, swrast_dri.so.
This post is the first of a few articles showing how to install, configure and use Hyprland and additional tools. You can find many GitHub repositories with installation scripts and configuration files for Hyprland, but you end up with the configurations of those repositories, probably without understanding the basic details of Hyprland. I found starting from scratch (following the Hyprland wiki) much more helpful, taking inspiration from some of the above-mentioned GitHub repositories.
This first post is only about getting started and having a usable environment with minimal helpful tools: there will be follow-up posts for installing other tools (like a bar and notification system) and configuring other programs (actually, I have already blogged about Variety in Hyprland).
Really appreciate all your blogs and just wanted to let you know and thank you for it. The Snapper ones, now the Variety tip for Hyprland (using it right now) and many more things. Currently I am also using Hyprland (on Debian), next to KDE on Arch (on the laptop). Really interesting to read your musings. Thanks a lot! BR, Mark
Thank you for this guide Lorenzo! Helped the transition to hyprland a breeze. I had been using arch + i3wm for the last 8 years as my main driver and I was pretty happy with the snappiness, but it lacked the oomph and the buttery smoothness of modern macos or even windows for that matter. Thus far hyprland feels great, quite responsive.
Tapping the power button causes the system to power off, which isn't very convenient since it's right next to the delete button. I tried binding it in the hyprland.conf file to archlinux-logout but it still just powers down.
This solution has shed some light on the topic, but when I run xev and press the power key to find out if it's mapped to XF86PowerOff or whatever, the system turns off. So I'm not sure how to follow those instructions without knowing what the key is bound to at the system level.
KasmVNC uses X11, if the packages that hyprland uses could run on X it is possible, but Wayland is a whole different thing, it does not do what X does, it expects the DE to handle everything basically and it is why it is tightly integrated with specific DEs like KDE/GNOME and this.
As an example the ability to take a dump of the screen contents (something mission critical for VNC and optimally needs to be done 60 times a second) is a direct X call in X and is actually copied in shm memory to be more efficient. In Wayland you gotta pipe through xdg-desktop-portal and pipewire apis just to nab the screen contents.
Hyprland is an independent tiling Wayland compositor written in C++. Noteworthy features of Hyprland include dynamic tiling, tabbed windows, a clean and readable C++ code-base, and a custom renderer that provides window animations, rounded corners, and Dual-Kawase Blur on transparent windows. General usage and configuration is thoroughly documented at Hyprland wiki.
hyprland.conf includes directives to configure your devices (keyboards, mice, trackpads, monitors), as well as settings for animations, decorations, layout, etc. You can set key bindings, window rules, and execute commands (either once or each time) the configuration is reloaded.
The configuration is automatically reloaded each time you update the file. You can also use hyprctl reload for the same effect. For some settings (particularly input settings), you may have to restart your Hyprland session.
Using keyboard brightness controls in Hyprland is possible. Install brightnessctl then add the related binds (replace keyboard_brightness_* with SUPER, FX or XF86KbdBrightness depending on how your hardware exposes the keyboard backlight):
Hyprland also maintains xdg-desktop-portal-hyprland, which supports screen sharing (including region sharing and window sharing), global shortcuts, and has a graphical picker utility. Usage of the portal is further documented in the Hyprland wiki.
Hyprland will try to detect your screen resolution automatically however in some cases it will fail and default to a fail-safe, usually if there are multiple screens present or if you have a hybrid laptop. If everything on your screen is huge then you need to configure your default monitor and resolution.
While launching from a display manager is not officially supported, users have reported success launching from GDM, SDDM, and others. The hyprland package contains a display manager entry, and all Hyprland AUR packages will generate one automatically.
hyprctl is a command line utility that comes installed with Hyprland to communicate with the display server. It allows you to dispatch commands to the server (equivalent to commands in the configuration file, but with a slightly different syntax), set keywords, send queries and request information. See the full documentation.
Hyprland also exposes 2 UNIX Sockets for controlling and getting information about Hyprland via code or command-line utilities. These sockets broadcast events on focus change (windows, workspaces, monitors), creation of windows/workspace, and so on.
When starting applications it is important to use the correct type of dispatcher, using exec incorrectly can result in applications being started multiple times taking up system resources and in the worst cases, causing a race condition that can crash your system.
The Hyprland development team are building an ecosystem of applications tailored to be specifically used with Hyprland, these tools will include dispatchers allowing for them to be controlled with hyprctl rather than relying on scripts.
Hyprland has a built in dispatcher to handle DPMS requests however using it as a direct keybind is not recommended, doing so will result in you not being able to turn the screen back on and will require you to reboot.
The above setup will result in your monitor powering off while you are doing things like playing a game, watching a video or listening to music where you might not touch the system for longer than the timeout period.
To fix this you can either use Hyprlands built in Window Rules V2 function which has a idleinhibit rule or you can install one of either idlehack-gitAUR or sway-audio-idle-inhibit-gitAUR. The former uses D-Bus to prevent Swayidle requests whenever Firefox or Chromium are playing audio/video. The latter prevents Swayidle requests whenever any application is playing audio.
For programs that use org.freedesktop.ScreenSaver.inhibit to pause the screensaver, you can install wscreensaver-bridge-gitAUR[broken link: package not found] to implement it for Hyprland (or any Wayland compositor that support the idle-inhibit protocol).
On screen notifications for actions like brightness and volume changes are possible by using external notification daemons. This is a very complex topic and covering it completely is beyond the scope of this page. Rather, this section will focus on mako so go ahead and install it.
Wayland clipboard behaviour deletes data when closing the application we copied it from. Other desktop environments work around this by using dedicated clipboard managers and on Hyprland there are multiple compatible choices. See the upstream Wiki for more information.
Terminal emulators that support Wayland can be found on the Wayland Desktop Landscape page. Popular choices include x11-terms/alacritty or x11-terms/kitty, which works natively with Wayland if the KITTY_ENABLE_WAYLAND environment variable is set to 1.
xdg-desktop-portals are helper programs for desktop environments. They work by managing D-Bus interfaces and exposing them as 'portals'. On Wayland they are often needed because, unlike X, Wayland does not allow windows to easily talk to each other.If some programs start up very slowly or screen sharing does not work, a problem with the xdg-desktop-portal is likely the reason.Hyprland works with gui-libs/xdg-desktop-portal-wlr, but also lacks screen sharing. Hyprland upstream forked xdg-desktop-portal-wlr into gui-libs/xdg-desktop-portal-hyprland (available in GURU),
xdg-desktop-portal-hyprland needs to be started after Hyprland starts. This is done best with Hyprland's exec-once function. It is also a good idea to tell D-Bus that the current desktop is Hyprland. To do so, add this to the Hyprland config file:
Even though the other portals' processes get killed in the script from the earlier point, xdg-desktop-portal-gnome causes problems with Hyprland. Hyprland warns about that at startup when it detects xdg-desktop-portal-gnome on the system.When using Hyprland, xdg-desktop-portal-gnome should be uninstalled from the system:
c01484d022