78 lines
2.1 KiB
Nix
78 lines
2.1 KiB
Nix
{ self, inputs, ... }: {
|
|
flake.modules.nixos.niri = { pkgs, lib, ... }:
|
|
let
|
|
niriPkg = self.packages.${pkgs.stdenv.hostPlatform.system}.myNiri;
|
|
greeterNiriConfig = pkgs.writeText "niri-greeter.kdl" ''
|
|
spawn-at-startup "regreet"
|
|
binds {}
|
|
input {}
|
|
layout {}
|
|
'';
|
|
in
|
|
{
|
|
programs.niri = {
|
|
enable = true;
|
|
package = niriPkg;
|
|
};
|
|
programs.regreet.enable = true;
|
|
services.greetd = {
|
|
enable = true;
|
|
settings = {
|
|
default_session = {
|
|
command = ''
|
|
${pkgs.dbus}/bin/dbus-run-session \
|
|
${lib.getExe niriPkg} \
|
|
--config ${greeterNiriConfig}
|
|
'';
|
|
user = "root";
|
|
};
|
|
};
|
|
};
|
|
systemd.user.services.niri.enableDefaultPath = false;
|
|
};
|
|
|
|
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 = myNiriUnwrapped;
|
|
|
|
packages.myNiriNixGL = 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
|
|
'';
|
|
};
|
|
};
|
|
}
|