{ description = "st terminal"; inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; inputs.flake-utils.url = "github:numtide/flake-utils"; outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; in rec { packages.st = pkgs.stdenv.mkDerivation { pname = "st"; version = "ant"; src = ./.; postPatch = pkgs.lib.optionalString pkgs.stdenv.isDarwin '' substituteInPlace config.mk --replace "-lrt" "" ''; strictDeps = true; makeFlags = [ "PKG_CONFIG=${pkgs.stdenv.cc.targetPrefix}pkg-config" ]; nativeBuildInputs = with pkgs; [ pkg-config ncurses fontconfig freetype ]; buildInputs = with pkgs; [ libx11 libxft harfbuzz gd glib imlib2 ]; preInstall = '' export TERMINFO=$out/share/terminfo ''; installFlags = [ "PREFIX=$(out)" ]; passthru.tests.test = pkgs.nixosTests.terminal-emulators.st; meta = with pkgs.lib; { description = "st terminal"; license = licenses.mit; maintainers = [ "ant" ]; platforms = platforms.unix; }; }; apps.st = flake-utils.lib.mkApp { drv = packages.st; exePath = "/bin/st"; }; apps.default = apps.st; packages.default = packages.st; defaultApp = apps.st; devShell = pkgs.mkShell { inputsFrom = [ packages.st ]; packages = with pkgs; [ bear clang-tools gdb ]; }; }); }