Kopete и DCOP
Марущенко Дмитрий
yojick на v.gz.ru
Чт Сен 20 12:49:58 BST 2007
В сообщении от 20 сентября 2007 Vyacheslav Karamov написал(a):
> Пришлите обязательно. Я задавал подобный вопрос, но я не знаю до сих пор
> ничего про DCOP.
> Интересно будет посмотреть. Ну и подскажите, пожалуйста, где можно
> почитать об этом?
>
> Марущенко Дмитрий пишет:
> > Кстати, кому нужно, могу прислать скрипт, ради которого всё и было
> > затеяно: управление амароком через аську :)
Не судите строго, первый опыт программирования на bash =)
Если есть советы и исправления - высказывайте :)
$ cat ~/.kde/share/apps/kopete/amarok_ctrl.sh
---------------------------------------------
#!/bin/sh
str=$1
dname=`expr match "$str" '.*сообщение от \(.*\)<br>'`
cmd=`expr match "$str" '.*amarok \([a-z]*\)'`
uins=`dcop kopete KopeteIface contactsForDisplayName "$dname"`
sendicqmsg()
{
message=$1
for rcvr in $uins; do
numbers=`expr match "$rcvr" '[0-9]*'`
if [ $numbers -gt 5 ];
then dcop kopete KopeteIface messageContact $rcvr "$message"
fi
done
}
case $cmd in
prev)
dcop amarok player prev
nowplaying=`dcop amarok player nowPlaying`
sendicqmsg "Now playing: $nowplaying"
;;
next)
dcop amarok player next
nowplaying=`dcop amarok player nowPlaying`
sendicqmsg "Now playing: $nowplaying"
;;
stop)
dcop amarok player stop
sendicqmsg "Stopped."
;;
play)
dcop amarok player play
nowplaying=`dcop amarok player nowPlaying`
sendicqmsg "Now playing: $nowplaying"
;;
pause)
dcop amarok player playPause
sendicqmsg "Pause toggled."
;;
now)
nowplaying=`dcop amarok player nowPlaying`
sendicqmsg "Now playing: $nowplaying"
;;
volumeup)
dcop amarok player setVolumeRelative +20
volume=`dcop amarok player getVolume`
sendicqmsg "Current volume is: $volume"
;;
volumedown)
dcop amarok player setVolumeRelative -20
volume=`dcop amarok player getVolume`
sendicqmsg "Current volume is: $volume"
;;
mute)
dcop amarok player mute
sendicqmsg "Mute toggled."
;;
volume)
volume=`dcop amarok player getVolume`
sendicqmsg "Current volume is: $volume"
;;
help)
sendicqmsg "usage:amarok [help|prev|next|stop|pause|play|now|volume|volumeup|volumedown|mute]"
esac
--------------------------------
Как пользоваться: сохраняем этот скрипт, делаем исполняемым и в kopete в настройках уведомлений
на событие "Входящее сообщение" ставим запуск этой программы с параметром %s.
У меня строка запуска такая: ~/.kde/share/apps/kopete/amarok_ctrl.sh %s
Подробная информация о списке рассылки ubuntu-ru