September 2, 2009 — Hans

Since a few people have asked me how I recorded the Plasma HowTo screencasts, I decided to post a short HowTo here. And is there any better way to show this than with an animated GIF? I can almost hear you saying “of course not!”, so here we are:

I use byzanz to record my desktop. It works as a GNOME panel applet but can also be used from the command line.

Now back to the screencast above. I usually do the following steps:

Open a terminal to run the command. My terminal emulator of choice is Yakuake, because it’s very easy to hide and unhide. I use the following command:

byzanz-record --loop --cursor --delay=delay --duration=duration filename

where delay is the time before it starts recording, duration the duration of the animation and filename the name of the output file. --loop specifies that the animation will loop and --cursor makes sure that it also captures the mouse cursor. As an example, the command in the screencast is byzanz-record --loop --delay=3 --duration=8 -c plasma_howto-throw-ball

Note that I’ve written -c here instead of --cursor for some unknown reason. Enter byzanz-record --help to see all options. I have a timer beside me which I start when I execute the command. After 4 seconds (3 seconds of delay + 1 second when the mouse cursor is idle) I start to do whatever I want recorded.

Now I set the delay to 1 second and start after a short delay (~ 1 second, no timer needed). Afterwards I edit the file with GIMP to make the first frame 1 second long. When the recording is done, I preview the file in Firefox to see if it looks good. I’m pretty strict – a small mistake and I redo the recording. For example, the ball screencast I did in the screencast is on the borderline – I accidentally moved the mouse cursor one or two pixels after I’m done.

Tips

Finally here are some tips and tricks:

I created a new user to do the recording. This has several benefits, one being that you can nuke the Plasma config files without hesitation to restore the settings to default. The command to do this is

kquitapp plasma-desktop; rm $KDEHOME/share/config/plasma-desktop-appletsrc; plasma-desktop

If the $KDEHOME environment variable isn’t set, try to replace it with ~/.kde4 or ~/.kde .

Disable Nepomuk/Strigi and other stuff that might pop up.

For me it didn’t work very well to record the screencast with Desktop Effects enabled. You can disable it temporary in System Settings -> Desktop Effects -> Suspend Compositing.

Configure the task manager to only show tasks from the current desktop. As you can see in my screencast, I keep a Dolphin and a Firefox window opened on my other virtual desktop to quickly preview the results.

Gwenview also works for viewing the GIF files. However, note that it’ll loop the animation even if they’re recorded without the --loop option. I warn you about this because I learned it the hard way.

option. I warn you about this because I learned it the hard way. Most people probably know this, but to run the same command again you just have to press the up arrow on your keyboard to go back in history in the terminal – no need to copy and paste the command over and over again. Just make sure that you don’t overwrite a screencast you’re satisfied with! (Yep, it happened to me).

As you might have noted, my filename (plasma_howto-throw-ball) doesn’t have the .gif extension. There’s actually a reason for this – to avoid overwriting good screencasts, I add the extension when I’m happy with the screencast. Then it doesn’t matter if I accidentally run the same command again without changing the output file name.

(plasma_howto-throw-ball) doesn’t have the extension. There’s actually a reason for this – to avoid overwriting good screencasts, I add the extension when I’m happy with the screencast. Then it doesn’t matter if I accidentally run the same command again without changing the output file name. How to find out the duration beforehand? You can first do a test recording to get an approximate time. If the actual record is too long – which is better than too short – you can edit the GIF file in GIMP. The frames are shown as layers, and you can edit a layer name to change the duration of that frame.