1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 autoreconfHook,
6 glib,
7 intltool,
8 libfm,
9 libX11,
10 pango,
11 pkg-config,
12 wrapGAppsHook3,
13 adwaita-icon-theme,
14 withGtk3 ? true,
15 gtk2,
16 gtk3,
17 gettext,
18 nix-update-script,
19}:
20
21let
22 libfm' = libfm.override { inherit withGtk3; };
23 gtk = if withGtk3 then gtk3 else gtk2;
24 inherit (lib) optional;
25in
26stdenv.mkDerivation (finalAttrs: {
27 pname = "pcmanfm";
28 version = "1.4.0";
29
30 src = fetchFromGitHub {
31 owner = "lxde";
32 repo = "pcmanfm";
33 tag = "${finalAttrs.version}";
34 hash = "sha256-4kJDCnld//Vbe2KbrLoYZJ/dutagY/GImoOnbpQIdDY=";
35 };
36
37 nativeBuildInputs = [
38 pkg-config
39 wrapGAppsHook3
40 intltool
41 autoreconfHook
42 ];
43
44 buildInputs = [
45 glib
46 gtk
47 libfm'
48 libX11
49 pango
50 adwaita-icon-theme
51 ];
52
53 env.ACLOCAL = "aclocal -I ${gettext}/share/gettext/m4";
54
55 configureFlags = optional withGtk3 "--with-gtk=3";
56
57 passthru.updateScript = nix-update-script { };
58
59 meta = {
60 homepage = "https://blog.lxde.org/category/pcmanfm/";
61 license = lib.licenses.gpl2Plus;
62 description = "File manager with GTK interface";
63 maintainers = [ lib.maintainers.ttuegel ];
64 platforms = lib.platforms.linux;
65 mainProgram = "pcmanfm";
66 };
67})