46 lines
1.2 KiB
Nix
46 lines
1.2 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.programs.discord;
|
|
|
|
discordPatcherBin = pkgs.writers.writePython3Bin "discord-krisp-patcher" {
|
|
libraries = with pkgs.python3Packages; [
|
|
pyelftools
|
|
capstone
|
|
];
|
|
flakeIgnore = [
|
|
"E265" # from nix-shell shebang
|
|
"E501" # line too long (82 > 79 characters)
|
|
"F403" # 'from module import *' used; unable to detect undefined names
|
|
"F405" # name may be undefined, or defined from star imports: module
|
|
];
|
|
} (builtins.readFile ./krisp-patcher.py);
|
|
|
|
wrapDiscordBinary = pkgs.writeShellScriptBin "discord" ''
|
|
${pkgs.findutils}/bin/find -L $HOME/.config/discord -name 'discord_krisp.node' -exec ${discordPatcherBin}/bin/discord-krisp-patcher {} +
|
|
${pkgs.discord}/bin/discord "$@"
|
|
'';
|
|
|
|
discord = pkgs.discord.override {
|
|
# Performance mod
|
|
withOpenASAR = true;
|
|
# link fix
|
|
nss = pkgs.nss_latest;
|
|
};
|
|
in
|
|
{
|
|
options.programs.discord = {
|
|
enable = lib.mkEnableOption "Discord";
|
|
wrapDiscord = lib.mkEnableOption "wrap the Discord binary with a patching each time";
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
home.packages = [
|
|
discordPatcherBin
|
|
] ++ (if cfg.wrapDiscord then [ wrapDiscordBinary ] else [ pkgs.discord ]);
|
|
};
|
|
}
|