56 lines
1.2 KiB
Nix
56 lines
1.2 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.programs.niri;
|
|
in
|
|
{
|
|
options.programs.niri = {
|
|
enable = lib.mkEnableOption "Niri, a scrollable-tiling Wayland compositor";
|
|
|
|
package = lib.mkPackageOption pkgs "niri" { };
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable (
|
|
lib.mkMerge [
|
|
{
|
|
environment.systemPackages = [ cfg.package ];
|
|
|
|
services = {
|
|
displayManager.sessionPackages = [ cfg.package ];
|
|
|
|
# Recommended by upstream
|
|
# https://github.com/YaLTeR/niri/wiki/Important-Software#portals
|
|
gnome.gnome-keyring.enable = lib.mkDefault true;
|
|
};
|
|
|
|
systemd.packages = [ cfg.package ];
|
|
|
|
xdg.portal = {
|
|
enable = lib.mkDefault true;
|
|
|
|
configPackages = [ cfg.package ];
|
|
|
|
# Recommended by upstream, required for screencast support
|
|
# https://github.com/YaLTeR/niri/wiki/Important-Software#portals
|
|
extraPortals = [ pkgs.xdg-desktop-portal-gnome ];
|
|
};
|
|
}
|
|
|
|
(import ./wayland-session.nix {
|
|
inherit lib pkgs;
|
|
enableWlrPortal = false;
|
|
enableXWayland = false;
|
|
})
|
|
]
|
|
);
|
|
|
|
meta.maintainers = with lib.maintainers; [
|
|
getchoo
|
|
sodiboo
|
|
];
|
|
}
|