1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 gobject-introspection,
6 gtk3,
7 imagemagick,
8 keyring,
9 librsvg,
10 pulseaudio,
11 pytest-asyncio,
12 pytest-lazy-fixture,
13 pytestCheckHook,
14 qtile,
15 requests,
16 setuptools-scm,
17 xorgserver,
18}:
19
20buildPythonPackage rec {
21 pname = "qtile-extras";
22 version = "0.25.0";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "elParaguayo";
27 repo = "qtile-extras";
28 rev = "refs/tags/v${version}";
29 hash = "sha256-OYzSKOVg4D5gKxaEreclYq3D16dl8ddLipSdifokDNY=";
30 };
31
32 build-system = [ setuptools-scm ];
33
34 dependencies = [ gtk3 ];
35
36 nativeCheckInputs = [
37 gobject-introspection
38 imagemagick
39 keyring
40 pulseaudio
41 pytest-asyncio
42 pytest-lazy-fixture
43 pytestCheckHook
44 qtile
45 requests
46 xorgserver
47 # stravalib # marked as broken due to https://github.com/stravalib/stravalib/issues/379
48 ];
49
50 disabledTests = [
51 # Needs a running DBUS
52 "test_brightness_power_saving"
53 "test_global_menu"
54 "test_mpris2_popup"
55 "test_statusnotifier_menu"
56 # No network connection
57 "test_wifiicon_internet_check"
58 # Image difference is outside tolerance
59 "test_decoration_output"
60 # Needs Github token
61 "test_githubnotifications_reload_token"
62 # AttributeError: 'NoneType' object has no attribute 'theta'
63 "test_image_size_horizontal"
64 "test_image_size_vertical"
65 ];
66
67 disabledTestPaths = [
68 # Needs a running DBUS
69 "test/widget/test_iwd.py"
70 "test/widget/test_upower.py"
71 # Marked as broken due to https://github.com/stravalib/stravalib/issues/379
72 "test/widget/test_strava.py"
73 ];
74
75 preCheck = ''
76 export HOME=$(mktemp -d)
77 export GDK_PIXBUF_MODULE_FILE=${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
78 sed -i 's#/usr/bin/sleep#sleep#' test/widget/test_snapcast.py
79 '';
80
81 pythonImportsCheck = [ "qtile_extras" ];
82
83 meta = with lib; {
84 description = "Extra modules and widgets for the Qtile tiling window manager";
85 homepage = "https://github.com/elParaguayo/qtile-extras";
86 changelog = "https://github.com/elParaguayo/qtile-extras/blob/${src.rev}/CHANGELOG";
87 license = licenses.mit;
88 maintainers = with maintainers; [ arjan-s ];
89 };
90}