When my Raspberry PI starts it will start a process using systemd. At this point the display of the PI will be the standard PIXEL desktop. This process does not run as root.

What I am looking for is a way to display something full screen over the top of the desktop from the systemd process. The idea being this process will receive data over the network and then display various things on the screen to the user.

I've read a about a few technologies but not sure how they fit together.

The first I saw was FrameBuffers which looks like a way to write data to the screen but I am not sure if this is just to the current terminal or full screen over the desktop.

The other mechanism I saw was writing to the GPU which directly outputs to the HDMI port. The examples I saw here we using assembly language but my code would be written in python.

I would appreciate some pointers on if what I want to do is possible otherwise I will need to find another solution.

Thanks in advance.

1 Answer 1


Have another program which runs on the user's account and is autostarted whenever the user logs in. That program waits for notifications from your background daemon received via a unix domain socket or TCP socket, then opens a fullscreen window with the appropriate message.

That's pretty much how every other notification service is implemented.

  • Hi Janka. Yes we can do this however it may be difficult to update that program if needed once the RPI is deployed to a remote location. Unless there is anything already written you can think of? Sounds like my idea isn't possible / easy to do then?
    – pinoob
    May 18, 2018 at 14:31
  • If the two programs are in the same package, they are also updated at the same occasion. Your idea in contrary is extremely complicated because it bypasses the usual graphics functions – you had stop stop the X server to avoid your hand-rendered output isn't overwritten the next moment. One could do it, but it will introduce naughty side-effects on X clients.
    – Janka
    May 18, 2018 at 18:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.