diff --git a/x11-wm/Makefile b/x11-wm/Makefile index 282b2c3ef57e..1aa4834cfc04 100644 --- a/x11-wm/Makefile +++ b/x11-wm/Makefile @@ -1,132 +1,133 @@ COMMENT = X11 window managers SUBDIR += afterstep SUBDIR += afterstep-stable SUBDIR += amiwm SUBDIR += antiwm SUBDIR += aphelia SUBDIR += awesome SUBDIR += awesome-vicious SUBDIR += bbkeys SUBDIR += bbpager SUBDIR += berry SUBDIR += blackbox SUBDIR += bspwm SUBDIR += cage SUBDIR += cagebreak SUBDIR += chamfer SUBDIR += compiz SUBDIR += compiz-plugins-extra SUBDIR += compiz-plugins-main SUBDIR += compiz-plugins-unsupported SUBDIR += compton SUBDIR += ctwm SUBDIR += cwm SUBDIR += devilspie SUBDIR += devilspie2 SUBDIR += durden SUBDIR += dwl SUBDIR += dwm SUBDIR += e16 SUBDIR += e16-docs SUBDIR += echinus SUBDIR += emerald SUBDIR += enlightenment SUBDIR += epplets SUBDIR += euclid-wm SUBDIR += evilwm SUBDIR += fbcmd SUBDIR += fluxbox SUBDIR += fluxter SUBDIR += flwm SUBDIR += fvwm2 SUBDIR += fvwm3 SUBDIR += gamescope SUBDIR += herbstluftwm SUBDIR += hikari SUBDIR += hs-xmonad + SUBDIR += hyprland SUBDIR += i3 SUBDIR += i3-gaps SUBDIR += icewm SUBDIR += ittywm SUBDIR += jewel SUBDIR += jwm SUBDIR += kickshaw SUBDIR += kwinft SUBDIR += labwc SUBDIR += larswm SUBDIR += leftwm SUBDIR += libcompizconfig SUBDIR += libdockapp SUBDIR += libwraster SUBDIR += lwm SUBDIR += lxappearance-obconf SUBDIR += lxqt SUBDIR += lxqt-panel SUBDIR += lxqt-session SUBDIR += lxsession SUBDIR += marco SUBDIR += mcwm SUBDIR += metacity SUBDIR += muffin SUBDIR += mutter SUBDIR += nscde SUBDIR += obconf SUBDIR += obconf-qt SUBDIR += obpager SUBDIR += openbox SUBDIR += oroborus SUBDIR += pager SUBDIR += peksystray SUBDIR += pekwm SUBDIR += phluid SUBDIR += phoc SUBDIR += picom SUBDIR += piewm SUBDIR += plasma5-kdecoration SUBDIR += plasma5-kwin SUBDIR += pwm SUBDIR += qtile SUBDIR += ratmen SUBDIR += ratpoison SUBDIR += river SUBDIR += rubygem-uh-layout SUBDIR += rubygem-uh-wm SUBDIR += sawfish SUBDIR += sdorfehs SUBDIR += selectwm SUBDIR += skippy-xd SUBDIR += spectrwm SUBDIR += stumpwm SUBDIR += subtle SUBDIR += sway SUBDIR += sway-devel SUBDIR += tinywm SUBDIR += transset SUBDIR += treewm SUBDIR += tvtwm SUBDIR += twm SUBDIR += vtwm SUBDIR += w9wm SUBDIR += wayfire SUBDIR += wayfire-plugins-extra SUBDIR += windowmaker SUBDIR += wm2 SUBDIR += wmakerconf SUBDIR += wmanager SUBDIR += wmanager-addons SUBDIR += wmconfig SUBDIR += wmii SUBDIR += wmii-devel SUBDIR += wmname SUBDIR += wmx SUBDIR += xcompmgr SUBDIR += xfce4 SUBDIR += xfce4-desktop SUBDIR += xfce4-panel SUBDIR += xfce4-panel-profiles SUBDIR += xfce4-session SUBDIR += xfce4-wm SUBDIR += yeahwm .include diff --git a/x11-wm/hyprland/Makefile b/x11-wm/hyprland/Makefile new file mode 100644 index 000000000000..e29c95a1452d --- /dev/null +++ b/x11-wm/hyprland/Makefile @@ -0,0 +1,49 @@ +PORTNAME= hyprland +DISTVERSIONPREFIX= v +DISTVERSION= 0.18.0beta +CATEGORIES= x11-wm wayland + +MAINTAINER= jbeich@FreeBSD.org +COMMENT= Dynamic tiling Wayland compositor that doesn't sacrifice on its looks #' +WWW= https://hyprland.org/ + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ + wayland-protocols>=1.25:graphics/wayland-protocols \ + wlroots>=0.16.0<0.17.0:x11-toolkits/wlroots +LIB_DEPENDS= libwayland-server.so:graphics/wayland \ + libwlroots.so:x11-toolkits/wlroots \ + libinput.so:x11/libinput \ + libxkbcommon.so:x11/libxkbcommon + +USES= compiler:c++11-lib gl gnome meson pkgconfig xorg +USE_GCC= 12+:build +USE_GITHUB= yes +USE_GL= egl gl +USE_GNOME= cairo +USE_XORG= pixman +GH_ACCOUNT= hyprwm +GH_PROJECT= Hyprland +LDFLAGS+= -static-libstdc++ -static-libgcc # avoid libc++ conflict + +OPTIONS_DEFINE= X11 +OPTIONS_DEFAULT=X11 + +X11_USE= XORG=xcb +X11_MESON_ENABLED= xwayland + +post-patch: +# Extract (snapshot) version from the port instead of meson.build + @${REINPLACE_CMD} -i .nogit -e "/GIT_BRANCH/s/run_command.*/'main'/" \ + -e "/GIT_COMMIT_HASH/s/run_command.*/'${DISTVERSIONFULL}'/" \ + -e "/GIT_COMMIT_MESSAGE/s/run_command.*/''/" \ + -e "/GIT_DIRTY/s/run_command.*/'portbld'/" \ + ${WRKSRC}/meson.build +# Respect PREFIX for wallpapers + @${REINPLACE_CMD} 's,/usr/share,${DATADIR:H},' \ + ${WRKSRC}/src/render/OpenGL.cpp + +.include "${.CURDIR:H:H}/x11-toolkits/wlroots-devel/override.mk" +.include diff --git a/x11-wm/hyprland/distinfo b/x11-wm/hyprland/distinfo new file mode 100644 index 000000000000..84b9c28bad08 --- /dev/null +++ b/x11-wm/hyprland/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1668612936 +SHA256 (hyprwm-Hyprland-v0.18.0beta_GH0.tar.gz) = 6b2c07263fbd874faa498d211f801191a947ea41b370cbd0f1fa0a58b7fe5a54 +SIZE (hyprwm-Hyprland-v0.18.0beta_GH0.tar.gz) = 686959 diff --git a/x11-wm/hyprland/files/patch-system-wlroots b/x11-wm/hyprland/files/patch-system-wlroots new file mode 100644 index 000000000000..aaf80e30da0c --- /dev/null +++ b/x11-wm/hyprland/files/patch-system-wlroots @@ -0,0 +1,26 @@ +Allow system wlroots to reduce maintenance (wlroots has tons of options) + +--- meson.build.orig 2022-11-07 12:16:30 UTC ++++ meson.build +@@ -37,8 +37,8 @@ add_project_arguments( + ], + language: 'cpp') + +-wlroots = subproject('wlroots', default_options: ['examples=false']) +-have_xwlr = wlroots.get_variable('features').get('xwayland') ++wlroots = dependency('wlroots', version: ['>=0.16.0', '<0.17.0'], default_options: ['examples=false']) ++have_xwlr = wlroots.get_variable(pkgconfig: 'have_xwayland', internal: 'have_xwayland') == 'true' + xcb_dep = dependency('xcb', required: get_option('xwayland')) + + if get_option('xwayland').enabled() and not have_xwlr +--- src/meson.build.orig 2022-11-07 12:16:30 UTC ++++ src/meson.build +@@ -7,7 +7,7 @@ executable('Hyprland', src, + server_protos, + dependency('wayland-server'), + dependency('wayland-client'), +- wlroots.get_variable('wlroots'), ++ wlroots, + dependency('cairo'), + dependency('pango'), + dependency('pangocairo'), diff --git a/x11-wm/hyprland/pkg-descr b/x11-wm/hyprland/pkg-descr new file mode 100644 index 000000000000..20c74f73f889 --- /dev/null +++ b/x11-wm/hyprland/pkg-descr @@ -0,0 +1,5 @@ +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, and more. diff --git a/x11-wm/hyprland/pkg-plist b/x11-wm/hyprland/pkg-plist new file mode 100644 index 000000000000..3c6d77e4eefd --- /dev/null +++ b/x11-wm/hyprland/pkg-plist @@ -0,0 +1,9 @@ +bin/Hyprland +bin/hyprctl +man/man1/Hyprland.1.gz +man/man1/hyprctl.1.gz +%%DATADIR%%/hyprland.conf +%%DATADIR%%/wall_2K.png +%%DATADIR%%/wall_4K.png +%%DATADIR%%/wall_8K.png +share/wayland-sessions/hyprland.desktop