Ovládání kompozitoru KDE 4 z řádky

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Ovládání kompozitoru KDE 4 z řádky
« kdy: 27. 03. 2011, 11:47:14 »
Zdravím,

nevíte, prosím, někdo zda a jak lze ovládat plasmu v KDE 4 přes příkazovou řádku? Konkrétně bych potřeboval dát do spouštěcích skriptů (bash) pro hry běžících pod wine nějaký příkaz, který by vypnul kompozitní efekty ještě před spuštěním wine a po ukončení je zase zapnul. Mnoho akcelerovaných her pod wine se totiž s kompozitními efekty plasmy nesnese a v těch lepších případech jen spadnou. V těch horších se seknou a je nutné vyrestartovat XServer.

Dopředu díky
« Poslední změna: 27. 03. 2011, 20:33:52 od Petr Krčmář »


nazir

  • ***
  • 110
  • Veni, vidi, discessi.
    • Zobrazit profil
    • hic sunt elephanti
Re: Ovládání kompozitoru KDE 4 z příkazové řádky
« Odpověď #1 kdy: 27. 03. 2011, 14:30:41 »
Určitě to půjde i nějak jednodušeji a více šetrněji, nicméně pro začátek můžete zkusit něco ve smyslu:

Kód: [Vybrat]
kwriteconfig --file kwinrc --group Compositing --key Enabled --type bool false
qdbus org.kde.kwin /KWin reconfigure

...a zase zpátky:

Kód: [Vybrat]
kwriteconfig --file kwinrc --group Compositing --key Enabled --type bool true
qdbus org.kde.kwin /KWin reconfigure

EDIT: nebo na to jít takhle:

Kód: [Vybrat]
qdbus org.kde.kwin /KWin org.kde.KWin.toggleCompositing
« Poslední změna: 27. 03. 2011, 14:43:35 od Petr Vorálek »

Re: Ovládání kompozitoru KDE 4 z řádky
« Odpověď #2 kdy: 27. 03. 2011, 21:46:35 »
Více o problematice najdete na http://forum.kde.org/viewtopic.php?f=66&t=19956&sid=21c948b5bcc9e0cb41b8a4eceaae42d4&start=15 je tam popsáno i jak zjistit aktuální stav efektů s návrhem jednoduchého scriptu pro hry

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re: Ovládání kompozitoru KDE 4 z řádky
« Odpověď #3 kdy: 28. 03. 2011, 11:48:39 »
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é Ď  ;D.

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):

Kód: [Vybrat]
#! /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
 
« Poslední změna: 28. 03. 2011, 12:14:17 od D.A. Tiger »