Controlling Kaffeine via shell

After several dozens of minutes spent poking KDE’s dbus mechanism I found a way, how to tell active Kaffeine instance several often-used commands.

Get current volume:

#!/bin/bash
DISPLAY=:0
export DISPLAY

dbus-send --print-reply --dest=org.kde.kaffeine /Player org.freedesktop.MediaPlayer.VolumeGet

Set volume:

#!/bin/bash
DISPLAY=:0
export DISPLAY

dbus-send --print-reply --dest=org.kde.kaffeine /Player org.freedesktop.MediaPlayer.VolumeSet int32:$1

Toggle fullscreen mode on/off:

#!/bin/bash
DISPLAY=:0
export DISPLAY

dbus-send --print-reply --dest=org.kde.kaffeine /Player org.freedesktop.MediaPlayer.ToggleFullScreen

Switch TV channel to $1:

#!/bin/bash
DISPLAY=:0
export DISPLAY

dbus-send --print-reply --dest=org.kde.kaffeine /Television org.freedesktop.MediaPlayer.PlayChannel string:$1

DVB channels.conf generation for cz-Klet

I’ve recently encountered a problem with scanning for channel frequencies with Linuxtv scan utility. The default /usr/share/dvb/dvb-t/cz-Klet file contained only frequency of our first multiplex and therefore scan was unable to find another channels. Solution was to parse Kaffeines ~/.kde4/share/apps/Kaffeine/scanfile.dvb file and append following frequencies into mentioned cz-Klet file.

T 482000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 506000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 538000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 546000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 562000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 570000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 578000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 586000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 594000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 602000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 618000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 626000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 634000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 650000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 690000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 698000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 706000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 714000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 722000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 730000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 738000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 746000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 770000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 786000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 794000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
T 802000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 810000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 818000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 826000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE

And voi’la, everything works like a charm.

Hint:

scan /usr/share/dvb/dvb-t/cz-Klet > ~/channels.conf
vlc ~/channels.conf