diff options
author | Vitor Gonçalves <vitorg@tilde.team> | 2024-01-22 18:22:21 -0300 |
---|---|---|
committer | Vitor Gonçalves <vitorg@tilde.team> | 2024-01-22 18:22:21 -0300 |
commit | 4b5a8597df645b8b78742b420848beb18ac94a83 (patch) | |
tree | a47e72acf10940dcd6445d75c69a7ca94d960606 /.config/xdg-desktop-portal-termfilechooser/st-nnn.sh | |
parent | 7720e820519ac308f93b622fb8be5dfadd7f4246 (diff) | |
download | dots-4b5a8597df645b8b78742b420848beb18ac94a83.tar.gz |
wrapper for termfilechooser
Diffstat (limited to '.config/xdg-desktop-portal-termfilechooser/st-nnn.sh')
-rwxr-xr-x | .config/xdg-desktop-portal-termfilechooser/st-nnn.sh | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/.config/xdg-desktop-portal-termfilechooser/st-nnn.sh b/.config/xdg-desktop-portal-termfilechooser/st-nnn.sh new file mode 100755 index 0000000..017f94f --- /dev/null +++ b/.config/xdg-desktop-portal-termfilechooser/st-nnn.sh @@ -0,0 +1,65 @@ +#!/bin/sh +# This wrapper script is invoked by xdg-desktop-portal-termfilechooser. +# +# Inputs: +# 1. "1" if multiple files can be chosen, "0" otherwise. +# 2. "1" if a directory should be chosen, "0" otherwise. +# 3. "0" if opening files was requested, "1" if writing to a file was +# requested. For example, when uploading files in Firefox, this will be "0". +# When saving a web page in Firefox, this will be "1". +# 4. If writing to a file, this is recommended path provided by the caller. For +# example, when saving a web page in Firefox, this will be the recommended +# path Firefox provided, such as "~/Downloads/webpage_title.html". +# Note that if the path already exists, we keep appending "_" to it until we +# get a path that does not exist. +# 5. The output path, to which results should be written. +# +# Output: +# The script should print the selected paths to the output path (argument #5), +# one path per line. +# If nothing is printed, then the operation is assumed to have been canceled. + +multiple="$1" +directory="$2" +save="$3" +path="$4" +out="$5" + +cmd="/usr/bin/nnn" +termcmd="${TERMCMD:-/usr/bin/st}" + +if [ "$save" = "1" ]; then + set -- --choosefile="$out" --cmd='echo Select save path (see tutorial in preview pane; try pressing zv or zp if no preview)' "$path" + printf '%s' 'xdg-desktop-portal-termfilechooser saving files tutorial + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!! === WARNING! === !!! +!!! The contents of *whatever* file you open last in !!! +!!! ranger will be *overwritten*! !!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +Instructions: +1) Move this file wherever you want. +2) Rename the file if needed. +3) Confirm your selection by opening the file, for + example by pressing <Enter>. + +Notes: +1) This file is provided for your convenience. You + could delete it and choose another file to overwrite + that, for example. +2) If you quit ranger without opening a file, this file + will be removed and the save operation aborted. +' > "$path" +elif [ "$directory" = "1" ]; then + set -- --choosedir="$out" --show-only-dirs --cmd="echo Select directory (quit in dir to select it)" +elif [ "$multiple" = "1" ]; then + set -- --choosefiles="$out" --cmd="echo Select file(s) (open file to select it; <Space> to select multiple)" +else + set -- --choosefile="$out" --cmd="echo Select file (open file to select it)" +fi + +"$termcmd" -- $cmd "$@" +if [ "$save" = "1" ] && [ ! -s "$out" ]; then + rm "$path" +fi |