1{
2 lib,
3 buildPythonPackage,
4 acpi,
5 alsa-utils,
6 coreutils,
7 dbus-python,
8 fetchPypi,
9 file,
10 hatchling,
11 i3,
12 i3ipc,
13 libnotify,
14 lm_sensors,
15 procps,
16 pygobject3,
17 pyserial,
18 pytz,
19 requests,
20 setuptools,
21 tzlocal,
22 wrapGAppsHook3,
23 xorg,
24 glib,
25 gobject-introspection,
26}:
27
28buildPythonPackage rec {
29 pname = "py3status";
30 version = "3.62";
31 pyproject = true;
32
33 src = fetchPypi {
34 inherit pname version;
35 hash = "sha256-8+1uj6ZL0BBxVUkiZf29bmN4adAbFmFHYbqkJvm9Y4I=";
36 };
37
38 nativeBuildInputs = [
39 hatchling
40 wrapGAppsHook3
41 gobject-introspection
42 ];
43
44 buildInputs = [ glib ];
45
46 propagatedBuildInputs = [
47 pytz
48 requests
49 tzlocal
50 i3ipc
51 pygobject3
52 pyserial
53 setuptools
54 dbus-python
55 file
56 ];
57
58 prePatch = ''
59 sed -i -e "s|'file|'${file}/bin/file|" py3status/parse_config.py
60 sed -i -e "s|\[\"acpi\"|\[\"${acpi}/bin/acpi\"|" py3status/modules/battery_level.py
61 sed -i -e "s|notify-send|${libnotify}/bin/notify-send|" py3status/modules/battery_level.py
62 sed -i -e "s|/usr/bin/whoami|${coreutils}/bin/whoami|" py3status/modules/external_script.py
63 sed -i -e "s|'amixer|'${alsa-utils}/bin/amixer|" py3status/modules/volume_status.py
64 sed -i -e "s|'i3-nagbar|'${i3}/bin/i3-nagbar|" py3status/modules/pomodoro.py
65 sed -i -e "s|'free|'${procps}/bin/free|" py3status/modules/sysdata.py
66 sed -i -e "s|'sensors|'${lm_sensors}/bin/sensors|" py3status/modules/sysdata.py
67 sed -i -e "s|'setxkbmap|'${xorg.setxkbmap}/bin/setxkbmap|" py3status/modules/keyboard_layout.py
68 sed -i -e "s|'xset|'${xorg.xset}/bin/xset|" py3status/modules/keyboard_layout.py
69 '';
70
71 dontWrapGApps = true;
72
73 preFixup = ''
74 makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
75 '';
76
77 doCheck = false;
78
79 meta = with lib; {
80 description = "Extensible i3status wrapper";
81 homepage = "https://github.com/ultrabug/py3status";
82 changelog = "https://github.com/ultrabug/py3status/blob/${version}/CHANGELOG";
83 license = licenses.bsd3;
84 maintainers = [ ];
85 };
86}