diff --git a/pkgs/applications/window-managers/wayfire/default.nix b/pkgs/applications/window-managers/wayfire/default.nix new file mode 100644 index 0000000000000..89140fdca746a --- /dev/null +++ b/pkgs/applications/window-managers/wayfire/default.nix @@ -0,0 +1,60 @@ +{ stdenv +, fetchFromGitHub +, meson +, ninja +, pkgconfig +, cairo +, glm +, libdrm +, libevdev +, libexecinfo +, libinput +, libjpeg +, libnotify +, libxkbcommon +, wayland +, wayland-protocols +, wf-config +, wlroots +}: + +stdenv.mkDerivation rec { + pname = "wayfire"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "WayfireWM"; + repo = pname; + rev = version; + sha256 = "01rfkb7m1b4d0a9ph9c9jzaa7q6xa91i2ygd3xcnkz35b35qcxn2"; + }; + + nativeBuildInputs = [ + meson + ninja + pkgconfig + ]; + + buildInputs = [ + cairo + glm + libdrm + libexecinfo + libinput + libjpeg + libnotify.dev + libxkbcommon + wayland + wayland-protocols + wf-config + wlroots + ]; + + meta = with stdenv.lib; { + description = "3D wayland compositor"; + homepage = "https://wayfire.org/"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ Thra11 wucke13 ]; + }; +} diff --git a/pkgs/applications/window-managers/wayfire/wcm.nix b/pkgs/applications/window-managers/wayfire/wcm.nix new file mode 100644 index 0000000000000..9564f2fd08eec --- /dev/null +++ b/pkgs/applications/window-managers/wayfire/wcm.nix @@ -0,0 +1,64 @@ +{ stdenv +, fetchFromGitHub +, buildEnv +, meson +, ninja +, pkgconfig +, wrapGAppsHook +, glm +, gtkmm3 +, libevdev +, libxml2 +, wayfire +, wayland +, wayland-protocols +, wf-config +, wf-shell +}: + +let + env = buildEnv { + name = "metadata"; + paths = [ "${wayfire}/share/wayfire/metadata" "${wf-shell}/share/wayfire/metadata" ]; + }; +in stdenv.mkDerivation rec { + pname = "wcm"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "WayfireWM"; + repo = pname; + rev = version; + sha256 = "0irypa0814nmsmi9s8wxwfs507w41g41zjv8dkp0fdhg0429zxwa"; + }; + + nativeBuildInputs = [ + meson + ninja + pkgconfig + wrapGAppsHook + ]; + + buildInputs = [ + glm + gtkmm3 + libevdev + libxml2 + wayfire + wayland + wayland-protocols + wf-config + ]; + + prePatch = '' + sed "s|wayfire.get_variable(pkgconfig: 'metadatadir')|'${env}'|g" -i meson.build + ''; + + meta = with stdenv.lib; { + description = "Wayfire Config Manager"; + homepage = "https://wayfire.org/"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ Thra11 wucke13 ]; + }; +} diff --git a/pkgs/applications/window-managers/wayfire/wf-config.nix b/pkgs/applications/window-managers/wayfire/wf-config.nix new file mode 100644 index 0000000000000..3609e26b1a211 --- /dev/null +++ b/pkgs/applications/window-managers/wayfire/wf-config.nix @@ -0,0 +1,43 @@ +{ stdenv +, fetchFromGitHub +, meson +, ninja +, pkgconfig +, glm +, libevdev +, libxml2 +, wlroots +}: + +stdenv.mkDerivation rec { + pname = "wf-config"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "WayfireWM"; + repo = pname; + rev = version; + sha256 = "0pb2v71x0dv9s96wi20d9bc9rlxzr85rba7vny6751j7frqr4xf7"; + }; + + nativeBuildInputs = [ + meson + ninja + pkgconfig + ]; + + buildInputs = [ + glm + libevdev + libxml2.dev + wlroots + ]; + + meta = with stdenv.lib; { + description = "A library for managing configuration files, written for wayfire"; + homepage = "https://wayfire.org/"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ Thra11 wucke13 ]; + }; +} diff --git a/pkgs/applications/window-managers/wayfire/wf-shell.nix b/pkgs/applications/window-managers/wayfire/wf-shell.nix new file mode 100644 index 0000000000000..7c67059b22265 --- /dev/null +++ b/pkgs/applications/window-managers/wayfire/wf-shell.nix @@ -0,0 +1,69 @@ +{ stdenv +, fetchFromGitHub +, fetchFromGitLab +, git +, meson +, ninja +, pkgconfig +, wrapGAppsHook +, alsaLib +, glm +, gobject-introspection +, gtk-layer-shell +, gtkmm3 +, libjpeg +, libnotify +, libpulseaudio +, wayfire +, wayland +, wayland-protocols +, wf-config +}: + +stdenv.mkDerivation rec { + pname = "wf-shell"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "WayfireWM"; + repo = pname; + rev = version; + fetchSubmodules = true; + sha256 = "0kfr1gw0pkd3jvb9qh2hhc9xb0n407jn4l4fzzvj6rqrrzfg3a58"; + }; + + nativeBuildInputs = [ + git + meson + ninja + pkgconfig + wrapGAppsHook + ]; + + buildInputs = [ + alsaLib + glm + gobject-introspection + gtk-layer-shell + gtkmm3 + libjpeg + libnotify + libpulseaudio + wayfire + wayland + wayland-protocols + wf-config + ]; + + prePatch = '' + sed "s|wayfire.get_variable(pkgconfig: 'metadatadir')|'$out/share/wayfire/metadata'|g" -i meson.build + ''; + + meta = with stdenv.lib; { + description = "A GTK3-based panel for wayfire"; + homepage = "https://wayfire.org/"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ Thra11 wucke13 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9dfec26c8b280..edbed2e0dba8a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22453,6 +22453,11 @@ in way-cooler = throw ("way-cooler is abandoned by its author: " + "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"); + wcm = callPackage ../applications/window-managers/wayfire/wcm.nix { }; + wf-config = callPackage ../applications/window-managers/wayfire/wf-config.nix { }; + wayfire = callPackage ../applications/window-managers/wayfire { }; + wf-shell = callPackage ../applications/window-managers/wayfire/wf-shell.nix { }; + waypipe = callPackage ../applications/networking/remote/waypipe { }; wayv = callPackage ../tools/X11/wayv {};