nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 fetchpatch,
6 anyio,
7 gobject-introspection,
8 gtk3,
9 imagemagick,
10 keyring,
11 librsvg,
12 pulseaudio,
13 pytest-asyncio,
14 pytest-lazy-fixture,
15 pytest-rerunfailures,
16 pytest-xdist,
17 pytestCheckHook,
18 python-dateutil,
19 qtile,
20 requests,
21 setuptools-scm,
22 xorg-server,
23 nixosTests,
24}:
25buildPythonPackage rec {
26 pname = "qtile-extras";
27 version = "0.34.1";
28 # nixpkgs-update: no auto update
29 # should be updated alongside with `qtile`
30 pyproject = true;
31
32 src = fetchFromGitHub {
33 owner = "elParaguayo";
34 repo = "qtile-extras";
35 tag = "v${version}";
36 hash = "sha256-CtmTZmUQlqkDPd++n3fPbRB4z1NA4ZxnmIR84IjsURw=";
37 };
38
39 patches = [
40 # Remove unpack of widget.eval call in tests
41 # https://github.com/elParaguayo/qtile-extras/pull/460
42 (fetchpatch {
43 url = "https://github.com/elParaguayo/qtile-extras/commit/359964520a9dcd2c7e12680bfc53e359d74c489b.patch?full_index=1";
44 hash = "sha256-nKt39bTaBbvEC5jWU6XH0pigTs4hpSmMIwFe/A9YdJA=";
45 })
46 ];
47
48 build-system = [ setuptools-scm ];
49
50 dependencies = [ gtk3 ];
51
52 nativeCheckInputs = [
53 anyio
54 gobject-introspection
55 imagemagick
56 keyring
57 pulseaudio
58 pytest-asyncio
59 pytest-lazy-fixture
60 pytest-rerunfailures
61 pytest-xdist
62 pytestCheckHook
63 python-dateutil
64 qtile
65 requests
66 xorg-server
67 # stravalib # marked as broken due to https://github.com/stravalib/stravalib/issues/379
68 ];
69
70 disabledTests = [
71 # Needs a running DBUS
72 "test_brightness_power_saving"
73 "test_global_menu"
74 "test_mpris2_popup"
75 "test_statusnotifier_menu"
76 # No network connection
77 "test_wifiicon_internet_check"
78 # Image difference is outside tolerance
79 "test_decoration_output"
80 # Needs Github token
81 "test_githubnotifications_reload_token"
82 # AttributeError: 'NoneType' object has no attribute 'theta'
83 "test_image_size_horizontal"
84 "test_image_size_vertical"
85 # flaky, timing sensitive
86 "test_visualiser"
87 ];
88
89 disabledTestPaths = [
90 # Needs a running DBUS
91 "test/widget/test_iwd.py"
92 "test/widget/test_upower.py"
93 # Marked as broken due to https://github.com/stravalib/stravalib/issues/379
94 "test/widget/test_strava.py"
95 ];
96
97 preCheck = ''
98 export HOME=$(mktemp -d)
99 export GDK_PIXBUF_MODULE_FILE=${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
100 sed -i 's#/usr/bin/sleep#sleep#' test/widget/test_snapcast.py
101 '';
102
103 pythonImportsCheck = [ "qtile_extras" ];
104
105 passthru.tests.qtile-extras = nixosTests.qtile-extras;
106
107 meta = {
108 description = "Extra modules and widgets for the Qtile tiling window manager";
109 homepage = "https://github.com/elParaguayo/qtile-extras";
110 changelog = "https://github.com/elParaguayo/qtile-extras/blob/${src.tag}/CHANGELOG";
111 license = lib.licenses.mit;
112 maintainers = with lib.maintainers; [ arjan-s ];
113 };
114}