Simple touch menu for Raspberry Pi projects using the 3.5" Adafruit PiTFT 480x320 touch screen based on garthvh's original project. It's been slightly improved to be more resource friendly, allow to scroll through multiple themes and return after closing an application.
It runs as a python script in the framebuffer without needing a desktop environment.
This menu is the default launcher in Sticky Finger's Kali Pi
I was after an easy way to launch X Window on either the TFT screen or through HDMI without the need for massive reconfigurations. I came accross garthvh's project featured on Adafruit and used it as basis for this project
git clone https://github.com/re4son/pitftmenu
cd pitftmenu
customise the file "menu" to match the path
cusomise the scripts to suit your needs
Important: Pygame is broken on on Debian Jessie. I'll explain below how to fix it.
sudo ./menu
The first menu is menu_kali-1.py, which provides the following options:
All functions are self explainatory. After exiting and application, the screen returns back to the last menu.
The "Screen Off" function launches the python script "menu_screenoff.py", which uses the RPi.GPIO module to turn the screen off. You can turn it back on by pressing anywhere on the screen.
Using the ">>>" button, we can scroll to the next screen, namely "menu_kali-2.py"
Some more applications to launch:
Kismet and SDR-Scanner have to be installed for this to work. If you want to enable the reboot and shutdown commands you will need to make the following updates
sudo visudo
Add the following line:
%pi ALL=(ALL:ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/shutdown, /home/pi/pitftmenu/menu
This script allows us to stop and start services:
Press a button to start a service.
The button changes to green when the service is running:
Press the button again to stop the service.
The last script displays some health information:
The preferred method to run this script on startup is to add it to the end of ".profile"
nano ~/home/.profile
And add the following line to the bottom of the file
sudo /home/pi/pitftmenu/menu
The package "libsdl1.2-15-10", which ships with Debian Jessie, breaks pygame. To make it work we have to revert back to "libsdl1.2-15-5" from Wheezy.
The quickest way is to comment everything out in your /etc/apt/sources.list and temporarily add:
deb http://archive.raspbian.org/raspbian wheezy main contrib non-free
Import the corresponding keys:
deb http://archive.raspbian.org/raspbian wheezy main contrib non-free
gpg -a --export 9165938D90FDDD2E | sudo apt-key add -
Remove the offending package and replace it with the working one:
sudo apt-get update
sudo apt-get remove libsdl1.2debian python-pygame
apt-get install libsdl-image1.2 libsdl-mixer1.2 libsdl-ttf2.0-0 libsdl1.2debian libsmpeg0 python-pygame
sudo apt-mark hold libsdl1.2debian
Restore "/etc/apt/sources.list" to it's original state.
That's it. Pygame is fixed :-)
This project is a fork of garthvh's work, available here: https://github.com/garthvh/pitftmenu