{ description = "svitak dev shell (GHC 9.12, GTK4, WebKit 6.0)"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/7b6142dae006"; }; outputs = { self, nixpkgs }: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; in { devShells.${system}.default = pkgs.mkShell { buildInputs = [ # Haskell toolchain pkgs.haskell.compiler.ghc912 pkgs.cabal-install # Build tools pkgs.pkg-config pkgs.zlib pkgs.libsysprof-capture pkgs.pcre2 pkgs.libxdmcp pkgs.util-linux pkgs.libselinux pkgs.libsepol pkgs.libpsl pkgs.libnghttp2 pkgs.libnghttp2_asio pkgs.nghttp2 pkgs.fribidi pkgs.libthai pkgs.libdatrie pkgs.libdeflate pkgs.lerc pkgs.liblzma # GTK stack pkgs.gtk4 pkgs.webkitgtk_6_0 pkgs.libsoup_3 pkgs.glib pkgs.gobject-introspection pkgs.gdk-pixbuf pkgs.cairo pkgs.pango pkgs.atk # X11 runtime pkgs.xorg.libX11 pkgs.xorg.libXext pkgs.xorg.libXcursor pkgs.xorg.libXrandr pkgs.xorg.libXrender pkgs.xorg.libXfixes pkgs.xorg.libXcomposite pkgs.xorg.libXdamage pkgs.xorg.libXScrnSaver pkgs.xorg.libICE pkgs.xorg.libSM # Optional but common pkgs.sqlite ]; shellHook = '' echo "Entering svitak dev shell (GHC 9.12 + GTK4 + WebKit6)" unset GHC_PACKAGE_PATH # Haskell GI needs pkg-config for gobject-introspection export PKG_CONFIG_PATH=${pkgs.gobject-introspection}/lib/pkgconfig # Runtime libraries export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath [ pkgs.webkitgtk_6_0 pkgs.libsoup_3 pkgs.gtk4 pkgs.glib pkgs.gobject-introspection pkgs.gdk-pixbuf pkgs.cairo pkgs.pango pkgs.xorg.libX11 pkgs.xorg.libXext pkgs.xorg.libXcursor pkgs.xorg.libXrandr pkgs.xorg.libXrender pkgs.xorg.libXfixes pkgs.xorg.libXcomposite pkgs.xorg.libXdamage pkgs.xorg.libXScrnSaver pkgs.xorg.libICE pkgs.xorg.libSM ]}:$LD_LIBRARY_PATH ''; }; }; }