{ # lib, # pkgs, inputs, system, addPkgs ? [], bwrapperOpts ? {}, isCli ? false, packageOverrides ? {}, unfreePkgs ? ["obsidian"], ... }: 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.obsidian.override packageOverrides; id = "md.obsidian.Obsidian" + "_bwrapped"; }; # app.overwriteExec = !isCli; # isFhsenv = true; app.env = { XDG_DATA_DIRS = "$XDG_DATA_DIRS"; }; fhsenv.opts.dieWithParent = false; # fhsenv.skipExtraInstallCmds = isCli; sockets = { x11 = !isCli; wayland = !isCli; pulseaudio = !isCli; pipewire = !isCli; }; mounts.readWrite = [ "$XDG_RUNTIME_DIR/app/${app.id}" ]; mounts.read = [ # "$HOME/.local/share/applications" # "$HOME/.config/mimeapps.list" ]; } bwrapperOpts)