104 lines
2.2 KiB
Nix
104 lines
2.2 KiB
Nix
{
|
|
mainUser,
|
|
inputs,
|
|
getFlakePkg',
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}:
|
|
let
|
|
niri = (getFlakePkg' inputs.niri "niri-unstable");
|
|
xwayland-satellite = (getFlakePkg' inputs.niri "xwayland-satellite-unstable");
|
|
inherit (config) rice;
|
|
in
|
|
{
|
|
|
|
imports = [
|
|
inputs.niri.nixosModules.niri
|
|
inputs.niri-tag.nixosModules.niri-tag
|
|
inputs.niri-s76.nixosModules.default
|
|
];
|
|
|
|
user.desktops.niri = {
|
|
enable = true;
|
|
config =
|
|
let
|
|
template = builtins.readFile ./niri.kdl;
|
|
baseConfig =
|
|
with rice;
|
|
lib.replaceStrings
|
|
[
|
|
"%CURSOR%"
|
|
"%ROUNDING%"
|
|
"%GAPS%"
|
|
"%BORDER%"
|
|
"%ACTIVE%"
|
|
"%INACTIVE%"
|
|
"%SATELLITE%"
|
|
]
|
|
[
|
|
cursor.name
|
|
(toString borders.rounding)
|
|
(toString borders.gaps)
|
|
(toString borders.thickness)
|
|
palette.shortHex.bright.yellow
|
|
palette.shortHex.normal.white
|
|
(lib.getExe xwayland-satellite)
|
|
]
|
|
template;
|
|
in
|
|
baseConfig;
|
|
};
|
|
|
|
user.packages = [
|
|
niri
|
|
xwayland-satellite
|
|
];
|
|
|
|
services.greetd = {
|
|
enable = true;
|
|
restart = false;
|
|
settings =
|
|
let
|
|
session = {
|
|
command =
|
|
let
|
|
niri-session-direct = pkgs.writeShellScript "niri-session-direct" ''
|
|
systemctl --user import-environment
|
|
dbus-update-activation-environment --all
|
|
exec ${lib.getExe niri} --session
|
|
'';
|
|
in
|
|
"${niri-session-direct}";
|
|
user = "${mainUser}";
|
|
};
|
|
in
|
|
{
|
|
default_session = session;
|
|
initial_session = session;
|
|
};
|
|
};
|
|
|
|
programs.niri = {
|
|
enable = true;
|
|
package = niri;
|
|
};
|
|
|
|
services.niri-tag = {
|
|
enable = true;
|
|
prepopulate = 10;
|
|
strict = true;
|
|
scratchpads = {
|
|
"chrome-listen.lobotomise.me__-Default" = 99;
|
|
"Bitwarden" = 101;
|
|
};
|
|
};
|
|
|
|
services.niri-s76-bridge.enable = true;
|
|
|
|
# niri runs directly from greetd (session-1.scope), not as a user service
|
|
systemd.user.services.niri.wantedBy = lib.mkForce [ ];
|
|
systemd.user.services.niri.enable = lib.mkForce false;
|
|
|
|
}
|