DIY, Projects

Convert an Old Laptop Into a Digital Photo Frame (3: Software)

As I mentioned in part 1, I used DSL for this. There were two reasons. 1) I would like to eventually get this to boot from a thumb drive and 2) I just wanted to play with DSL. Because DSL is meant mainly to be run from a live cd, it has some quirks when dealing with an actual install. I am using a PCMCIA ethernet card for network right now, and since fstab comes up before the card, I couldn’t mount the samba share using fstab. Instead, I used a script that as far as I know, only DSL uses. The file is /opt/ and it executes on boot. So I put the samba mount in there. Next was the issue of launching the program to hide the mouse cursor, and launch the slideshow program. Taken from the blog mentioned in one of the other parts (part 1, I think) I used unclutter to hide the cursor and feh to do the actual slideshow. These files were put into .xinitrc in the default home directory. I had a problem with this, however. What I didn’t realize is that the window manager MUST be the last thing in the script, because it runs forever (essentially). So, the unclutter command and the feh command must come BEFORE the window manager (fluxbox in the case of DSL). Since all this does, and all I need it to do is show pictures, I removed the window manager from the file altogether. This means that if feh is killed, however, that X dies, and takes you back to a command prompt.

This is my .xinitrc file:

# put X windows programs that you want started here.

Be sure to add at the end of each command the &

if egrep -qv
noicons /proc/cmdline 2>/dev/null; then
&>/dev/null &
unclutter -idle 1 &
feh /mnt/pictures/frame -zZrFD 10

The # lines are commented out (meaning they don’t execute anything. The stuff starting with if and ending in fi were in the file by default. The unclutter line launches unclutter, and tells it to hide the cursor after the cursor has been idle for 1 second. The ampersand (&) at the end of the line tells unclutter to run in the background, so that the .xinitrc file can execute the next command, in this case feh. feh is set to show a slideshow of all the photos in /mnt/pictures/frame (which is a samba mount, mentioned above). The z option randomizes the pictures, Z is for zoom, r is recursivly go through the directories, F is full screen, and D 10 is the amount of time between pictures (in seconds).

Here is the finished product:


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s