{ lib, config, pkgs, ... }:
with lib;
let
util = import ../util pkgs;
cfg = config.services.niri;
in {
options.services.niri = {
enable = mkEnableOption "niri";
settings = mkOption {
type = types.attrs;
default = {};
};
};
config = mkIf cfg.enable {
home.packages = [ pkgs.niri ];
xdg.configFile."niri/config.kdl".text = util.generators.toNiriConf cfg.settings;
systemd.user.services.niri = {
Unit.Description = "A scrollable-tiling Wayland compositor";
Install.WantedBy = [ "default.target" ];
Service.ExecStart = "${pkgs.niri}/bin/niri --session";
};
};
}