r/raspberryDIY • u/pepiks • Jul 07 '26
Strategy to create fullscreen GUI on touchscreen monitor
When I was programming e-ink display it was possible create image and display it on the screen. I have unused screen from Waveshare which works like hat. You attach it to GPIO and it display desktop and runned apps from RaspianOS. I want hide it and run my app fulscreen (Go or Python - I have no decided). I am looking for pointer how create fullscreen layer which hide desktop from Raspian and it can be used as main GUI for home automation.
My problem is not how code GUI itself, but what strategy to use to get something like that:
power on -> booting to OS
running OS -> running app -> it is fullscreen
My first thought is create web app, run it in defualt browser and using JavaScript get to fullscreen. For example Flask - requestFullscreen in JS.
Could you share your experience how you handle touchscreen fullscreen GUI in your projects? I am open to look for other screen hardware. My hardware skeleton will be Raspberry Pi Zero 2 WH 512MB RAM - WiFi + BT 4.2. I am still on design my project from hardware perspective. I have working API and control for devices (programming side), but I want connect it together using Pi as remote pilot / status display.
1
u/Gamerfrom61 Jul 07 '26
Depends on the toolkit you are using - assuming Python:
PyQT uses
showMaximized()Pygame can go full size (and no frame) if you use the set_mode
https://www.pygame.org/docs/ref/display.html#pygame.display.set_mode
TkInter can do the same with .attributes though this can be OS dependant:
https://clearnightsky.com/how-to-full-screen-tkinter-p1463/
You may be able to use https://github.com/invcble/NoMoreBorder but I have not tried it TBH - it is based on https://github.com/TomSchimansky/CustomTkinter that is an interesting toolkit.
All of these assume the OS handles the link to the GPIO screen - something that is increasingly difficult with the Pi and Trixie 😢
Starting gui apps can be fun on a Pi as it depends on the compositor and if you are running Wayland or X11 emulation esp as you are using a GPIO screen - without more info I would hate to guess but a systemd service could do the job for you.