{ # lib, # pkgs, inputs, system, # perSystem, addPkgs ? [], bwrapperOpts ? {}, packageOverrides ? {}, unfreePkgs ? [], ... }: let pkgs = import inputs.nixpkgs { config.allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) unfreePkgs; inherit system; overlays = [inputs.nix-bwrapper.overlays.bwrapper]; }; in (pkgs.mkBwrapper (pkgs.lib.attrsets.recursiveUpdate { app = { inherit addPkgs; package = pkgs.legcord.override packageOverrides; runScript = "legcord"; # TODO: figure out the right id id = "dev.pzurek.Legcord" + "_bwrapped"; execArgs = "--disable-gpu-memory-buffer-video-frames"; env = { ELECTRON_TRASH = "gio"; }; }; mounts.readWrite = [ "$XDG_RUNTIME_DIR/app/com.discordapp.Discord" "$XDG_RUNTIME_DIR/speech-dispatcher" # "$HOME/Downloads" ]; dbus.session.talks = [ "org.freedesktop.ScreenSaver" "org.kde.StatusNotifierWatcher" "com.canonical.AppMenu.Registrar" "com.canonical.indicator.application" "com.canonical.Unity" ]; dbus.system.talks = [ "org.freedesktop.UPower" ]; dbus.session.owns = [ "com.discordapp.Discord" ]; } bwrapperOpts))