Napisałem mały skrypt, który umożliwia klonowanie ekranu Linuxa w całości na Apple TV. Kod w bash poniżej:
#!/bin/bash
if [ -f ~/tmp/apple ]
then
proc=`cat ~/tmp/apple`
kill -9 $proc
rm -f ~/tmp/apple 2>/dev/null
kdialog --passivepopup "Koniec udostpniania na Apple TV" 5 2>/dev/null
else
choice="$(avahi-browse _airplay._tcp -ptr|grep IPv4|awk -F';' '{print $7}'|grep -v ^$|zenity --list --hide-header --title="Wybór Apple TV" --text="Wybierz Apple TV..." --column="IP adresses" 2>/dev/null)"
if [ -z "$choice" ]
then
kdialog --passivepopup "Błąd - Nie dokonano wyboru" 5 2>/dev/null
exit
else
PASSWD="$(zenity --password --title="Wprowadż hasło")"
if [ -z "$PASSWD" ]
then
java -jar ~/Pobrane/airplay.jar -h "$choice" -d >~/tmp/apple_wyn 2>&1 &
proc=$!
else
java -jar ~/Pobrane/airplay.jar -h "$choice" -a $PASSWD -d >~/tmp/apple_wyn 2>&1 &
proc=$!
fi
sleep 2
error=`ack -1 --match password ~/tmp/apple_wyn`
if [ ! -z "$error" ]
then
kdialog --passivepopup "Niewłaściwe hasło" 5 2>/dev/null
kill -9 $proc
exit
fi
kdialog --passivepopup "Klonowanie ekranu na Apple TV" 5 2>/dev/null
echo $proc > ~/tmp/apple
fi
fi
Działa poprawnie ale tylko jeżeli wywołuję go poleceniem z konsoli. Jeżeli wywołuję go za pomocą zdefiniowanej ikony na pulpicie KDE, nie wykonuje się poniższa linia
error=`ack -1 --match password ~/tmp/apple_wyn`
A mówiąc konkretnie, niezależnie od wcześniejszych waronków zmienna error jest zawsze pusta (null).
Może któryś z Kolegów wie co może być przyczyną?