38 lines
815 B
Bash
Executable File
38 lines
815 B
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ $# = 0 ]; then
|
|
cat <<EOF
|
|
Usage: $(basename "${0}") process_name [executable_name] [--take-first]
|
|
process_name As recognized by 'xdo' command
|
|
executable_name As used for launching from terminal
|
|
--take-first In case 'xdo' returns multiple process IDs
|
|
EOF
|
|
exit 0
|
|
fi
|
|
|
|
# Get id of process by class name and then fallback to instance name
|
|
id=$(xdo id -N "${1}" || xdo id -n "${1}")
|
|
|
|
executable=${1}
|
|
shift
|
|
|
|
while [ -n "${1}" ]; do
|
|
case ${1} in
|
|
--take-first)
|
|
id=$(head -1 <<<"${id}" | cut -f1 -d' ')
|
|
;;
|
|
*)
|
|
executable=${1}
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ -z "${id}" ]; then
|
|
${executable}
|
|
else
|
|
while read -r instance; do
|
|
bspc node "${instance}" --flag hidden --to-monitor focused --focus
|
|
done <<<"${id}"
|
|
fi
|