28 stdenv.mkDerivation (finalAttrs: {
32 src = fetchFromGitHub {
35 rev = "v${finalAttrs.version}";
36 hash = "sha256-fK/g6DhcxJMvxujZDZXs1yXRu2FGZQKmhxw7/czAQiY=";
40 # Remove when https://github.com/mattkae/miracle-wm/pull/211 merged & in release
42 name = "0001-miracle-wm-Dont-ignore-PKG_CONFIG_PATH.patch";
43 url = "https://github.com/mattkae/miracle-wm/commit/a9fe6ed1e7dc605f72e18cdc2d19afb3c187be3a.patch";
44 hash = "sha256-zzOwqUjyZGYIy/3BvOiedfCubrqaeglvsAzTXyq3wYU=";
50 substituteInPlace session/usr/local/share/wayland-sessions/miracle-wm.desktop.in \
51 --replace-fail '@CMAKE_INSTALL_FULL_BINDIR@/miracle-wm' 'miracle-wm'
53 + lib.optionalString (!finalAttrs.finalPackage.doCheck) ''
54 substituteInPlace CMakeLists.txt \
55 --replace-fail 'add_subdirectory(tests/)' ""
60 # Source has a path "session/usr/local/...", don't break references to that
86 checkInputs = [ gtest ];
88 doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
93 ./bin/miracle-wm-tests
99 updateScript = gitUpdater { rev-prefix = "v"; };
100 providedSessions = [ "miracle-wm" ];
101 tests.vm = nixosTests.miracle-wm;
105 description = "Tiling Wayland compositor based on Mir";
107 miracle-wm is a Wayland compositor based on Mir. It features a tiling window manager at its core, very much in
108 the style of i3 and sway. The intention is to build a compositor that is flashier and more feature-rich than
109 either of those compositors, like swayfx.
111 See the user guide for info on how to use miracle-wm: https://github.com/mattkae/miracle-wm/blob/v${finalAttrs.version}/USERGUIDE.md
113 homepage = "https://github.com/mattkae/miracle-wm";
114 license = licenses.gpl3Only;
115 mainProgram = "miracle-wm";
116 maintainers = with maintainers; [ OPNA2608 ];
117 platforms = platforms.linux;