nichts/modules/wms/wayland/niri/module.nix
Bloxx12 ddd440d87c
niri: add lastest swww
Waow, namespace support!
2025-06-26 20:49:36 +02:00

72 lines
1.9 KiB
Nix

{
config,
inputs,
lib,
pkgs,
...
}: let
inherit (lib.modules) mkForce mkIf;
inherit (lib.options) mkEnableOption;
inherit (config.modules.system) isGraphical;
cfg = config.modules.desktops.niri;
latestNightly = (inputs.rust-overlay.lib.mkRustBin {} pkgs).nightly.latest.default;
rustPlatform = pkgs.makeRustPlatform {
rustc = latestNightly;
cargo = latestNightly;
stdenv = pkgs.clangStdenv;
};
new-swww = (pkgs.swww.override {inherit rustPlatform;}).overrideAttrs (prev: {
src = pkgs.fetchFromGitHub {
inherit (prev.src) owner repo;
rev = "398a4048e389341dfd55285c53518a8ea3930ec4";
hash = "sha256-ZAC5TbkshztW2IeDorhaxUmVCHf2tJCSGIGHSNl91Ns";
};
doInstallCheck = false;
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
inherit (new-swww) src;
hash = "sha256-YH2gcy/8EtUmTHzwt38bBOFX3saN1wHIGQ5/eWqvSeM=";
};
});
in {
options.modules.desktops.niri.enable = mkEnableOption "Niri, a scolling tiling wayland compositor";
config =
mkIf (cfg.enable
|| isGraphical)
{
programs.niri = {
enable = true;
package = pkgs.niri;
};
# The niri module auto enables the gnome keyring,
# which is something I direly want to avoid.
services.gnome.gnome-keyring.enable = mkForce false;
environment.etc."niri/config.kdl".source = ./config.kdl;
environment.systemPackages = builtins.attrValues {
inherit (pkgs) xwayland-satellite avizo;
inherit new-swww;
};
xdg.portal = {
enable = true;
xdgOpenUsePortal = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-gnome
];
config = {
common.default = ["*"];
hyprland.default = ["gtk"];
};
configPackages = [
pkgs.niri
];
};
};
}