writers: add writeGuile[Bin] (#364531)
[NixPkgs.git] / pkgs / applications / window-managers / cage / default.nix
blob69db37cbc951185ded668a1465f6133cddd34d6f
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   meson,
6   ninja,
7   pkg-config,
8   wayland-scanner,
9   scdoc,
10   makeWrapper,
11   wlroots,
12   wayland,
13   wayland-protocols,
14   pixman,
15   libxkbcommon,
16   xcbutilwm,
17   systemd,
18   libGL,
19   libX11,
20   mesa,
21   xwayland ? null,
22   nixosTests,
25 stdenv.mkDerivation rec {
26   pname = "cage";
27   version = "0.2.0";
29   src = fetchFromGitHub {
30     owner = "cage-kiosk";
31     repo = "cage";
32     rev = "refs/tags/v${version}";
33     hash = "sha256-2SFtz62z0EF8cpFTC6wGi125MD4a5mkXqP/C+7fH+3g=";
34   };
36   depsBuildBuild = [
37     pkg-config
38   ];
40   nativeBuildInputs = [
41     meson
42     ninja
43     pkg-config
44     wayland-scanner
45     scdoc
46     makeWrapper
47   ];
49   buildInputs = [
50     wlroots
51     wayland
52     wayland-protocols
53     pixman
54     libxkbcommon
55     xcbutilwm
56     mesa # for libEGL headers
57     systemd
58     libGL
59     libX11
60   ];
62   postFixup = lib.optionalString wlroots.enableXWayland ''
63     wrapProgram $out/bin/cage --prefix PATH : "${xwayland}/bin"
64   '';
66   # Tests Cage using the NixOS module by launching xterm:
67   passthru.tests.basic-nixos-module-functionality = nixosTests.cage;
69   meta = with lib; {
70     description = "Wayland kiosk that runs a single, maximized application";
71     homepage = "https://www.hjdskes.nl/projects/cage/";
72     license = licenses.mit;
73     platforms = platforms.linux;
74     maintainers = with maintainers; [ primeos ];
75     mainProgram = "cage";
76   };