at 24.11-pre 2.3 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 cairocffi, 6 dbus-next, 7 dbus-python, 8 glib, 9 iwlib, 10 libdrm, 11 libinput, 12 libxkbcommon, 13 mpd2, 14 pango, 15 pixman, 16 pkg-config, 17 psutil, 18 pulsectl-asyncio, 19 pygobject3, 20 python-dateutil, 21 pywayland, 22 pywlroots, 23 pyxdg, 24 setuptools, 25 setuptools-scm, 26 wayland, 27 wlroots, 28 xcbutilcursor, 29 xcbutilwm, 30 xcffib, 31 xkbcommon, 32 nixosTests, 33}: 34 35buildPythonPackage rec { 36 pname = "qtile"; 37 version = "0.25.0"; 38 pyproject = true; 39 40 src = fetchFromGitHub { 41 owner = "qtile"; 42 repo = "qtile"; 43 rev = "refs/tags/v${version}"; 44 hash = "sha256-j5hpXfUSDUT9nBr6CafIzqdTYQxSWok+ZlQA7bGdVvk="; 45 }; 46 47 patches = [ 48 ./fix-restart.patch # https://github.com/NixOS/nixpkgs/issues/139568 49 ]; 50 51 postPatch = '' 52 substituteInPlace libqtile/pangocffi.py \ 53 --replace libgobject-2.0.so.0 ${glib.out}/lib/libgobject-2.0.so.0 \ 54 --replace libpangocairo-1.0.so.0 ${pango.out}/lib/libpangocairo-1.0.so.0 \ 55 --replace libpango-1.0.so.0 ${pango.out}/lib/libpango-1.0.so.0 56 substituteInPlace libqtile/backend/x11/xcursors.py \ 57 --replace libxcb-cursor.so.0 ${xcbutilcursor.out}/lib/libxcb-cursor.so.0 58 substituteInPlace libqtile/backend/wayland/cffi/build.py \ 59 --replace /usr/include/pixman-1 ${lib.getDev pixman}/include \ 60 --replace /usr/include/libdrm ${lib.getDev libdrm}/include/libdrm 61 ''; 62 63 build-system = [ 64 setuptools 65 setuptools-scm 66 pkg-config 67 ]; 68 69 dependencies = [ 70 (cairocffi.override { withXcffib = true; }) 71 dbus-next 72 dbus-python 73 iwlib 74 mpd2 75 psutil 76 pulsectl-asyncio 77 pygobject3 78 python-dateutil 79 pywayland 80 pywlroots 81 pyxdg 82 xcffib 83 xkbcommon 84 ]; 85 86 buildInputs = [ 87 libinput 88 libxkbcommon 89 wayland 90 wlroots 91 xcbutilwm 92 ]; 93 94 doCheck = false; 95 passthru = { 96 tests.qtile = nixosTests.qtile; 97 providedSessions = [ "qtile" ]; 98 }; 99 100 meta = with lib; { 101 homepage = "http://www.qtile.org/"; 102 license = licenses.mit; 103 description = "A small, flexible, scriptable tiling window manager written in Python"; 104 mainProgram = "qtile"; 105 platforms = platforms.linux; 106 maintainers = with maintainers; [ 107 arjan-s 108 sigmanificient 109 ]; 110 }; 111}