diff options
| author | Robert Günzler <r@gnzler.io> | 2022-02-09 00:28:30 +0100 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2022-02-09 00:28:30 +0100 |
| commit | 1d6beb28dc102ade77c63e5fb1ecbf4a69b5246a (patch) | |
| tree | 9f8c0c786f6d582c76b73516d6b26cb08d6d70a9 | |
| parent | b07820d4708b1dc0f08023828d47e12cf98df92a (diff) | |
add bin/xdg-open that routes through portal
| -rwxr-xr-x | bin/xdg-open | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/bin/xdg-open b/bin/xdg-open new file mode 100755 index 0000000..c26df0f --- /dev/null +++ b/bin/xdg-open @@ -0,0 +1,27 @@ +#!/bin/sh + +set -e + +arg0="$(basename "$0")" + +container=${container:-} +if [ ! "${container}" = "firejail" ]; then + exec /usr/bin/"${arg0}" $@ +fi + +portal() { + if [ $# -lt 1 ]; then + printf "missing argument\n" >&2 + exit 1 + fi + exec gdbus call --session \ + --dest org.freedesktop.portal.Desktop \ + --object-path "/org/freedesktop/portal/desktop" \ + --method org.freedesktop.portal.OpenURI.OpenURI \ + "" "$1" "{}" +} + +case "$(basename "$0")" in +xdg-open) portal $@ ;; +gio) if [ ! "$1" = "open" ]; then exec /usr/bin/$arg0 $@; else portal "${2}"; fi ;; +esac |