Děkuji za rady, hodně mi pomohly. Skript umí detekovat spuštěné KDE (kwin) a v případě potřeby vypnout a zapnout KDE kompositor. Chtělo by to ještě přidat automatické obnovení rozlišení a taky se mi moc nelíbí hlídání procesu ve smyčce (wait hlídá jen procesy na pozadi
), ale časem to snad vylepším.
Aby jste rozuměly, KDE 4 používá jako desktop můj téměř šedesátiletý otec, který si rád zahraje některé hry pro Widle. Bohužel, líbí se mu i kompositní efekty KDE, no a to se spolu dokáže docela slušně porvat
Takže jsem hledal nějaký způsob jak to vyřešit, což se prozatím povedlo, takže velké Ď
.
Přikládám i testovací skript, kdyby to někoho zajímalo, nebo třeba potřeboval vyřešit podobný problém (je to upraveny skript z linku Jurase N):
#! /bin/sh
RESULTH=""
RESET="false"
KWIN=$( ps -A | grep kwin )
### Kontrola spusteni KDE a komposice
if [ "$KWIN" ]
then
RESULTH=$(qdbus org.kde.kwin /KWin org.kde.KWin.compositingActive)
if [ "$RESULTH" = "true" ]
then
echo "KDE compositing turn off"
RESET="true"
qdbus org.kde.kwin /KWin org.kde.KWin.toggleCompositing
sleep 2
fi
fi
### Spusteni windows programu
/usr/bin/q4wine-cli -p "Adventure" -i "Dungeon Rider"
sleep 5
### Kontrola behu EXE aplikace
EXE_PID=$(ps -A -o pid -o comm | grep "Dungeon" | sed 's/[ ]*\([0-9]*\)[ ]\(.*\)/\1/g')
#wait $EXE_PID
while [ "$EXE_PID" != "" ]
do
sleep 5
EXE_PID=$(ps -A -o pid -o comm | grep "Dungeon" | sed 's/[ ]*\([0-9]*\)[ ]\(.*\)/\1/g')
done
### Obnova predchoziho stavu KDE - je-li spusteno
if [ "$KWIN" ]
then
if [ "$RESET" = "true" ]
then
echo "KDE compositing turn on"
qdbus org.kde.kwin /KWin org.kde.KWin.toggleCompositing
fi
fi