1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, setuptools-scm
5, pytestCheckHook
6, xorgserver
7, pulseaudio
8, pytest-asyncio
9, qtile
10, keyring
11, requests
12, stravalib
13}:
14
15buildPythonPackage rec {
16 pname = "qtile-extras";
17 version = "0.22.1";
18 format = "setuptools";
19
20 src = fetchFromGitHub {
21 owner = "elParaguayo";
22 repo = pname;
23 rev = "v${version}";
24 hash = "sha256-2dMpGLtwIp7+aoOgYav2SAjaKMiXHmmvsWTBEIMKEW4=";
25 };
26
27 SETUPTOOLS_SCM_PRETEND_VERSION = version;
28
29 nativeBuildInputs = [ setuptools-scm ];
30
31 nativeCheckInputs = [
32 pytestCheckHook
33 xorgserver
34 ];
35 checkInputs = [
36 pytest-asyncio
37 qtile
38 pulseaudio
39 keyring
40 requests
41 stravalib
42 ];
43 disabledTests = [
44 # AttributeError: 'ImgMask' object has no attribute '_default_size'. Did you mean: 'default_size'?
45 # cairocffi.pixbuf.ImageLoadingError: Pixbuf error: Unrecognized image file format
46 "test_draw"
47 "test_icons"
48 "1-x11-GithubNotifications-kwargs3"
49 "1-x11-SnapCast-kwargs8"
50 "1-x11-TVHWidget-kwargs10"
51 "test_tvh_widget_not_recording"
52 "test_tvh_widget_recording"
53 "test_tvh_widget_popup"
54 "test_snapcast_options"
55 # ValueError: Namespace Gdk not available
56 # AssertionError: Window never appeared...
57 "test_gloabl_menu"
58 "test_statusnotifier_menu"
59 # AttributeError: 'str' object has no attribute 'canonical'
60 "test_strava_widget_display"
61 "test_strava_widget_popup"
62 # Needs a running DBUS
63 "test_brightness_power_saving"
64 "test_upower_all_batteries"
65 "test_upower_named_battery"
66 "test_upower_low_battery"
67 "test_upower_critical_battery"
68 "test_upower_charging"
69 "test_upower_show_text"
70 ];
71 preCheck = ''
72 export HOME=$(mktemp -d)
73 '';
74
75 pythonImportsCheck = [ "qtile_extras" ];
76
77 meta = with lib; {
78 description = "Extra modules and widgets for the Qtile tiling window manager";
79 homepage = "https://github.com/elParaguayo/qtile-extras";
80 changelog = "https://github.com/elParaguayo/qtile-extras/blob/${src.rev}/CHANGELOG";
81 license = licenses.mit;
82 maintainers = with maintainers; [ arjan-s ];
83 };
84}