summary refs log tree commit diff
path: root/pkgs/applications/window-managers/wayfire/wf-shell.nix
blob: 5bddd954f0d9b6476aa2bac6b37a187649dbdc73 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
{ stdenv, lib, fetchurl, fetchpatch, meson, ninja, pkg-config, wayland, git
, alsaLib, gnome3, gtk-layer-shell, pulseaudio, wayfire, wf-config
}:

stdenv.mkDerivation rec {
  pname = "wf-shell";
  version = "0.4.0";

  # > Note to packagers: do not use the autogenerated "Source code"
  # > archives from GitHub, but the wf-shell-0.4.0.tar.xz file.
  src = fetchurl {
    url = "https://github.com/WayfireWM/wf-shell/releases/download/${version}/wf-shell-${version}.tar.xz";
    sha256 = "184sdbfqisz96r0k9dmp8vc1arw9bs7nhkv3pbv9pxkj5liya0xw";
  };

  patches = [
    # Use the wf::config::build_configuration API as modified by the
    # corresponding wf-config patch.  Remove if
    # <https://github.com/WayfireWM/wf-shell/pull/52> is applied
    # upstream.
    (fetchpatch {
      url = "https://github.com/WayfireWM/wf-shell/commit/078f7d845f39689906d008d857681416c312991a.patch";
      sha256 = "0bgkm9sv9y2y4iyhga453vnffbyi8zy2by3fkhakpjlrzx9qlzza";
    })

    # Allow wf-shell to be installed into its own prefix, rather than
    # wayfire's.  Remove if
    # <https://github.com/WayfireWM/wf-shell/pull/53> is applied
    # upstream.
    (fetchpatch {
      url = "https://github.com/WayfireWM/wf-shell/commit/482f00455f0b0e08e3fffc844c865e43c80df84b.patch";
      sha256 = "0zcwgshdd5d03fnkz30nmpzv0xv3085iqjmn61r05bin8v2b2b2h";
    })

    # Generate and install a wf-shell.pc file, so that other packages
    # can find wf-shell's metadata directory, rather than assuming
    # it's the same as Wayfire's.  Remove if
    # <https://github.com/WayfireWM/wf-shell/pull/54> is applied
    # upstream.
    (fetchpatch {
      url = "https://github.com/WayfireWM/wf-shell/commit/2c97d63cde3fd683f3b4159f459a5116e1a539f3.patch";
      sha256 = "0pfi6x1ddm9bbhmy48bxmgvqpl754d3f7q91703mzfza0rlwpr4q";
    })
  ];

  strictDeps = true;
  nativeBuildInputs = [ meson ninja pkg-config wayland git ];
  buildInputs = [
    alsaLib gnome3.gtkmm gtk-layer-shell pulseaudio wayfire wf-config
  ];

  mesonFlags = [ "--sysconfdir" "/etc" ];

  meta = with lib; {
    homepage = "https://github.com/WayfireWM/wf-shell";
    description = "GTK3-based panel for Wayfire";
    license = licenses.mit;
    maintainers = with maintainers; [ qyliss wucke13 ];
    platforms = platforms.unix;
  };
}