1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
# This flake file is community maintained
{
description = "Niri: A scrollable-tiling Wayland compositor.";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nix-filter.url = "github:numtide/nix-filter";
};
outputs =
{
self,
nixpkgs,
nix-filter,
...
}:
let
inherit (nixpkgs) lib;
systems = [
"aarch64-linux"
"x86_64-linux"
];
forAllSystems = lib.genAttrs systems;
nixpkgsFor = forAllSystems (system: nixpkgs.legacyPackages.${system});
in
{
checks = forAllSystems (system: {
inherit (self.packages.${system}) niri;
});
devShells = forAllSystems (
system:
let
inherit (self.packages.${system}) niri;
in
{
default = nixpkgsFor.${system}.mkShell {
inputsFrom = [ niri ];
env = {
LD_LIBRARY_PATH = lib.makeLibraryPath niri.buildInputs;
inherit (niri.env) LIBCLANG_PATH;
};
};
}
);
formatter = forAllSystems (system: nixpkgsFor.${system}.nixfmt-rfc-style);
packages = forAllSystems (system: {
niri = nixpkgsFor.${system}.callPackage (
{
cairo,
clang,
fontconfig,
gdk-pixbuf,
glib,
graphene,
gtk4,
libadwaita,
libclang,
libdisplay-info,
libglvnd,
libinput,
libxkbcommon,
mesa,
pango,
pipewire,
pixman,
pkg-config,
rustPlatform,
seatd,
stdenv,
systemd,
wayland,
xorg,
}:
rustPlatform.buildRustPackage rec {
pname = "niri";
version = self.shortRev or self.dirtyShortRev or "unknown";
cargoLock = {
# NOTE: This is only used for Git dependencies
allowBuiltinFetchGit = true;
lockFile = ./Cargo.lock;
};
src = nix-filter.lib.filter {
root = self;
include = [
"niri-config"
"niri-ipc"
"resources"
"src"
];
};
nativeBuildInputs = [
clang
gdk-pixbuf
graphene
gtk4
libadwaita
pkg-config
];
buildInputs = [
cairo
fontconfig
glib
libdisplay-info
libinput
libxkbcommon
mesa # For libgbm
pango
pipewire
pixman
seatd # For libseat
stdenv.cc.cc.lib
systemd # For libudev
wayland
];
runtimeDependencies = [
libglvnd # For libEGL
libxkbcommon
mesa
wayland
xorg.libXcursor
xorg.libXi
];
LD_LIBRARY_PATH = lib.makeLibraryPath runtimeDependencies;
LIBCLANG_PATH = lib.getLib libclang + "/lib";
}
) { };
default = self.packages.${system}.niri;
});
};
}
|