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