50 lines
1.5 KiB
Nix
50 lines
1.5 KiB
Nix
{ self, inputs, ... }: {
|
|
flake.nixosModules.niri = { pkgs, lib, ... }: {
|
|
programs.niri = {
|
|
enable = true;
|
|
package = self.packages.${pkgs.stdenv.hostPlatform.system}.myNiri;
|
|
};
|
|
};
|
|
|
|
perSystem = { pkgs, lib, self', ... }:
|
|
let
|
|
nixGLPackage = inputs.nixgl.packages.${pkgs.stdenv.hostPlatform.system}.nixGLIntel;
|
|
myNiriUnwrapped = inputs.wrapper-modules.wrappers.niri.wrap {
|
|
inherit pkgs;
|
|
settings = {
|
|
spawn-at-startup = [
|
|
(lib.getExe self'.packages.myNoctalia)
|
|
];
|
|
|
|
xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite;
|
|
|
|
input.keyboard.xkb.layout = "us,ua";
|
|
|
|
layout.gaps = 5;
|
|
|
|
binds = {
|
|
"Mod+Return".spawn-sh = lib.getExe pkgs.kitty;
|
|
# "Mod+Q".close-window = null;
|
|
"Mod+S".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher toggle";
|
|
};
|
|
};
|
|
};
|
|
in {
|
|
packages.myNiri = pkgs.symlinkJoin {
|
|
name = "my-niri-nixgl";
|
|
paths = [ myNiriUnwrapped ];
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
meta.mainProgram = "niri";
|
|
postBuild = ''
|
|
for exe in "$out"/bin/*; do
|
|
if [[ -f "$exe" ]]; then
|
|
base="$(basename "$exe")"
|
|
mv "$exe" "$out/bin/.''${base}-real"
|
|
makeWrapper ${lib.getExe nixGLPackage} "$exe" \
|
|
--add-flags "$out/bin/.''${base}-real"
|
|
fi
|
|
done
|
|
'';
|
|
};
|
|
};
|
|
} |