# The usual development shell of GNOME-related projects. It isn't really
# complete, it is more of a list of common applications for these types of
# projects.
#
# These include toolkits for C, Rust, and GNOME JavaScript.
{ mkShell, cmake, meson, ninja, gtk4, libadwaita, gjs, pkg-config, rustPlatform, nodePackages }:

mkShell {
  packages = [
    meson # Their build system of choice.
    ninja # Their other build system of choice.
    cmake # Their other meta-build system of choice.
    pkg-config # That librarian in the background.
    gtk4 # The star of the show.
    libadwaita # The co-star of the show.

    # When Rust and GTK go together...
    rustPlatform.cargo
    rustPlatform.rustc

    # Creating desktop applications with JavaScript without Electron!
    nodePackages.typescript
    gjs
  ];
}