Isso pode não fazer nada para resolver o problema de notificação na pergunta. No entanto, o padrão de comando descrito ( [cmd] ; wmctrl -a [cls]
) pode iniciar várias instâncias de um programa, que o script a seguir evita. Para usar, salve em algum lugar no caminho, como ~/bin/find_app.sh
, e conceda permissão de execução ( chmod +x ~/bin/find_app.sh
).
#! /usr/bin/env bash
if [ $# -lt 1 ]; then
echo "usage: 'basename $0' [class-name] [command] [args]"
echo
echo "Find and activate window with [class-name]."
echo "Execute [command] if window cannot be found."
echo
echo "If [command] is not given, it is assumed to be [class-name]"
exit 1
fi
if [ $# -lt 2 ]; then
# find_app="wmctrl -xa $class"
class="$1"
find_app="xdotool search --onlyvisible --class $class windowactivate"
command="$1"
else
class="$1"
find_app="xdotool search --onlyvisible --class $class windowactivate"
shift
command="$@"
fi
if (! eval "${find_app}") ; then
eval "xdotool exec ${command}"
fi