Table of Contents

1. Target systems
2. Installation
2.1. Configuration
3. Music Collection
4. Screenshots
5. Downloading
5.1. Code Repository
6. ToDo
7. Feedback
8. Thanks

Felix Obenhuber <jukx@obenhuber.de>


is a software Jukebox designed for touchscreen usage. It's for playing mp3/vorbis and m3u files (inclusive radio streams). The main goal has been the album or radio station selection via album art images in an old fashioned way.

Currently JukX is in a quick and dirty hack - just good enough to serv my kitchen with music ;-). It's NOT a simple install and run app atm - see music collection for the background. JukX is released under the terms of the GNU General Public License v2.

Feel invited to improve/comment - but don't forget to post the patch!

1. Target systems

JukX has been developed on and for an x86 Debian 4.1 Etch system. Due there are no OS dependent parts within the script it should run on every target you're able to install

  • Python 2.4 or higher
  • PyGtk
  • XMMS2 Jerkyll

For non-Unix like platform (e.g Microsoft Windows), some changes on source level are required.

As above, the concept of JukX aims to control the application via a touchscreen interface. Mouse/Trackball/Touchpad usage of course also might work but is quite "uncool".

2. Installation

First of all you'll need a working installation of XMMS2 (release Jerkyll or higher). JukX is written in Python, so without Python installed on the target system you won't have much fun. Furthermore JukX makes use of the Python bindings of GTK2. The GUI is created using Glade 2. You can check your Python installation by manually importing the modules referenced in the main JukX Python script.

For installation instructions, please refer the INSTALL document, shipped with your JukX release.

2.1. Configuration

JukX is configured by a small an simple config file, that can be placed here:

  • /usr/share/jukx/jukx.conf
  • $HOME/.jukx.conf
  • $HOME/.config/xmms2/clients/jukx.conf

2.1.1. Default Configuration

The keys are IMHO quite self speaking…


# specify path to jukx pixmaps
# default: /usr/share/jukx/pixmaps

# set cmd to be executed whe shutdown button pressed
# default: true
shutdown_cmd='sudo /sbin/shutdown -h now'

# set 1 to insert [A-Z] buttons - direct jump
# default: 1

# try to save cpu usage by stopping playback when a new album is selected
# default: 0

# main window resolution
# default: 800x600

# directory to store and search cached files
# default: ~/.config/xmms2/clients/jukx/cache


# chooser geometry
# default: 5x3

# size of albums thumbs
# default:

# size of wallpaper cover
# default: 400

# fullscreen mode
# default: 1

# show statusbar
# default: 0

# show albums without a coverfile specified by binhash value
# default: 0

3. Music Collection

JukX expects you to have a very clean music collection. To listen to some mp3 or vorbis files you'll need them to be integrated into your XMMS2 media database AND linked to some album art image files. Without a cover file specified for a specific media file you won't be able to select it withing JukX. Please refer the XMMS2 documentation for details.

4. Screenshots

For full resolution shots - please check the SF project site screenshot section

album_chooser.jpg now_playing.jpg queue.jpg about.jpg

5. Downloading

  • Files releases will be done via the SF project files section.
  • IMPORTANT: Jukx is under heavy development - using a repository snapshot is strongly recommended! PLEASE use the snapshot function here!.

5.1. Code Repository

The source repository can be cloned with the usage of GIT:

git clone git://jukx.git.sourceforge.net/gitroot/jukx

To view latest changes just take a look at the JukX Gitweb page.

6. ToDo

JukX is in a very alpha state… here's the todo list:

  • Increase robustness - add error checks…
  • Speed up (initialization takes with 280 albums about 2 minutes on a Cyrix 233 MHz system)
  • Think about marked places: grep -R -E FIXME\|TODO\|XXX *
  • Think about removing the statusbar at the bottom, that just displays playing or paused at the moment. This state is also provided by the image of the pause/play button image. Maybe we can post here something usefull?
  • Improve this website.

7. Feedback

If you want to tell the JukX developers something about - don't hang fire to post on the projects mailing list:


8. Thanks

JukX was initially launched by Felix and proceeded to the current state with the help of many people:

Thanks to

  • Anne, student at the Universitiy of Applied Sciences Konstanz (Communication Design) for the most famous artwork ever seen on a touchscreen jukebox
  • XMMS2 Project: Thanks you for the great backend! Without JukX won't have been written in a few days only
  • PyGTK community: Thanks for answering my layout questions.
  • various friends for suggestions / alpha testing
  • Agnes, for checking this document.

Have fun!