49 lines
1.4 KiB
Bash
Executable File
49 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# shellcheck disable=SC2086
|
|
# install_keyboard_shortcut=F3
|
|
|
|
# Source the script 'common-functions.sh'.
|
|
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
|
|
ROOT_DIR=$(grep --only-matching "^.*scripts[^/]*" <<<"$SCRIPT_DIR")
|
|
source "$ROOT_DIR/common-functions.sh"
|
|
|
|
_main() {
|
|
local input_files=""
|
|
|
|
# Execute initial checks.
|
|
_check_dependencies ""
|
|
input_files=$(_get_files "par_type=all; par_max_items=20; par_get_pwd=true")
|
|
_unset_global_variables_file_manager
|
|
|
|
# Check if the first file is a binary file.
|
|
local file_1=""
|
|
file_1=$(cut -d "$FIELD_SEPARATOR" -f 1 <<<"$input_files")
|
|
if ! [[ -d "$file_1" ]]; then
|
|
if [[ "$(_get_file_encoding "$file_1")" == "binary" ]] && [[ -s "$file_1" ]]; then
|
|
case "${XDG_CURRENT_DESKTOP,,}" in
|
|
*"kde"* | *"lxqt"*)
|
|
_check_dependencies "command=okteta"
|
|
okteta -- $input_files &
|
|
;;
|
|
*)
|
|
_check_dependencies "command=ghex"
|
|
ghex -- $input_files &
|
|
;;
|
|
esac
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
# Run the main process.
|
|
if _command_exists "code"; then
|
|
code -- $input_files &
|
|
elif _command_exists "geany"; then
|
|
geany -- $input_files &
|
|
else
|
|
_check_dependencies "command=xdg-open; package=xdg-utils"
|
|
$(_xdg_get_default_app "text/plain") -- $input_files &
|
|
fi
|
|
}
|
|
|
|
_main "$@"
|