Единственный способ, которым я могу придумать, не очень элегантный. Вы можете запустить скрипт в фоновом режиме, который подсчитывает количество открытых окон Firefox каждую секунду и запускает вашу команду, если это число меняется. Что-то вроде:
#!/usr/bin/env bash
## Run firefox
/usr/bin/firefox &
## Initialize the variable to 100
last=100;
## Start infinite loop, it will run while there
## is a running firefox instance.
while pgrep firefox >/dev/null;
do
## Get the number of firefox windows
num=$(xdotool search --name firefox | wc -l)
## If this number is less than it was, launch your commands
if [ "$num" -lt "$last" ]
then
rm -rf ~/.wine-pipelight/*;
## I included this since you had it in your post but it
## does exactly the same as the command above.
rm -rf ~/.wine-pipelight/./.*;
cp -a ~/viewright_backup/. ~/.wine-pipelight
fi
## Save the number of windows as $last for next time
last=$num
## Wait for a second so as not to spam your CPU.
## Depending on your use, you might want to make it wait a bit longer,
## the longer you wait, the lighter the load on your machine
sleep 1
done
Сохраните приведенный выше скрипт как firefox
, поместите его в свой ~/bin
каталог и сделайте его исполняемым chmod a+x ~/bin/firefox
. Так как Ubuntu добавляет ~/bin
к вашему $PATH
по умолчанию и добавляет его перед любыми другими каталогами, запущенный firefox
запустит этот скрипт вместо обычного исполняемого файла firefox. Теперь, когда скрипт запускается /usr/bin/firefox
, это означает, что ваш обычный firefox появится, как вы и ожидаете, только с запущенным скриптом. Сценарий закроется, как только вы закроете Firefox.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:
Этот скрипт
- Не элегантно, его нужно запускать как бесконечный цикл в фоновом режиме.
- Требуется
xdotool
, установите его сsudo apt-get install xdotool
- Не работает для вкладок, только окна.