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
|
||
|
];
|
||
|
}
|