1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 cairocffi,
6 cffi,
7 strenum,
8 psutil,
9 xcffib,
10 pdm-backend,
11 pyside6,
12 pyvirtualdisplay,
13 pytestCheckHook,
14 qtile,
15}:
16
17buildPythonPackage rec {
18 pname = "qtile-bonsai";
19 version = "0.4.0";
20 pyproject = true;
21
22 src = fetchFromGitHub {
23 owner = "aravinda0";
24 repo = "qtile-bonsai";
25 rev = "refs/tags/v${version}";
26 hash = "sha256-IWy/YEVdZc+UgIKl75ZpOkOIvpS5hCX0ihQenUOuJHo=";
27 };
28
29 build-system = [
30 pdm-backend
31 ];
32
33 dependencies = [
34 strenum
35 psutil
36 ];
37
38 nativeCheckInputs = [
39 pyside6
40 pyvirtualdisplay
41 (cairocffi.override { withXcffib = true; })
42 cffi
43 xcffib
44 qtile
45 pytestCheckHook
46 ];
47
48 preCheck = ''
49 export HOME=$(mktemp -d)
50 '';
51
52 disabledTestPaths = [
53 # Needs a running DBUS
54 "tests/integration/test_layout.py"
55 "tests/integration/test_widget.py"
56 ];
57
58 pythonImportCheck = [ "qtile_bonsai" ];
59
60 meta = {
61 changelog = "https://github.com/aravinda0/qtile-bonsai/releases/tag/${version}";
62 homepage = "https://github.com/aravinda0/qtile-bonsai";
63 description = "Flexible layout for the qtile tiling window manager";
64 license = lib.licenses.mit;
65 maintainers = with lib.maintainers; [
66 gurjaka
67 sigmanificient
68 ];
69 };
70}