Skip to content
Sticky Fingers Kali Pi
Python Shell
Branch: master
Clone or download

Latest commit

Latest commit d978152 Jan 13, 2019


Type Name Latest commit message Commit time
Failed to load latest commit information.
Menus Update Mar 14, 2019
VERSION Add Pi70 support Jun 15, 2018
X-menu Move make_button to button class Feb 12, 2017
debug Move make_button to button class Feb 12, 2017
menu Add support for HyperPixel 4.0 Jan 12, 2019

KALI-PI Launcher

Simple touch menu for Raspberry Pi projects using a 3.5" (480x320) or 2.8" (320x240) touch screen based on garthvh's original project.

Thanks to JPearn for porting it to 2.8" and to ArmyGuy255a for cleaning up the code and improving the layout.

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 Kali-Pi in action

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
cd Kali-Pi

customise the file "menu" to match the path, define the screen size, etc.
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


Start Screen


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 "", 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 ""

The buttons allow us to stop and start services

The button changes to green when the service is running Press the button again to stop the service.

The variable "KPPIN" in the file ~/menu can be set to "1" to enable PIN authentication to hide the menus from spying eyes:



The screensaver can be enabled by setting the variable KPTIMEOUT in the file "./menu". Set it to the number of minutes after which the screensaver should kick in (very approximate value). Use 1 for 1 min, 0.5 for 30sec, etc. Touch anywhere on the screen to wake the system up. When KPPIN is set, the screen will return to the PIN menu after waking up.

Run menu at startup

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/Kali-Pi/menu

Fix Pygame on Debian Jessie

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 wheezy main contrib non-free

Import the corresponding keys:

deb 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 :-)

You can’t perform that action at this time.