0

I have created an application through Python that has library dependencies on Qt4, pyqt4, pyqtgraph etc. This application is based on Raspberry Pi, I have developed and finished it on the platform.

I want to configure Raspberry Pi to only run that one single application. When I power the Raspberry Pi, it should not go to desktop but run the application (eventually only use necessary packages,library etc).

I have been looking around on different forums on how people do it, but it's not what I'm exactly looking for. There are also different solutions but it's just a bit confusing, that's why I'm here asking for advice/tips on how to implement that.

So far I've tried sudo /etc/profile and at the end of that file I call python3 /home/pi/test.py where i eexecute my application. But I get X cannot connect Server error and Virtual Keyboard Florence is not really registering the button pressed.

Dot
  • 1
  • 1

3 Answers3

1

If you want to skip loading the desktop, I would suggest not using the .xinitrc route, but replace loading the session with your own program.

Create ~/.xsessionrc with one line

STARTUP=

Create ~/.Xsession with whatever you want to start. You might want to throw in a few lines to avoid screen blanking and screen savers:

#!/bin/sh
xset s off                  # don't activate screensaver
xset -dpms                  # disable DPMS (Energy Star) features.
xset s noblank              # don't blank the video device
python3 /home/pi/test.py    # now start your script

To use xset, you will have to install x11-xserver-utils first:

sudo apt install x11-xserver-utils

This worked for me on a Pi Zero W with Debian Stretch and a Python TkInter GUI.

Sources: askubuntu, stackexchange

ChrisH
  • 31
  • 2
1

If you happen to use LightDM, the correct file to start your GUI apps before the desktop environment starts is /etc/lightdm/Xsession. If you want to configure startup differently for each user, you typically put there a line

[ -f ~/.xprofile ] && . ~/.xprofile

and then configure the startup for a given user by editing their ~/.xprofile.

Dmitry Grigoryev
  • 28,277
  • 6
  • 54
  • 147
0

When you are executing a script from /etc/profile, it is running in a terminal context, not a display context.

To run a script whenever the window manager initializes, edit your ~/.xinitrc, and add your script.

For example nano ~/.xinitrc, and add python3 /home/pi/test.py.