-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflake.nix
More file actions
47 lines (42 loc) · 1.58 KB
/
Copy pathflake.nix
File metadata and controls
47 lines (42 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
description = "Python GTK4/Libadwaita development environment";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
python = pkgs.python313;
pythonEnv = python.withPackages (ps: [
ps.pygobject3
ps.pycairo
]);
in
{
devShells.default = pkgs.mkShell {
buildInputs = [
pythonEnv
pkgs.gtk4
pkgs.libadwaita
pkgs.gobject-introspection
pkgs.glib
pkgs.cairo
];
shellHook = ''
export GI_TYPELIB_PATH="${pkgs.gtk4}/lib/girepository-1.0:${pkgs.libadwaita}/lib/girepository-1.0:${pkgs.glib.out}/lib/girepository-1.0:${pkgs.pango.out}/lib/girepository-1.0:${pkgs.gdk-pixbuf}/lib/girepository-1.0:${pkgs.graphene}/lib/girepository-1.0:${pkgs.harfbuzz}/lib/girepository-1.0:${pkgs.gobject-introspection}/lib/girepository-1.0"
export PYTHONPATH="${pythonEnv}/${python.sitePackages}"
# Write .env for VSCode so it doesn't depend on process inheritance
cat > .env <<EOF
GI_TYPELIB_PATH=$GI_TYPELIB_PATH
PYTHONPATH=$PYTHONPATH
EOF
echo "Python GTK4/Libadwaita development environment"
echo "Python version: $(python --version)"
echo "Run the app with: python src/main.py"
'';
};
}
);
}