KDE Plasma Bigscreen - Raspberry Pi 4
I built this media centre at the start of 2024. There may be easier methods of installation by now. When I built this project, existing guides mentioned an installation image on KDE's bigscreen page, however, it doesn't seem to exist currently, except for a manjaro image, and I prefer to stick to Raspberry Pi's own debian OS when I can, especially that it ensures the best compatibility with things like cases and accessories.
Feel free to change and tweak what you like to what suits you, however, things you will need are:
- Raspberry Pi 4b (2GB RAM+)
- USB storage device
- Some kind of cooling system
- Something to do buttons on
I used a pi 4b 4GB RAM model myself for this project, as it was the unit that my pi 5 replaced on my work desk. While testing the system, I never pushed the RAM much past 1.7GB, so I think anything 2GB or higher will run okay. Anything lower than a pi 4 is going to struggle rendering KDE - the pi 4 needs an overclock to get everything running smoothly, hence the required cooling system. I used the Argon One case with the sata M.2. drive expansion, however I got similar results with preformance running from a USB 3.0 thumb drive. Plasma bigscreen, while offering limited support for remote controls, doesn't come with apps, so we will be using web-apps through the chromium browser, so some kind of keyboard is advised - KDE Connect on an android phone works great here, or you can get mini wireless keyboards with built in track pads on amazon.
Getting Started
Start by flashing the latest 64-bit Raspberry Pi OS Lite to a usb device. You may need to update the EEPROM if you haven't already in order to boot from USB. Take advantage of rpi imager settings here to enable SSH and change hostname so you can tell it apart from the 6 other pi's you have running around your house. If using a different imaer then don't forget to include the SSH file as you may need it on the next step.
After initial boot, the screen may black out, using the
same image I had this happen with the USB SSB, but not
the USB thumb drive - your guess is as good as mine..
If it blacks out then ssh in and vi or nano into
/boot/firmware/config.txt
and comment out
and add the following lines:
#dtoverlay=vc4-kms-v3d
dtoverlay=vc4-fkms-v3d
Now that the screen is working you can log into the
session, and make the usual prayer
sudo apt update && sudo apt upgrade -y
followed by a sudo reboot
for luck.
Installing KDE Plasma
Next we need to istall KDE Plasma; I ooriginally went
for kde-plasma-desktop
as its the lighter
install, but it kept hanging at boot, you ight have more
luck, but expect to start again if it fails.
sudo apt install kde-standard
After that, another reboot for luck. Then we need to activate the sddm login manager service, and tell raspi OS that we want to boot into GUI on the next boot:
sudo systemctl enable sddm
sudo systemctl set-default graphical.target
And reboot again. It should now boot into Plasma, and the first thing you should do is disable all the destkop effects; older pi KDE Plasma guides suggest to disable the compositor, but the session defaults to wayland unless you tell it not, and wayland can't run without the compositor - I've noticed no major differences between X11 and wayland myself in this use case (don't believe the hype).
If you're also using an Argon One case, now is the time to open up konsole and install the power and fan control:
curl https://download.argon40.com/argon1.sh | bash
Setting Up Plasma Bigscreen
Now the effects are disabled, and if you have your
cooling set up, now is a good time to overclock,
so back into /boot/firmware/config.txt
.
I just went with the following:
# Overclock
over_voltage=6
arm_freq=2000
gpu_freq=700
Next we can install the other bits we need:
sudo apt install chromium-browser rpi-chromium-mods plasma-bigscreen
If you want to watch DRM services like netflix you need another package that's not included in lite:
sudo apt install libwidevinecdm0
KDE connect and an android phone make the perfect remote control, connect should already be included in the KDE install. But firewall suggested, with KDE connect and SSH rules:
sudo apt install ufw
sudo ufw allow 1714:1764/upd
sudo ufw allow 1714:1764/tcp
sudo ufw allow 22/tcp
sudo ufw enable
Next open chromium, add the extensions you want, and "install" your "web apps".
Now open up KDE settings again, select Startup and Shutdown > Login Screen (SDDM), and then click the behaviour button at the bottom and set plasma to log in automatically and change the session to bigscreen, enter your password to confirm, and it should prompt you to set a password for the keychain. I set a blank password because I want other people to be able to use the TV. Also disbale power saving, or at least getting sent back to the login screen after sleep.
Done! Reboot and enjoy!
Controls
KDE Connect
By far the best option if you have an android phone or tablet lying around. KDE Connect for android is available in the standard F-Droid repository. The app includes a big screen feature, but you can get most of what you need done using the remote input feature.
Mini Wireless Keyboard with Touchpad
The Rii K01X1 2.4GHz Mini Wireless Keyboard with Touchpad Remote Control is the perfect companion for interacting with Plasma Bigscreen. However the range doesn't appear to be very long, especially on the Argon One case where the receiver plugged in at the back due to the Argon remote interacting with the front of the case. However this can be easily remedied with a short USB extension cable to point the receiver in the correct direction.
Argon IR Remote
As I previously mentioned, I am using an Argon One case,
which is great as I get to use the Argon IR remote control.
However, the debian version of Plasma Bigscreen doesn't
have a working option to configure remotes as yet, so the
remote is somewhat useless for now - except for the power
button that is. And I love being able to power my pi on
and off without leaving my sofa and walking the few feet
required to do it manually. If you are using an Argon One
case, the setup script should get everything installed for
you, and then you simply need to type argonone-ir
into the terminal to get it set up.
Some Optional Polish
Window Decorations
Plasma Bigscreen is designed to work one window at a time, so if you minus a window without a keyboard, then you've essentially lost it for good. In settings you can remove the titlebar buttons for max/min and hide, and just leave the one to close the window with.
Splashscreen
In KDE settings change the splash screen from the default KDE one to the Plasma Bigscreen one, so that while you wait for your smart TV to boot up, you can relish in your accomplishment of having the most obscure smart TV out of everyone you know.
XScreensaver
XScreensaver has a pretty cool analog tv effect screensaver that will cycle through images in a folder and display them with various tv static effects:
sudo apt install xscreensaver xscreensaver-data-extra
Not Quite Full Screen
KDE's window management isn't quite perfect, and full screen often falls short by 1 pixel on the right and bottom borders (despite any window rules you might add). This can be an irritant when a bright wallpaper sits behind whatever you're watching. The easiest fix is to set a dark-edged wallpaper. The newer bigscreen lets you use kde settings which is nice as you can set the wallpaper to plain colour black, but in the debian version you have to use the built in wallpaper settings app found in the bigscreen settings menu on the home screen. It will only show you the wallpapers that are installed, so download your dark wallpaper, then move it to the wallpaper folder and then it will show up in the wallpaper changer application:
sudo mv ~/Downloads/<wallpaper> /usr/share/wallpaper/