No description
Find a file
Tom Englund 5ba2d2217b
compositor: make wl_surface::frame follow pending states (#11953)
* compositor: make pending states store frame callbacks

move frame callbacks to pending states so they are only committed in the
order they came depending on the buffer wait for readyness.

* buffer: damage is relative to current commit

ensure the damage is only used once, or we are constantly redrawing
things on state commits that isnt a buffer.

thanks PlasmaPower.

* compositor: move callbacks back to compositor

move SSurfaceStateFrameCB back to compositor in the class
CWLCallbackResource as per request, but still keep the state as owning.

* compositor: ensure commits come in order

if a buffer is waiting any commits after it might be non buffer commits
from the "future" and applying directly. and when the old buffer that
was waiting becomes ready it applies its states and overwrites the
future changes.

move things to scheduleState and add a m_pendingWaiting guard. and
schedule the next pending state from the old buffer commit when done.
and as such it loops itself and keeps thing orderly.
2025-10-07 12:49:38 +01:00
.github CI/Arch: build hyprgraphics after hyprutils 2025-09-28 19:19:41 +03:00
assets assets: update header 2025-06-06 15:14:17 +02:00
docs [gha] build man pages 2025-06-19 22:49:42 +00:00
example input: Add fully configurable trackpad gestures (#11490) 2025-08-28 11:20:29 +02:00
hyprctl hyprctl: add getprop (#11394) 2025-08-18 16:41:17 +01:00
hyprpm hyprpm: make temp root if not present 2025-09-18 13:25:04 +01:00
hyprtester keybinds: fix repeat and long press keybinds release (#11863) 2025-10-06 21:10:56 +02:00
nix input: add per-device scroll-factor (#11241) 2025-09-02 13:16:43 +02:00
protocols protocols: implement pointer-warp-v1 (#11469) 2025-08-29 22:16:40 +02:00
scripts renderer/opengl: Extract shaders from source (#9600) 2025-03-29 01:19:35 +01:00
src compositor: make wl_surface::frame follow pending states (#11953) 2025-10-07 12:49:38 +01:00
subprojects protocols: add Hyprland toplevel mapping implementation (#9775) 2025-04-24 18:10:57 +02:00
systemd hyprland-uwsm.desktop: Add TryExec 2025-05-25 14:55:33 +03: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
.clang-tidy internal: fix clang-tidy "errors" (#11862) 2025-09-29 13:10:15 +01:00
.gitattributes Initial commit 2022-03-16 20:49:02 +01:00
.gitignore renderer/opengl: Extract shaders from source (#9600) 2025-03-29 01:19:35 +01:00
.gitmodules Core: Move to aquamarine (#6608) 2024-07-21 13:09:54 +02:00
CMakeLists.txt renderer: asynchronously load background tex (#11749) 2025-09-18 22:10:30 +02:00
CODE_OF_CONDUCT.md doc: Add a CoC (#3366) 2023-09-20 19:38:44 +01:00
flake.lock [gha] Nix: update inputs 2025-10-03 19:52:11 +00:00
flake.nix ci: correct tar command for xz compression & fix typos (#11213) 2025-07-25 17:19:23 +02:00
hyprland.pc.in Core: Move to aquamarine (#6608) 2024-07-21 13:09:54 +02:00
LICENSE LICENSE: Update year (#11301) 2025-08-01 11:17:46 +02:00
Makefile internal: Solitary clients with single subsurface & verbose solitary/tearing/DS checks (#11228) 2025-08-22 18:24:25 +01:00
meson.build renderer: asynchronously load background tex (#11749) 2025-09-18 22:10:30 +02:00
meson_options.txt core: drop the legacy renderer (#10408) 2025-05-15 10:13:24 +01:00
README.md README: add link to CI from badge (#11085) 2025-07-18 21:13:56 +03:00
SECURITY.md SECURITY: init security policy 2025-04-27 00:07:00 +02:00
VERSION version: bump to 0.51.0 2025-09-10 13:41:05 +01: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