Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Hyprland: Difference between revisions

From atl.wiki
m (added a suggestion to users to follow the Hyprland installation guide)
m (Tidy up some grammer and add in links)
Line 2: Line 2:
[[File:Hyprland.png|thumb|A screenshot of a desktop running Hyprland, with [[neofetch]] and a browser with atl.wiki running along with it.]]
[[File:Hyprland.png|thumb|A screenshot of a desktop running Hyprland, with [[neofetch]] and a browser with atl.wiki running along with it.]]


Hyprland is a dynamic tiling window manager that does not sacrifice on its looks, it is a wl-roots based compositor that has a lot of eye candy. It was originally made by Vaxry. It is one of the few window manager that aim for pure eye candy with nice animations, smooth looks and it's own somewhat of an ecosystem.
Hyprland is a dynamic tiling [[Window Manager]] that does not sacrifice on its looks, it is a wl-roots based compositor that has a lot of eye candy. It was originally made by Vaxry. It is one of the few window manager that aim for pure eye candy with nice animations, smooth looks and it's own somewhat of an ecosystem.


It also has it's very own custom syntax for its configurations. It is somewhat similar to bash scripting and it is quite easy to use. The hyperwm team has also made nice utilities that go well with the tiling window manager. Some like hyprcursor are made to completely change and revolutionize the XCursor style we have been using for years, others like hypridle are made for Hyprland specifically and shares a lot of features with something like swayidle, except it is tightly integrated with Hyprland configuration folders. It also has it's own wallpaper software called hyprpaper which is quite optimized.
It also has it's very own custom syntax for its configurations. It is somewhat similar to bash scripting and it is quite easy to use. The hyperwm team has also made nice utilities that go well with the tiling window manager. Some like hyprcursor are made to completely change and revolutionize the XCursor style we have been using for years, others like hypridle are made for Hyprland specifically and shares a lot of features with something like swayidle, except it is tightly integrated with Hyprland configuration folders. It also has it's own wallpaper software called hyprpaper which is considered to be well optimized.


=== Features ===
=== Features ===
There are tons of feature to this window manager like:
There are a lot of features included in Hyprland including:


* Smooth and animated graphics (such as moving windows, dragging them and in general opening and closing them)
* Smooth and animated graphics (Such as moving windows, dragging them and other general animations such as opening and closing them)
* Gradient customization for pretty much everything like window borders including gradient angles.
* Gradient customization for most things such as window borders with the option for gradient angles
* Nice integration with it's own apps (such as hyprpaper, hyprcursor and hypridle).
* Good integration with it's own apps (Such as hyprpaper, hyprcursor and hypridle)
* Compatibility with most wayland apps and support for <code>xorg-xwayland</code>.
* Compatibility with most [[wayland]] apps and support for <code>xorg-xwayland</code>
* Decent default configuration file auto-generated and has pretty much all important configurations setup for you (like touchpad tap to click, etc).
* Default configuration file auto-generated with the most important configurations setup (Such as touchpad tap to click, etc)


=== Installation ===
=== Installation ===
This section is bound to change overtime, as such, you should follow the [https://wiki.hyprland.org/Getting-Started/Installation/ official installation guide] instead. If you do need to follow the wiki however, you can continue reading.
This section will change overtime, as such, you should follow the [https://wiki.hyprland.org/Getting-Started/Installation/ official installation guide] instead.  


To install Hyprland, it is recommended to use a rolling release or a semi-rolling release distributions. Most recommended ones include Arch Linux, Gentoo, NixOS, Fedora and openSUSE (Tumbleweed) due to them having the most recent packages and Hyprland is a bleeding edge window manager.
To install Hyprland, it is recommended to use a rolling release or a semi-rolling release [[Linux Distributions|distributions]]. Most recommended ones include [[Arch Linux]], [[Gentoo]], [[NixOS]], [[Fedora]] and [[openSUSE]] (Tumbleweed) due to them having the most recent packages as Hyprland is a bleeding edge window manager.


You must also install kitty if you do not have an existing configuration or existing dotfiles you want to try.
You must also install kitty if you do not have an existing configuration or existing dotfiles you want to try.
Line 39: Line 39:
<code>sudo zypper install hyprland</code>
<code>sudo zypper install hyprland</code>


Alternatively, you can install it via YaST2 Software, you can also try manual building if you are not on Tumbleweed. It is not recommended to try it on other versions than Tumbleweed.
Alternatively, you can install it via YaST2 Software, you can also try manual building if you are not on Tumbleweed. It is not recommended to use Hyprland on other versions than Tumbleweed.


==== Fedora ====
==== Fedora ====
Line 46: Line 46:
<code>sudo dnf install hyprland</code>
<code>sudo dnf install hyprland</code>


You can also install the <code>hyprland-devel</code> package if you want to build plugins.
You can also install the <code>hyprland-devel</code> package to build plugins.


==== Gentoo ====
==== Gentoo ====
You can edit some USE flags like:
You can edit some USE flags like:


* <code>X</code> : to add support for X11.
* <code>X</code> : To add support for [[X11]].
* <code>legacy-renderer</code> : to enable the legacy renderer.
* <code>legacy-renderer</code> : to enable the Legacy renderer.
* <code>systemd</code> : enable use of specific [[systemd]] libraries like socket activation or session tracking.
* <code>systemd</code> : Enable use of specific [[systemd]] libraries like socket activation or session tracking.


But, it is not necessary to edit any of these USE flags and should be able to manually build using:
But, it is not necessary to edit any of these USE flags and should be able to manually build using:
Line 60: Line 60:


==== Ubuntu 23.04 ====
==== Ubuntu 23.04 ====
WARNING: Not recommended at all by the Hyprland developers and is potentially unsafe for other packages on a system.
WARNING: Not recommended by the Hyprland developers as it is potentially unsafe for other packages on a system.


This can lead to system breakages so we are not including it in this article but you can read [https://gist.github.com/Vertecedoc4545/3b077301299c20c5b9b4db00f4ca6000 this article]. Please do note that this is long and tedious and may require you to manually build extremely lengthy packages and/or dependency hell since most dependencies on the Ubuntu repo can be outdated.
This can lead to system breakages so we are not including it in this article but you can read [https://gist.github.com/Vertecedoc4545/3b077301299c20c5b9b4db00f4ca6000 this article]. Please do note that this is long and tedious and may require you to manually build extremely lengthy packages and/or dependency hell since most dependencies on the [[Ubuntu]] [[Repository|repositories]] can be outdated.


==== Slackware ====
==== Slackware ====
For Slackware, you might need to use the SlackBuilds repository which has the <code>hyprland-bin</code> package.
For [[Slackware]], you might need to use the SlackBuilds repository which has the <code>hyprland-bin</code> package.


==== Void Linux ====
==== Void Linux ====
Hyprland is not available for Void Linux from the official repositories [https://github.com/void-linux/void-packages/issues/37544 as Hyprland doesn’t build against tagged wlroots], however template files are available [https://github.com/Makrennel/hyprland-void from a third party] which can build Hyprland using [https://github.com/void-linux/void-packages xbps-src]. The [https://github.com/Makrennel/hyprland-void/blob/master/README.md README] has a pretty good explanation on how to install and use it.
Hyprland is not available for [[Void Linux]] from the official repositories [https://github.com/void-linux/void-packages/issues/37544 as Hyprland doesn’t build against tagged wlroots], however template files are available [https://github.com/Makrennel/hyprland-void from a third party] which can build Hyprland using [https://github.com/void-linux/void-packages xbps-src]. The [https://github.com/Makrennel/hyprland-void/blob/master/README.md README] has a pretty good explanation on how to install and use it.


For a manual releases install<ref>https://wiki.hyprland.org/Getting-Started/Installation/#manual-releases-linux-only</ref> and for a manual build install<ref>https://wiki.hyprland.org/Getting-Started/Installation/#manual-manual-build</ref> you can check the Hyprland wiki.
For a manual releases install<ref>https://wiki.hyprland.org/Getting-Started/Installation/#manual-releases-linux-only</ref> and for a manual build install<ref>https://wiki.hyprland.org/Getting-Started/Installation/#manual-manual-build</ref> you can check the Hyprland wiki.
Line 78: Line 78:


* Variables
* Variables
* Section-specific variables (This will have its own 7 sub-topics)
* Section-specific variables  
* Binding Keys (bind and other variants)
* Binding Keys  
* Binding Special Keys (according to the XF86 specification)
* Binding Special Keys
* Animations (quick overview)
* Animations
* Monitors (some references to <code>hyprctl</code>)
* Monitors


==== Variables ====
==== Variables ====
This is the most important part of your configuration file because it is pretty much your whole configuration file, the entire hyprland.conf is comprised of a syntax like:
This is the most important part of your configuration file because it is most of your whole configuration file, the entire hyprland.conf is comprised of a syntax like:


<code>variable = arg1, arg2, arg3, arg4</code>
<code>variable = arg1, arg2, arg3, arg4</code>

Revision as of 16:55, 17 June 2024

Hyprland

Hyprland Logo
Release Status Maintained
Last Release v0.40.0, 2024-05-04
Language(s) C++
Developer(s) The hyprwm team
Website hyprland.org
A screenshot of a desktop running Hyprland, with neofetch and a browser with atl.wiki running along with it.

Hyprland is a dynamic tiling Window Manager that does not sacrifice on its looks, it is a wl-roots based compositor that has a lot of eye candy. It was originally made by Vaxry. It is one of the few window manager that aim for pure eye candy with nice animations, smooth looks and it's own somewhat of an ecosystem.

It also has it's very own custom syntax for its configurations. It is somewhat similar to bash scripting and it is quite easy to use. The hyperwm team has also made nice utilities that go well with the tiling window manager. Some like hyprcursor are made to completely change and revolutionize the XCursor style we have been using for years, others like hypridle are made for Hyprland specifically and shares a lot of features with something like swayidle, except it is tightly integrated with Hyprland configuration folders. It also has it's own wallpaper software called hyprpaper which is considered to be well optimized.

Features

There are a lot of features included in Hyprland including:

  • Smooth and animated graphics (Such as moving windows, dragging them and other general animations such as opening and closing them)
  • Gradient customization for most things such as window borders with the option for gradient angles
  • Good integration with it's own apps (Such as hyprpaper, hyprcursor and hypridle)
  • Compatibility with most wayland apps and support for xorg-xwayland
  • Default configuration file auto-generated with the most important configurations setup (Such as touchpad tap to click, etc)

Installation

This section will change overtime, as such, you should follow the official installation guide instead.

To install Hyprland, it is recommended to use a rolling release or a semi-rolling release distributions. Most recommended ones include Arch Linux, Gentoo, NixOS, Fedora and openSUSE (Tumbleweed) due to them having the most recent packages as Hyprland is a bleeding edge window manager.

You must also install kitty if you do not have an existing configuration or existing dotfiles you want to try.

Arch Linux

By far the easiest one to install Hyprland on, you just run this command:

sudo pacman -S hyprland --needed

The --needed flag is to make sure that you do not reinstall Hyprland.

NixOS

Just enable Hyprland in your NixOS configuration by adding:

programs.hyprland.enable = true;

openSUSE (Tumbleweed)

It is quite simple here also, you can just simply run:

sudo zypper install hyprland

Alternatively, you can install it via YaST2 Software, you can also try manual building if you are not on Tumbleweed. It is not recommended to use Hyprland on other versions than Tumbleweed.

Fedora

You must have the latest version of Fedora installed, if so run the following:

sudo dnf install hyprland

You can also install the hyprland-devel package to build plugins.

Gentoo

You can edit some USE flags like:

  • X : To add support for X11.
  • legacy-renderer : to enable the Legacy renderer.
  • systemd : Enable use of specific systemd libraries like socket activation or session tracking.

But, it is not necessary to edit any of these USE flags and should be able to manually build using:

emerge --ask gui-wm/hyprland # please run as root

Ubuntu 23.04

WARNING: Not recommended by the Hyprland developers as it is potentially unsafe for other packages on a system.

This can lead to system breakages so we are not including it in this article but you can read this article. Please do note that this is long and tedious and may require you to manually build extremely lengthy packages and/or dependency hell since most dependencies on the Ubuntu repositories can be outdated.

Slackware

For Slackware, you might need to use the SlackBuilds repository which has the hyprland-bin package.

Void Linux

Hyprland is not available for Void Linux from the official repositories as Hyprland doesn’t build against tagged wlroots, however template files are available from a third party which can build Hyprland using xbps-src. The README has a pretty good explanation on how to install and use it.

For a manual releases install[1] and for a manual build install[2] you can check the Hyprland wiki.

Configuration

This is a pretty verbose topic but is very simple for new users. Hyprland configuration files are generally suffixed with a .conf extension and are quite simple to read because almost everything is a variable. The Hyprland Wiki has a step above[3] but this guide will teach you pretty much everything you need to know. Your configuration file is located at ~/.config/hypr/hyprland.conf and can contain configurations of programs that are under the hypr-ecosystem.

This topic is divided into 6 sub-sections:

  • Variables
  • Section-specific variables
  • Binding Keys
  • Binding Special Keys
  • Animations
  • Monitors

Variables

This is the most important part of your configuration file because it is most of your whole configuration file, the entire hyprland.conf is comprised of a syntax like:

variable = arg1, arg2, arg3, arg4

Each line is required to have 3 commas, however not 4 arguments, for example you can do:

monitor =,preferred,auto,1 # this is actually part of your auto-generated configuration file

There are some exceptional cases where all 3 commas are not necessary like the exec-once command but most of the time it does require 3 commas.