Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / misc / variety / default.nix
bloba5a2085fbf34081e5526c1c2042ee6c7117db072
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , gexiv2
5 , gobject-introspection
6 , gtk3
7 , hicolor-icon-theme
8 , intltool
9 , libnotify
10 , librsvg
11 , python3
12 , runtimeShell
13 , wrapGAppsHook
14 , fehSupport ? false
15 , feh
16 , imagemagickSupport ? true
17 , imagemagick
18 , appindicatorSupport ? true
19 , libayatana-appindicator
22 python3.pkgs.buildPythonApplication rec {
23   pname = "variety";
24   version = "0.8.10";
26   src = fetchFromGitHub {
27     owner = "varietywalls";
28     repo = "variety";
29     rev = "refs/tags/${version}";
30     hash = "sha256-Uln0uoaEZgV9FN3HEBTeFOD7d6RkAQLgQZw7bcgu26A=";
31   };
33   nativeBuildInputs = [
34     intltool
35     wrapGAppsHook
36     gobject-introspection
37   ];
39   buildInputs = [
40     gexiv2
41     gtk3
42     hicolor-icon-theme
43     libnotify
44     librsvg
45   ]
46   ++ lib.optional appindicatorSupport libayatana-appindicator;
48   propagatedBuildInputs = with python3.pkgs; [
49     beautifulsoup4
50     configobj
51     dbus-python
52     distutils-extra
53     httplib2
54     lxml
55     pillow
56     pycairo
57     pygobject3
58     requests
59     setuptools
60   ]
61   ++ lib.optional fehSupport feh
62   ++ lib.optional imagemagickSupport imagemagick;
64   doCheck = false;
66   # Prevent double wrapping, let the Python wrapper use the args in preFixup.
67   dontWrapGApps = true;
69   preFixup = ''
70     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
71   '';
73   prePatch = ''
74     substituteInPlace variety_lib/varietyconfig.py \
75       --replace "__variety_data_directory__ = \"../data\"" \
76                 "__variety_data_directory__ = \"$out/share/variety\""
77     substituteInPlace variety/VarietyWindow.py \
78       --replace '[script,' '["${runtimeShell}", script,' \
79       --replace 'check_output(script)' 'check_output(["${runtimeShell}", script])'
80   '';
82   meta = with lib; {
83     homepage = "https://github.com/varietywalls/variety";
84     description = "A wallpaper manager for Linux systems";
85     longDescription = ''
86       Variety is a wallpaper manager for Linux systems. It supports numerous
87       desktops and wallpaper sources, including local files and online services:
88       Flickr, Wallhaven, Unsplash, and more.
90       Where supported, Variety sits as a tray icon to allow easy pausing and
91       resuming. Otherwise, its desktop entry menu provides a similar set of
92       options.
94       Variety also includes a range of image effects, such as oil painting and
95       blur, as well as options to layer quotes and a clock onto the background.
96     '';
97     license = licenses.gpl3Plus;
98     maintainers = with maintainers; [ p3psi AndersonTorres zfnmxt ];
99   };