67 lines
1.6 KiB
Nix
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}";
|
|
};
|
|
};
|
|
} |