A read-only mirror of https://github.com/hyprwm/Hyprland
Find a file
Tom Englund 7c7a84ff60
internal: more profiling less calls and local copies (#8300)
* compositor: reduce amount of window box copies

mousemoveunified can call this very frequently, the cbox copying
actually shows up as an impact in such cases, move it down in the scope
and only do it when necessery.

* core: constify and reference frequent calls

profiling shows these as frequent called functions try to reduce the
amount of copies with references and const the variables.

* pointermgr: remove not used local copy, const ref

remove unneded local copies and const ref cursorsize.

* inputmgr: reduce amount of calls to vectortowindow

the amount of calls to g_pCompositor->vectorToWindowUnified fast ramps
up in cpu usage with enough windows existing and moving the mouse, move
the PWINDOWIDEAL up and reuse it if its already the same.

* protocol: compositor remove unused local copy

remove unused local copy of accumulateCurrentBufferDamage and const
previousBuffer.

* renderer: reduce scope of variables and refactor

move a few variables down in their scopes to reduce the amount of calls
and copies when not needed, also add one more for loop in
renderWorkspaceWindows and store the windows in a vector with
weakpointers that should be rendered, this adds a loop but reduces the
amount of repeated calls to shouldRenderWindow and also makes the rest
of the loops go over way smaller vector when many windows exist.
2024-10-30 23:20:32 +00:00
.github CI/release: remove script backup line 2024-10-09 12:00:43 +03:00
assets Meson: format 2024-09-11 19:09:17 +03:00
docs misc: Fix bad links to wiki (#8240) 2024-10-26 16:50:31 +01:00
example Build with hyprland-session.service (#8251) 2024-10-26 22:49:00 +03:00
hyprctl hyprctl: convert std::cout and std::cerr to std::println() 2024-10-13 14:13:56 +01:00
hyprpm hyprpm: Add option to notify on fail and keep original notify (#8167) 2024-10-22 00:28:42 +01:00
nix feat: add a custom made treewide formatter (#7992) 2024-10-07 21:49:19 +03:00
protocols protocols: Add support for hyprland-ctm-control-v1 (#8023) 2024-10-08 16:59:15 +01:00
scripts Fix static asan patch 2024-08-21 23:09:13 +03:00
src internal: more profiling less calls and local copies (#8300) 2024-10-30 23:20:32 +00:00
subprojects screencopy: fix screencopy frames not being cleaned up (#8017) 2024-10-08 01:23:48 +01:00
systemd Build with hyprland-session.service (#8251) 2024-10-26 22:49:00 +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
.gitattributes Initial commit 2022-03-16 20:49:02 +01:00
.gitignore feat: add a custom made treewide formatter (#7992) 2024-10-07 21:49:19 +03:00
.gitmodules Core: Move to aquamarine (#6608) 2024-07-21 13:09:54 +02:00
CMakeLists.txt Build with hyprland-session.service (#8251) 2024-10-26 22:49:00 +03:00
CODE_OF_CONDUCT.md doc: Add a CoC (#3366) 2023-09-20 19:38:44 +01:00
flake.lock updated flake.lock 2024-10-23 07:19:55 +03:00
flake.nix feat: add a custom made treewide formatter (#7992) 2024-10-07 21:49:19 +03: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 Makefile: fix legacyrendererdebug typo (#8214) 2024-10-23 23:32:39 +03:00
meson.build Build with hyprland-session.service (#8251) 2024-10-26 22:49:00 +03:00
meson_options.txt Meson: add tracy dependency 2024-09-27 00:07:52 +03:00
README.md misc: Fix bad links to wiki (#8240) 2024-10-26 16:50:31 +01:00
VERSION version: bump to 0.44.0 2024-10-06 12:04:13 +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