add nix module

This commit is contained in:
Henry Hiles 2026-09-20 17:13:22 -04:00
commit 1cfea5a819
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
6 changed files with 120 additions and 57 deletions

55
linux/nix/module.nix Normal file
View file

@ -0,0 +1,55 @@
self:
{
pkgs,
lib,
config,
...
}:
let
inherit (lib)
mkIf
mkMerge
mkOption
mkEnableOption
mkPackageOption
types
;
cfg = config.programs.nexus;
in
{
options.programs.nexus = {
enable = mkEnableOption "Nexus, a simple and user-friendly Matrix client";
package = mkPackageOption self.packages.${pkgs.stdenv.hostPlatform.system} "nexus" { };
enableNotifications = mkOption {
description = ''
Whether to enable push notifications support via UnifiedPush, installing
{manpage}`kunifiedpush` and registering its systemd and D-Bus units.
'';
type = types.bool;
default = false;
example = true;
};
};
config = mkIf cfg.enable (mkMerge [
{
environment.systemPackages = [ cfg.package ];
}
(mkIf cfg.enableNotifications {
environment.systemPackages = [
pkgs.kdePackages.kunifiedpush
];
systemd.packages = [
pkgs.kdePackages.kunifiedpush
];
services.dbus.packages = [
cfg.package
];
})
]);
}