summaryrefslogtreecommitdiff
path: root/nix/devshell.nix
blob: 8c772a86836a6c47e6a8df4f14b7f8cb0e21d4be (plain)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
{
  self,
  pkgs,
}: let
  lua = pkgs.lua.withPackages (ps: [
    ps.lgi
    (ps.luaPackages.toLuaModule (pkgs.stdenv.mkDerivation {
      name = "astal";
      src = "${self}/lang/lua/astal";
      dontBuild = true;
      installPhase = ''
        mkdir -p $out/share/lua/${ps.lua.luaversion}/astal
        cp -r * $out/share/lua/${ps.lua.luaversion}/astal
      '';
    }))
  ]);

  python = pkgs.python3.withPackages (ps: [
    ps.pygobject3
    ps.pygobject-stubs
  ]);

  buildInputs = with pkgs; [
    wrapGAppsHook
    gobject-introspection
    meson
    pkg-config
    ninja
    vala
    gtk3
    gtk4
    gtk-layer-shell
    gtk4-layer-shell
    json-glib
    pam
    gvfs
    networkmanager
    gdk-pixbuf
    wireplumber
    libdbusmenu-gtk3
    wayland
    blueprint-compiler
    libadwaita
    wayland-scanner
    dart-sass
    esbuild
    lua
    python
    gjs
  ];

  lsp = with pkgs; [
    nodejs
    mesonlsp
    vala-language-server
    vtsls
    vscode-langservers-extracted
    markdownlint-cli2
    pyright
    ruff
  ];
in {
  default = pkgs.mkShell {
    packages = buildInputs ++ lsp;
  };
  astal = pkgs.mkShell {
    packages =
      buildInputs
      ++ lsp
      ++ builtins.attrValues (
        builtins.removeAttrs self.packages.${pkgs.system} ["docs"]
      );
  };
}