Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / window-managers / cage / default.nix
blobc94263f816125a75aab68b9f1a9cefd6564c4e7e
1 { lib, stdenv, fetchFromGitHub
2 , meson, ninja, pkg-config, wayland-scanner, scdoc, makeWrapper
3 , wlroots, wayland, wayland-protocols, pixman, libxkbcommon, xcbutilwm
4 , systemd, libGL, libX11, mesa
5 , xwayland ? null
6 , nixosTests
7 }:
9 stdenv.mkDerivation rec {
10   pname = "cage";
11   version = "0.1.5";
13   src = fetchFromGitHub {
14     owner = "Hjdskes";
15     repo = "cage";
16     rev = "v${version}";
17     hash = "sha256-Suq14YRw/MReDRvO/TQqjpZvpzAEDnHUyVbQj0BPT4c=";
18   };
20   depsBuildBuild = [
21     pkg-config
22   ];
24   nativeBuildInputs = [ meson ninja pkg-config wayland-scanner scdoc makeWrapper ];
26   buildInputs = [
27     wlroots wayland wayland-protocols pixman libxkbcommon xcbutilwm
28     mesa # for libEGL headers
29     systemd libGL libX11
30   ];
32   mesonFlags = [ "-Dxwayland=${lib.boolToString (xwayland != null)}" ];
34   postFixup = lib.optionalString (xwayland != null) ''
35     wrapProgram $out/bin/cage --prefix PATH : "${xwayland}/bin"
36   '';
38   # Tests Cage using the NixOS module by launching xterm:
39   passthru.tests.basic-nixos-module-functionality = nixosTests.cage;
41   meta = with lib; {
42     description = "A Wayland kiosk that runs a single, maximized application";
43     homepage    = "https://www.hjdskes.nl/projects/cage/";
44     license     = licenses.mit;
45     platforms   = platforms.linux;
46     maintainers = with maintainers; [ primeos ];
47     mainProgram = "cage";
48   };