Hyprland is a highly customizable dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
Go to file
Tom Englund 5489682799
internal: some minor fd/socket cleanups and make logging thread safe (#7123)
* bezier: dont loop on float values

Using a floating-point loop variable with a fixed increment can cause precision
errors over time due to the nature of floating-point arithmetic.
and cause undesired effects.

ex
iteration 1 = 0.10000000149011611938
iteration 2 = 0.20000000298023223877

eventually..

iteration 8 = 0.80000001192092895508
iteration 9 = 0.89999997615814208984

* hyprctl: close sockets on destruction

store socketpath and close the fd and unlink the socket path on exit.

* eventloopmgr: close the timerfd

close the timerfd on exit.

* debug: make logging thread safe

instead of opening and closing the logfile on each write open it on init
and close it on compositor exit. also add a mutex so accidently using
logging from a thread like the watchdog or similiar doesnt cause issues.

* xwl: clean up fd logic

check if the fd is actually opened before closing, and close the
pipesource FD on exit.
2024-07-31 21:00:14 +02:00
.github CI: update actions 2024-07-30 22:13:48 +03:00
assets assets: update tetrahedra by honkadaloonga 2024-02-10 17:23:27 +00:00
docs [gha] build man pages 2024-07-19 22:37:42 +00:00
example hyprland.conf: update master section (#6537) 2024-06-16 16:44:13 +03:00
hyprctl Completions: use only awk (#6763) 2024-07-04 14:21:07 +03:00
hyprpm hyprpm: execute all git commands regardless of fails 2024-07-30 12:11:38 +02:00
nix Nix: remove meson (used by wlroots) 2024-07-23 20:40:33 +03:00
protocols protocols: Move globalshortcuts impl (#7102) 2024-07-30 23:33:56 +02:00
scripts nix: build improvements (#5952) 2024-05-11 01:51:53 +03:00
src internal: some minor fd/socket cleanups and make logging thread safe (#7123) 2024-07-31 21:00:14 +02:00
subprojects Core: Move to aquamarine (#6608) 2024-07-21 13:09:54 +02:00
.clang-format touch up the clang format and format all files 2022-12-20 02:18:47 +00:00
.clang-format-ignore style/ci: apply clang-format and verify it in ci (#4039) 2023-12-06 22:54:56 +00:00
.gitattributes Initial commit 2022-03-16 20:49:02 +01:00
.gitignore gitignore: add CMake residual files 2024-07-21 19:24:17 +03:00
.gitmodules Core: Move to aquamarine (#6608) 2024-07-21 13:09:54 +02:00
CMakeLists.txt protocols: Move globalshortcuts impl (#7102) 2024-07-30 23:33:56 +02:00
CODE_OF_CONDUCT.md doc: Add a CoC (#3366) 2023-09-20 19:38:44 +01:00
flake.lock CI: update actions 2024-07-30 22:13:48 +03:00
flake.nix Core: Move to aquamarine (#6608) 2024-07-21 13:09:54 +02:00
hyprland.pc.in Core: Move to aquamarine (#6608) 2024-07-21 13:09:54 +02:00
LICENSE LICENSE: Update year (#5132) 2024-03-16 16:57:45 +00:00
Makefile Core: Move to aquamarine (#6608) 2024-07-21 13:09:54 +02:00
meson_options.txt Fix nix build options 2023-03-27 11:00:37 +03:00
meson.build CMake, Meson, Nix: replace props.json with VERSION 2024-07-21 19:24:17 +03:00
README.md Core: Move to aquamarine (#6608) 2024-07-21 13:09:54 +02:00
VERSION CMake, Meson, Nix: replace props.json with VERSION 2024-07-21 19:24:17 +03:00

banner

Badge Workflow Badge License Badge Language Badge Pull Requests Badge Issues Badge Hi Mom


Hyprland is a 100% independent, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.

It provides the latest Wayland features, is highly customizable, has all the eyecandy, the most powerful plugins, easy IPC, much more QoL stuff than other compositors and more...



Install

Quick Start

Configure

Contribute



Features

  • All of the eyecandy: gradient borders, blur, animations, shadows and much more
  • A lot of customization
  • 100% independent, no wlroots, no libweston, no kwin, no mutter.
  • Custom bezier curves for the best animations
  • Powerful plugin support
  • Built-in plugin manager
  • Tearing support for better gaming performance
  • Easily expandable and readable codebase
  • Fast and active development
  • Not afraid to provide bleeding-edge features
  • Config reloaded instantly upon saving
  • Fully dynamic workspaces
  • Two built-in layouts and more available as plugins
  • Global keybinds passed to your apps of choice
  • Tiling/pseudotiling/floating/fullscreen windows
  • Special workspaces (scratchpads)
  • Window groups (tabbed mode)
  • Powerful window/monitor/layer rules
  • Socket-based IPC
  • Native IME and Input Panels Support
  • and much more...


Gallery


Preview A


Preview B


Preview C



Special Thanks


wlroots - For powering Hyprland in the past

tinywl - For showing how 2 do stuff

Sway - For showing how 2 do stuff the overkill way

Vivarium - For showing how 2 do stuff the simple way

dwl - For showing how 2 do stuff the hacky way

Wayfire - For showing how 2 do some graphics stuff