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