Raspberry Pi autostart chromium on login

To autostart chromium on start / boot, without Desktop Environment, you have to do the following:

1. Install Chromium
My tutorial to install chromium an Raspberry Pi without desktop Environment.

2. Use raspi-config to configure

sudo raspi-config

-> Boot Config
–> Desktop / CLI
—> Console Autologin

2. Add your start script at the end of „.bashrc“
Mine is

xinit /home/pi/start-c.sh

Don’t forget the xinit.

My startscript Looks like this:

# Turn off HDMI to safe energy
sudo /opt/vc/bin/tvservice -o
# I want no Cursor, but this doesn't work
# Rotate touch input by 90°
matchbox-window-manager -use_cursor no -use_titlebar no &
xinput set-prop 'FT5406 memory based driver' 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1
# Power saving and screensaver after 2 minutes
xset dpms 120 120 120
# watch gpio pin for Motion sensor and start chromium with some options
gpio-watch -e rising 4&
chromium-browser  --fast --fast-start --disable-popup-blocking --disable-infobars --kiosk --incognito  --disable-session-crashed-bubble --touch-events=enabled --allow-running-insecure-content https://yoururl/

Raspberry Pi: Rotate Official Touch Display by 90°

I wanted to rotate my Rasperry Pi Touch Display by 90 degrees. But I noticed this isn’t possible via boot parameters in the config.txt file.

It is possible to rotate the display in config.txt, but the touch input will not work correctly. There is also a change in the newest raspbian xinput driver releases.

xinput set-prop 'FT5406 memory based driver' 'Evdev Axes Swap' 1

does NOT work anymore.

So here is the solution:

1. Rotate Display in /boot/config.txt
Add line:


2. Install xinput

sudo apt-get install xinput

3. Find your Driver

xinput --list

Or over SSH:

DISPLAY=:0 xinput --list

4. Rotate touch input via xinput
You need to matrix transform the input coordinates

xinput set-prop 'FT5406 memory based driver' 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1


Exit screensaver on Raspberry Pi with motion sensor


I want to build a smart home display for my living room. Additionally it should go to to sleep/screensaving automatically and I want it to wake up if someone walks by.

So I buyed a cheap infrared PIR motion sensor.
Something like this:
Look at amazon

Then I connected it to 5V, GND and GPIO Pin 4:
Search Google for images

And now the software part

I tried some Python scripts but for my case these were not robust enough. To exit the screensaver you Need to execute some console commands.

First: Configure screensaver

xset dpms 120 120 120

This sets the screensaver and power management to power off after 2 minutes

Second: Exit screensaver from console

xset s reset
xset dpms force on

This code resets the timer and brings on power again.

Third: Do it on GPIO event
After some Fails I found GPIO-Watch, a small utility that watches GPIO events and executes shell scripts.


1. Download

wget https://github.com/larsks/gpio-watch/archive/master.zip

2. Unzip

unzip ./master.zip

3. Enter Directory

cd gpio-watch-master

4. Build

sudo make install


1. Create a script named „4“ under /etc/gpio-watch because gpio-watch will later execute this on rising on GPIO pin 4.
2. Put your commands into the script

#echo 'set on'
xset s reset
xset dpms force on

3. Let gpio-watch watch your Pins

gpio-watch -e rising 4

Installing Chromium on Raspberry Pi without desktop

Start with a Rasbian light version.
Install chromium and x-server

sudo apt-get install chromium-browser
sudo apt-get install xserver-xorg
sudo apt-get install xinit

If you now start chromium-browser it will show the following error:

Failed to put Xlib into threaded mode.

Gtk-WARNING cannot open display

this is because you have to start it with xinit:

xinit chromium-browser

Chromium will start, but you will need a minimal window manager.

sudo apt-get install matchbox-window-manager

Now you need a shell script to start your chromium

sudo nano start-c.sh

Insert the following lines, Exit with ctrl+x, Y and Enter.

matchbox-window-Manager -use_cursor no&
chmod +x start-c.sh

Start it now with:

xinit ./start-c.sh

Add Chromium options as you like. E.g. –Kiosk –allow-running-insecure-content plus your URL