diff options
| -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 |