diff options
Diffstat (limited to 'gui-wm')
-rw-r--r-- | gui-wm/wayfire/files/wayfire-session-2 | 26 | ||||
-rw-r--r-- | gui-wm/wayfire/files/wayfire.env | 2 | ||||
-rw-r--r-- | gui-wm/wayfire/wayfire-0.8.1-r2.ebuild | 102 |
3 files changed, 130 insertions, 0 deletions
diff --git a/gui-wm/wayfire/files/wayfire-session-2 b/gui-wm/wayfire/files/wayfire-session-2 new file mode 100644 index 000000000000..0713ca0bbb93 --- /dev/null +++ b/gui-wm/wayfire/files/wayfire-session-2 @@ -0,0 +1,26 @@ +#!/bin/bash + +# output to syslog and stderr +# with PID and syslog identity 'wayfire' +exec 1> >(logger --id=$$ --stderr --tag wayfire) 2>&1 + +# if undefined, or empty, set to freedesktop specification defaults +[ -z "$XDG_DATA_DIRS" ] && export XDG_DATA_DIRS="/usr/local/share:/usr/share" + +# freedesktop specifications mandate that the definition +# of XDG_SESSION_TYPE should be respected +export XDG_SESSION_TYPE=wayland +export GDK_BACKEND=wayland +export QT_QPA_PLATFORM=wayland +export MOZ_ENABLE_WAYLAND=1 + +# copy wayfire.ini to $HOME/.config/ if not already there +configdir="${XDG_CONFIG_HOME:=${HOME}/.config}" +if [[ ! -f ${configdir}/wayfire.ini ]]; then + cp /usr/share/wayfire/wayfire.ini "${configdir}" +fi + +# override or add environment variables +[[ -f @EPREFIX@/etc/wayfire.env ]] && . @EPREFIX@/etc/wayfire.env + +exec @DBUS_RUN_SESSION@ @EPREFIX@/usr/bin/wayfire "$@" diff --git a/gui-wm/wayfire/files/wayfire.env b/gui-wm/wayfire/files/wayfire.env new file mode 100644 index 000000000000..47ce61e3183c --- /dev/null +++ b/gui-wm/wayfire/files/wayfire.env @@ -0,0 +1,2 @@ +# Uncomment if the mouse cursor is invisible: +#export WLR_NO_HARDWARE_CURSORS=1 diff --git a/gui-wm/wayfire/wayfire-0.8.1-r2.ebuild b/gui-wm/wayfire/wayfire-0.8.1-r2.ebuild new file mode 100644 index 000000000000..ff1a84e65576 --- /dev/null +++ b/gui-wm/wayfire/wayfire-0.8.1-r2.ebuild @@ -0,0 +1,102 @@ +# Copyright 2019-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson + +DESCRIPTION="compiz like 3D wayland compositor" +HOMEPAGE="https://github.com/WayfireWM/wayfire" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/WayfireWM/${PN}.git" + SLOT="0/0.8" +else + SRC_URI="https://github.com/WayfireWM/${PN}/releases/download/v${PV}/${P}.tar.xz" + KEYWORDS="~amd64 ~arm64 ~riscv" + SLOT="0/$(ver_cut 1-2)" +fi + +LICENSE="MIT" +IUSE="+dbus +gles3 test X" +RESTRICT="!test? ( test )" + +# bundled wlroots has the following dependency string according to included headers. +# wlroots[drm,gles2-renderer,libinput,x11-backend?,X?] +# enable x11-backend with X and vice versa +CDEPEND=" + dev-cpp/nlohmann_json + dev-libs/glib:2 + dev-libs/libevdev + >=dev-libs/libinput-1.7.0:= + dev-libs/wayland + >=dev-libs/wayland-protocols-1.12 + gui-libs/wf-config:${SLOT} + gui-libs/wlroots:0/17[drm(+),libinput(+),x11-backend,X?] + media-libs/glm + media-libs/libglvnd + media-libs/libjpeg-turbo:= + media-libs/libpng:= + x11-libs/cairo + x11-libs/libxkbcommon + x11-libs/pango + x11-libs/pixman + dbus? ( sys-apps/dbus ) + X? ( x11-libs/libxcb:= ) +" + +RDEPEND=" + ${CDEPEND} + x11-misc/xkeyboard-config +" +DEPEND=" + ${CDEPEND} + test? ( dev-cpp/doctest ) +" +BDEPEND=" + dev-util/wayland-scanner + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/wayfire-0.8.0-dont-use-installed-config-h.patch" +) + +src_prepare() { + default + + local dbusrunsession=$(usev dbus dbus-run-session) + sed -e "s:@EPREFIX@:${EPREFIX}:g" -e "s:@DBUS_RUN_SESSION@:${dbusrunsession}:" \ + "${FILESDIR}"/wayfire-session-2 > "${T}"/wayfire-session || die + sed -e "s:@EPREFIX@:${EPREFIX}:" \ + "${FILESDIR}"/wayfire-session.desktop > "${T}"/wayfire-session.desktop || die +} + +src_configure() { + local emesonargs=( + $(meson_feature test tests) + $(meson_feature X xwayland) + $(meson_use gles3 enable_gles32) + -Duse_system_wfconfig=enabled + -Duse_system_wlroots=enabled + ) + + meson_src_configure +} + +src_install() { + meson_src_install + dobin "${T}"/wayfire-session + + insinto "/usr/share/wayland-sessions/" + insopts -m644 + doins wayfire.desktop + doins "${T}"/wayfire-session.desktop + + insinto "/usr/share/wayfire/" + doins wayfire.ini + + insinto "/etc" + doins "${FILESDIR}"/wayfire.env +} |