diff --git a/hosts/common/programs/assorted.nix b/hosts/common/programs/assorted.nix index 573a3383..01080219 100644 --- a/hosts/common/programs/assorted.nix +++ b/hosts/common/programs/assorted.nix @@ -770,21 +770,6 @@ in sane-die-with-parent.sandbox.enable = false; #< it's a launcher; can't sandbox - sane-open.sandbox.method = "bwrap"; - sane-open.sandbox.autodetectCliPaths = "existing"; # for when opening a file - sane-open.sandbox.whitelistDbus = [ "user" ]; - sane-open.sandbox.extraConfig = [ - "--sane-sandbox-keep-namespace" "pid" # to toggle keyboard - ]; - sane-open.sandbox.extraHomePaths = [ - ".local/share/applications" - ]; - sane-open.sandbox.extraRuntimePaths = [ "sway" ]; - sane-open.suggestedPrograms = [ - "gdbus" - "xdg-utils" - ]; - screen.sandbox.enable = false; #< tty; needs to run anything sequoia.sandbox.method = "bwrap"; # TODO:sandbox: untested diff --git a/hosts/common/programs/default.nix b/hosts/common/programs/default.nix index 83206c3d..5678b597 100644 --- a/hosts/common/programs/default.nix +++ b/hosts/common/programs/default.nix @@ -101,6 +101,7 @@ ./rtkit.nix ./s6-rc.nix ./sane-input-handler + ./sane-open.nix ./sane-sandboxed.nix ./sane-screenshot.nix ./sane-scripts.nix diff --git a/hosts/common/programs/sane-open.nix b/hosts/common/programs/sane-open.nix new file mode 100644 index 00000000..6225094d --- /dev/null +++ b/hosts/common/programs/sane-open.nix @@ -0,0 +1,21 @@ +{ ... }: +{ + sane.programs.sane-open = { + sandbox.method = "bwrap"; + sandbox.autodetectCliPaths = "existing"; # for when opening a file + sandbox.whitelistDbus = [ "user" ]; + sandbox.extraConfig = [ + "--sane-sandbox-keep-namespace" "pid" # to toggle keyboard + ]; + sandbox.extraHomePaths = [ + ".local/share/applications" + ]; + sandbox.extraRuntimePaths = [ "sway" ]; + suggestedPrograms = [ + "gdbus" + "xdg-utils" + ]; + + mime.associations."application/x-desktop" = "sane-open-application.desktop"; + }; +} diff --git a/pkgs/additional/sane-open/default.nix b/pkgs/additional/sane-open/default.nix index 71fa87b0..ed9a2258 100644 --- a/pkgs/additional/sane-open/default.nix +++ b/pkgs/additional/sane-open/default.nix @@ -1,6 +1,20 @@ -{ static-nix-shell }: +{ static-nix-shell +, copyDesktopItems +, makeDesktopItem +}: static-nix-shell.mkBash { pname = "sane-open"; srcRoot = ./.; pkgs = [ "glib" "jq" "procps" "sway" "util-linux" "xdg-utils" ]; + nativeBuildInputs = [ + copyDesktopItems + ]; + desktopItems = [ + (makeDesktopItem { + name = "sane-open-application"; + exec = "sane-open --application %f"; + desktopName = ".desktop launcher"; + noDisplay = true; + }) + ]; }