nix-dotfiles/modules/software/distractions/discord.nix
2026-02-18 22:56:23 -08:00

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