A read-only mirror of https://github.com/hyprwm/Hyprland
Go to file
Jan Beich 609c7ab6b5
Unbreak CMake build on FreeBSD (#2209)
* cmake: unbreak on non-GNU after 474ada9267

CMake Error at CMakeLists.txt:121 (target_link_libraries):
  The keyword signature for target_link_libraries has already been used with
  the target "Hyprland".  All uses of target_link_libraries with a target
  must be either all-keyword or all-plain.

  The uses of the keyword signature are here:

   * CMakeLists.txt:107 (target_link_libraries)

Fixes https://github.com/hyprwm/Hyprland/issues/1780

* cmake: always link with dependencies via imported targets

On BSD systems base compiler by default only looks for headers and
libraries from base system. For dependencies from packages extra flags
are necessary.

ld: error: unable to find library -lxcb
ld: error: unable to find library -lpixman-1
ld: error: unable to find library -lOpenGL
ld: error: unable to find library -lGLESv2

* make: use same make in recursive calls

On BSDs `make` is BSD make while `gmake` is GNU make

* make: work around GNU vs. BSD sed -i incompatibility

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254091

* make: replace GNU make extension with POSIX sh

`$(shell ...)` in GNU make is similar to `${:!..!}` in BSD make

* make: fall back when nproc isn't available

Only FreeBSD added nproc for compatibility with Linux.

* make: unbreak hyprctl on Clang-based systems

/bin/sh: g++: not found
error: invalid value 'c++23' in '-std=c++23'

* make: create lib/ before copying libwlroots.so there

$ make install PREFIX=/tmp/test
[...]
cp: directory /tmp/test/lib does not exist

* make: pass cp(1) flags before arguments

cp: -f is not a directory

* make: replace install -Dt with mkdir

install: illegal option -- t

* make: replace cp --parents with cpio -dump

cp: illegal option -- -

* make: limit pkg-config workaround to Linux when run as root

/usr/share/pkgconfig doesn't exist on BSDs or may not be writable.
2023-05-02 14:38:36 +01:00
.github internal: add tag to version, send hash in release ci 2023-04-27 14:28:40 +01:00
assets updated-hyprland.png 2022-07-21 12:31:24 +05:30
docs [gha] build man pages 2023-04-03 22:47:26 +00:00
example examples: pull correct wlr dirs in example plugin 2023-04-01 02:22:52 +01:00
hyprctl Unbreak CMake build on FreeBSD (#2209) 2023-05-02 14:38:36 +01:00
nix Plugin header overhaul (#2087) 2023-04-27 00:59:16 +03:00
protocols Plugin header overhaul (#2087) 2023-04-27 00:59:16 +03:00
src Added some workspace-specific rules (#1986) 2023-05-01 22:28:27 +01:00
subprojects deps: update wlroots 2023-04-26 17:23:50 +01:00
.clang-format touch up the clang format and format all files 2022-12-20 02:18:47 +00:00
.gitattributes Initial commit 2022-03-16 20:49:02 +01:00
.gitignore Plugin System (#1590) 2023-02-27 12:32:38 +00:00
.gitmodules Plugin System (#1590) 2023-02-27 12:32:38 +00:00
CMakeLists.txt Unbreak CMake build on FreeBSD (#2209) 2023-05-02 14:38:36 +01:00
LICENSE update license on main branch (#1604) 2023-02-21 19:01:40 +00:00
Makefile Unbreak CMake build on FreeBSD (#2209) 2023-05-02 14:38:36 +01:00
README.md Readme: update to mention plugins 2023-03-14 21:56:31 +00:00
flake.lock flake.lock: update nixpkgs 2023-04-28 19:59:31 +03:00
flake.nix flake.nix: override wayland 2023-04-24 01:22:26 +03:00
hyprland.pc.in Prefer bundled wlroots headers to system ones (#2204) 2023-05-01 13:42:16 +01:00
meson.build Meson: add subdirs to pkg-config file 2023-04-27 01:34:40 +03:00
meson_options.txt Fix nix build options 2023-03-27 11:00:37 +03:00
props.json props: bump to 0.24.1 2023-04-09 18:12:00 +01:00

README.md

banner

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


Hyprland is a dynamic tiling Wayland compositor based on wlroots that doesn't sacrifice on its looks.

It supports multiple layouts, fancy effects, has a very flexible IPC model allowing for a lot of customization, a powerful plugin system and more.



Install

Quick Start

Configure

Contribute



Notice

Hyprland is still in pretty early development compared to some other Wayland compositors.

Although Hyprland is pretty stable, it may have some bugs.

Features

  • Easily expandable and readable codebase
  • Plugin support
  • Config reloaded instantly upon saving
  • Custom bezier curve based animations
  • Dual Kawase blur
  • Drop shadows
  • Rounded corners
  • Gradient borders
  • Fully dynamic workspaces
  • Closely follows wlroots-git
  • Global keybinds passed to your apps of choice
  • A lot of customization
  • Bundled wlroots
  • Window/layer fade in/out
  • Tiling/pseudotiling/floating/fullscreen windows
  • Switching workspaces between window modes on the fly
  • Special workspaces (scratchpads)
  • Window/monitor rules
  • Socket-based IPC
  • wlr_ext workspaces protocol support
  • Event system for bash scripts
  • Full damage tracking
  • Docks support
  • Drawing tablet support
  • Native IME + Input panels support
  • and much more...


Gallery


Preview A


Preview B


Preview C



Stars Over Time


Stars Preview



Special Thanks


wlroots - For their amazing library

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