Archiv/Skripte/Multimedia-Tasten unter KDE

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Einen Editor öffnen

  2. ⚓︎ Rechte für Dateien und Ordner ändern

  3. ⚓︎ Ein Terminal öffnen

Inhaltsverzeichnis
  1. Skript erstellen
  2. Tastenkürzel einrichten
  3. Das Skript benutzen

KDE bietet viele Möglichkeiten, die vielen Tasten an Multimedia-Tastaturen und Mäusen auszunutzen. Zwar bringen einige Programme bereits native Unterstützung für diese Tasten mit (so z.B. Amarok), jedoch müssen diese erst konfiguriert werden. Außerdem funktionieren Multimedia-Tasten meistens nur dann, wenn das Programm, welches angesprochen werden soll, auch gerade den Fokus hat. Wer viel am Rechner sitzt und MP3s oder Filme nebenbei hört bzw. schaut, der ist vielleicht eher daran interessiert, die Tasten aus jedem Kontext heraus verwenden zu können. Das folgende Skript soll Abhilfe schaffen.

Skript erstellen

Zuerst speichert man das untenstehende Skript mit einem Editor mit Root-Rechten [1] und speichert es am besten unter /usr/local/bin/ mit dem Namen kdemedia. Dann muss es noch ausführbar gemacht werden [2]. Es arbeitet zusammen mit den KDE-Programmen Amarok, Kaffeine, KsCD und Noatun.

#!/bin/bash

# (c) 2006 by Julian Fleischer aka Warhog
# License: GPLv2 (or -at your option- any later version), see www.gnu.org for further details

app="none"
for i in "amarokapp" "kaffeine" "noatun" "kscd"
  do if [ -n "`ps -U $UID | grep $i`" ]
    then app=$i
    fi
  done

if [ "$app" = "none" ]
  then echo "no kdemedia running"; exit
fi

if [ "$app" = "amarokapp" ]
  then app="amarok"
  fi

case $1 in

"")
  echo "$app"
;;

"-h"|"--help")
  echo "KDE Media Control"
  echo "  usage: kdemedia [command]"
  echo "  if [command] is ommitted, the currently addressed application will be printed"
  echo " Commands:"
  echo "  play"
  echo "  pause"
  echo "  playpause (pp)"
  echo "  stop"
  echo "  next (forward)"
  echo "  prev (previous, back)"
;;

"play")
  case $app in
  "kaffeine")
    dcop kaffeine KaffeineIface play
  ;;
  "amarok")
    dcop amarok player play
  ;;
  "noatun")
    dcop noatun Noatun play
  ;;
  "kscd")
    dcop kscd CDPlayer play
  ;;
  esac
;;

"stop")
  case $app in
  "kaffeine")
    dcop kaffeine KaffeineIface stop
  ;;
  "amarok")
    dcop amarok player stop
  ;;
  "noatun")
    dcop noatun Noatun stop
  ;;
  "kscd")
    dcop kscd CDPlayer stop
  ;;
  esac
;;

"pause")
  case $app in
  "kaffeine")
    dcop kaffeine KaffeineIface pause
  ;;
  "amarok")
    dcop amarok player pause
  ;;
  "noatun")
    dcop noatun Noatun playpause
  ;;
  "kscd")
    dcop kscd CDPlayer stop
  ;;
  esac
;;

"playpause"|"pp")
  case $app in
  "kaffeine")
     if [ "`dcop kaffeine KaffeineIface isPlaying`" = "true" ]
     then dcop kaffeine KaffeineIface pause
     else dcop kaffeine KaffeineIface play
     fi
  ;;
  "amarok")
    dcop amarok player playPause
  ;;
  "noatun")
    dcop noatun Noatun playpause
  ;;
  "kscd")
    if [ "`dcop kscd CDPlayer playing`" = "true" ]
    then dcop kscd CDPlayer stop
    else dcop kscd CDPlayer play
    fi
  ;;
  esac
;;

"next"|"forward")
  case $app in
  "kaffeine")
    dcop kaffeine KaffeineIface next
  ;;
  "amarok")
    dcop amarok player next
  ;;
  "noatun")
    dcop noatun Noatun forward
  ;;
  "kscd")
    dcop kscd CDPlayer next
  ;;
  esac
;;

"prev"|"previous"|"back")
  case $app in
  "kaffeine")
    dcop kaffeine KaffeineIface previous
  ;;
  "amarok")
    dcop amarok player prev
  ;;
  "noatun")
    dcop noatun Noatun back
  ;;
  "kscd")
    dcop kscd CDPlayer previous
  ;;
  esac
;;

"quit")
  case $app in
  "kaffeine")
    dcop kaffeine KaffeineIface quit
  ;;
  "amarok")
    dcop amarok MainApplication-Interface quit
  ;;
  "noatun")
    dcop noatun MainApplication-Interface quit
  ;;
  "kscd")
    dcop kscd MainApplication-Interface quit
  ;;
  esac
;;

esac

Tastenkürzel einrichten

In Verbindung mit dem KDE-Gesten-Manager kann dieses Skript wahre Wunder bewirken. Dazu konfiguriert man es im Kontrollzentrum (kcontrol) unter

Hier einfach eine neue Gruppe erstellen (unten) und z.B. "Multimedia-Tasten" nennen (oben rechts unter "Name der Aktionsgruppe"). Dann muss für jede Multimedia-Taste eine Aktion erstellt werden ("Neue Aktion", unten), für die ein Auslöser und ein aufzurufender Befehl definiert werden müssen. Hierfür einfach oben rechts auf den Reiter "Auslöser" klicken und rechts im Button-Menu "Neu" die Option "Kurzbefehl-Auslöser" auswählen. Jetzt kann man eine Multimedia-Taste auswählen (in das weiße Feld klicken und die entsprechende Taste drücken) und schon ist der Auslöser definiert. Nun auf den Reiter "Aktionen" (rechts neben Auslöser) klicken und im Button-Menü "Neu" die Option "Befehl/Adresse" auswählen. Hier muss für die verschiedenen Multimedia-Tasten ein entsprechender Befehl angegeben werden:

Aktion Befehl
Wiedergabe kdemedia play
Pause kdemedia pause
Kombinierte Wiedergabe/Pause-Taste kdemedia playpause
Stop kdemedia stop
Nächster/voriger Titel kdemedia next bzw. kdemedia prev

Jetzt den Gesten-Manager durch einen Klick auf "OK" beenden.

Das Skript benutzen

Wenn jetzt eine der Anwendungen geöffnet ist, kann man diese über die Multimedia-Tasten steuern. Wenn mehrere der oben genannten Anwendungen geöffnet sind, wird zunächst KsCD, dann Noatun, dann Kaffeine und zu guter Letzt Amarok angesprochen. Das bedeutet, dass bei gleichzeitig geöffnetem Amarok und Kaffeine die Multimedia-Tasten Kaffeine steuern, wenn nur Amarok offen ist dann Amarok.

Wenn man in einem Terminal [3] einfach nur

kdemedia 

ohne Argumente angibt, kann man sehen, welche Anwendung gerade angesprochen wird. Durch Befehl

kdemedia quit 

kann die gerade anzusprechende Anwendung beendet werden.

Experten-Info:

Die Reihenfolge, in der die Programme angesprochen werden, kann geändert werden, indem man diese in der folgenden Zeile ändert:

for i in "amarokapp" "kaffeine" "noatun" "kscd" 
|}}

}}}