Files
nix-flake/modules/dev-shells/biri.nix
T

67 lines
1.6 KiB
Nix

{ inputs, self, ... }: {
perSystem = { system, ... }: let
pkgs = import inputs.nixpkgs {
inherit system;
overlays = [
(final: prev: {
libdisplay-info = inputs.nixpkgs-26-05.legacyPackages.${system}.libdisplay-info;
})
];
config = { };
};
in {
devShells.niri = with pkgs; mkShell {
name = "niri-dev-shell";
strictDeps = true;
buildInputs = with pkgs; [
llvmPackages_latest.llvm
glib
libsysprof-capture
pcre2
libffi
util-linux
selinuxPackages.libselinux
pipewire
systemd
seatd
pango
libdisplay-info
libinput
libxkbcommon
libglvnd
libgbm
wayland
dbus
];
nativeBuildInputs = [
rustc
cargo
pkg-config
rustPlatform.bindgenHook
];
env = {
# Force linking with libEGL and libwayland-client
# so they can be discovered by `dlopen()`
RUSTFLAGS = toString (
map (arg: "-C link-arg=" + arg) [
"-Wl,--push-state,--no-as-needed"
"-lEGL"
"-lwayland-client"
"-Wl,--pop-state"
]
);
# Upstream recommends setting the commit hash manually when in a
# build environment where the Git repository is unavailable.
# See https://github.com/niri-wm/niri/wiki/Packaging-niri#version-string
NIRI_BUILD_COMMIT = "barrulus/biri";
};
RUST_SRC_PATH = "${pkgs.rustPlatform.rustLibSrc}";
};
};
}