nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 python3,
4 fetchFromGitHub,
5 wrapGAppsHook3,
6 gobject-introspection,
7 gitUpdater,
8}:
9python3.pkgs.buildPythonApplication rec {
10 pname = "KlipperScreen";
11 version = "0.4.5";
12 pyproject = false;
13
14 src = fetchFromGitHub {
15 owner = "KlipperScreen";
16 repo = "KlipperScreen";
17 rev = "v${version}";
18 hash = "sha256-lKGMz5N4lKSqA614wjJiUfP5fUY+WqFDPxeX/Iyp2TQ=";
19 };
20
21 nativeBuildInputs = [
22 gobject-introspection
23 wrapGAppsHook3
24 ];
25
26 pythonPath = with python3.pkgs; [
27 jinja2
28 netifaces
29 requests
30 websocket-client
31 pycairo
32 pygobject3
33 mpv
34 six
35 dbus-python
36 sdbus-networkmanager
37 ];
38
39 dontWrapGApps = true;
40
41 preFixup = ''
42 mkdir -p $out/bin
43 cp -r . $out/dist
44 gappsWrapperArgs+=(--set PYTHONPATH "$PYTHONPATH")
45 wrapGApp $out/dist/screen.py
46 ln -s $out/dist/screen.py $out/bin/KlipperScreen
47 '';
48
49 passthru.updateScript = gitUpdater { url = meta.homepage; };
50
51 meta = {
52 description = "Touchscreen GUI for the Klipper 3D printer firmware";
53 homepage = "https://github.com/jordanruthe/KlipperScreen";
54 license = lib.licenses.agpl3Only;
55 maintainers = with lib.maintainers; [
56 cab404
57 saturn745
58 ];
59 mainProgram = "KlipperScreen";
60 };
61}