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.27.0.post1";
24 pyproject = true;
25
26 src = fetchFromGitHub {
27 owner = "elParaguayo";
28 repo = "qtile-extras";
29 rev = "refs/tags/v${version}";
30 hash = "sha256-c5MCcpU6g95DMycSgOaUdpvPUtgVV/zUSdKVDbZWZGM=";
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 ];
68
69 disabledTestPaths = [
70 # Needs a running DBUS
71 "test/widget/test_iwd.py"
72 "test/widget/test_upower.py"
73 # Marked as broken due to https://github.com/stravalib/stravalib/issues/379
74 "test/widget/test_strava.py"
75 ];
76
77 preCheck = ''
78 export HOME=$(mktemp -d)
79 export GDK_PIXBUF_MODULE_FILE=${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
80 sed -i 's#/usr/bin/sleep#sleep#' test/widget/test_snapcast.py
81 '';
82
83 pythonImportsCheck = [ "qtile_extras" ];
84
85 meta = with lib; {
86 description = "Extra modules and widgets for the Qtile tiling window manager";
87 homepage = "https://github.com/elParaguayo/qtile-extras";
88 changelog = "https://github.com/elParaguayo/qtile-extras/blob/${src.rev}/CHANGELOG";
89 license = licenses.mit;
90 maintainers = with maintainers; [ arjan-s ];
91 };
92}