#!/usr/bin/env sh # Description: Independent POSIX-compliant GUI application launcher. # Fuzzy find executables in $PATH and launch an application. # stdin, stdout, stderr are suppressed so CLI tools exit silently. # # To configure launch as an independent app launcher add a keybind # to open launch in a terminal e.g., # # xfce4-terminal -e "${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins/launch # # Requires: fzf or fzy # # Usage: launch [delay] # delay is in seconds, if omitted launch waits for 1 sec # # Integration with nnn: launch is installed with other plugins, nnn picks it up. # # Shell: POSIX compliant # Author: Arun Prakash Jana # shellcheck disable=SC2086 IFS=':' get_selection() { if which fzf >/dev/null 2>&1; then { IFS=:; ls -H $PATH; } | sort | fzy elif which fzy >/dev/null 2>&1; then { IFS=:; ls -H $PATH; } | sort | fzy else exit 1 fi } if selection=$( get_selection ); then setsid "$selection" 2>/dev/null 1>/dev/null & if ! [ -z "$1" ]; then sleep "$1" else sleep 1 fi fi