33 lines
914 B
Nix
33 lines
914 B
Nix
{ lib, config, pkgs, ... }:
|
|
|
|
with lib;
|
|
let
|
|
cfg = config.modules.software.distractions.discord;
|
|
vanillaDiscordPackage = pkgs.discord-canary.override {
|
|
withOpenASAR = true;
|
|
withVencord = true;
|
|
};
|
|
finalPackage =
|
|
if cfg.equibop then pkgs.equibop else
|
|
if cfg.vesktop then pkgs.vesktop else
|
|
vanillaDiscordPackage;
|
|
in {
|
|
options.modules.software.distractions.discord = {
|
|
enable = mkEnableOption "Enable Discord, a social messaging app";
|
|
vesktop = mkEnableOption "Use Vesktop, an alternative Electron client with Vencord preinstalled";
|
|
equibop = mkEnableOption "Use Equibop, a fork of Vesktop with Equicord preinstalled";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
assertions = [
|
|
{
|
|
assertion = !(cfg.vesktop && cfg.equibop);
|
|
message = "You must either enable Vesktop or Equibop, not both";
|
|
}
|
|
];
|
|
|
|
user.packages = [
|
|
finalPackage
|
|
];
|
|
};
|
|
}
|