{ # lib, # pkgs, inputs, system, # perSystem, addPkgs ? [], bwrapperOpts ? {}, packageOverrides ? {}, unfreePkgs ? ["grayjay"], ... }: 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 rec { app = { inherit addPkgs; package = pkgs.grayjay.override packageOverrides; id = "app.grayjay.Grayjay" + "_bwrapped"; # execArgs = "--disable-gpu-memory-buffer-video-frames"; env = { ELECTRON_TRASH = "gio"; }; }; mounts.readWrite = [ # "$XDG_RUNTIME_DIR/doc/by-app/${app.id}" # "$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 = [ "org.mpris.MediaPlayer2.chromium.*" ]; } bwrapperOpts))