{ mkShell, rustc, cargo, rust-analyzer, rustfmt, clippy, taplo, cargo-deny, pkg-config, ncurses, scdoc, wayland, wayland-protocols, wayland-scanner, libxkbcommon, freetype, fontconfig, harfbuzz, }: mkShell { name = "beer-dev"; strictDeps = true; nativeBuildInputs = [ cargo rustc clippy rustfmt taplo rust-analyzer cargo-deny pkg-config ncurses # tic, to compile the terminfo entry scdoc # generate man pages from doc/*.scd ]; buildInputs = [ wayland wayland-protocols wayland-scanner libxkbcommon freetype fontconfig harfbuzz ]; # Compile the beer terminfo into a project-local database and put it ahead of # the system one, so TERM=beer resolves inside the shell (and for the shell # beer spawns, which inherits this env). The trailing ':' keeps the system # database on the search path. shellHook = '' if tic -x -o "$PWD/.terminfo" terminfo/beer.info 2>/dev/null; then export TERMINFO_DIRS="$PWD/.terminfo:" fi ''; }