Mopidy extension to show info on a display and control from it
Extension for displaying track info and controlling Mopidy from a touch screen using PyGame/SDL.
Cover images are downloaded from last.fm
- Mopidy >= 1.0
- Pykka >= 1.1
Install by running:
pip install Mopidy-Touchscreen
Or, if available, install the Debian/Ubuntu package from apt.mopidy.com.
Before starting Mopidy, you must add configuration for Mopidy-Touchscreen to your Mopidy configuration file:
[touchscreen] enabled = true screen_width = 320 screen_height = 240 resolution_factor = 8 cursor = True fullscreen = False cache_dir = $XDG_CACHE_DIR/mopidy/touchscreen
The following configuration values are available:
- touchscreen/enabled: If the Touchscreen extension should be enabled or not.
- touchscreen/screen_width: The width of the resolution you want to use in pixels.
- touchscreen/screen_height: The width of the resolution you want to use in pixels.
- touchscreen/resolutin_factor: This value sets how big content is shown. Smaller values will make content bigger and less content will be displayed at once.
- touchscreen/cursor: If the mouse cursor should be shown. (If you use a touchscreen it should be false)
- touchscreen/fullscreen: If you want to be shown as a window or in fullscreen.
- touchscreen/screen_width: The folder to be used as cache. Defaults to $XDG_CACHE_DIR/mopidy/touchscreen, which usually means ~/.cache/mopidy/touchscreen
How to Setup
Use the basic configuration to setup as most standard screens works fine without further configuration.
If you are using this on a raspberry pi you have to run mopidy with root privileges:
Run Mopidy with root privileges
You can use sudo mopidy.
In case you are using musicbox edit /etc/init.d/mopidy file. Change DAEMON_USER=mopidy to DAEMON_USER=root
Do not forget that this is a workaround and that mopidy will run with root privileges.
If you are using a LCD Shield in Raspberry Pi you need to config your LCD:
Configure your LCD Shield
Add to the config the next variables:
[touchscreen] sdl_fbdev = /dev/fb1 sdl_mousdrv = TSLIB sdl_mousedev = event0
This is just an example. It may work but each LCD Shield seems to have its own configuration. To find your values find an example of using pygame with your LCD Shield and it should be something like this in the code:
os.environ["SDL_FBDEV"] = "/dev/fb1" os.environ["SDL_MOUSEDRV"] = "TSLIB" os.environ["SDL_MOUSEDEV"] = "event0"
How To Use
You can use it with a touchscreen or mouse clicking on the icons. In case you are using a keyboard use arrow keys to navigate and enter to select. The GPIO buttons simulate keyboard keys so the use is exactly the same as using a keyboard.
- See track info (track name, album, artist, cover image)
- Seek Track
- Change volume
- Next/Previous track
- Menu (exit mopidy, restart…)
- Shuffle on/off
- Repeat one/on/off
- Playback list and song selection
- Use keyboard or GPIO buttons instead of touchscreen
- Require Mopidy v1.0
- Update to work with changed core playback API in Mopidy 1.0
- Search working
- GPIO and Keyboard support
- Resolution factor to adapt the interface for different screen sizes (Thanks to Syco54645)
- Background image
- Lower CPU usage (Update screen only when needed)
- Bug Fixes
- Bug Fixes
- UI changes
- Smoth text scrolling
- Search albums, artist or songs (Not fully implemented. Basic functionality)
- Font will be included on installation
- First working version