I use KDE Plasma on my Arch desktop and I’ve had some issues with getting my dual-monitor, mixed DPI setup to work properly as mentioned in my previous post.
I nuked and paved my existing installation a few weeks ago and set up Arch afresh on the same computer on a new SSD. On the previous install, I had set up the root filesystem on a hard drive with LVM and the system startup was very slow – ~45 seconds to reach SDDM, an additional ~30 seconds to drop to a usable desktop, and then ~5 seconds to run my
The boot time and the time taken to reach a usable desktop was significantly lesser with the SSD – ~8 seconds to start SDDM, ~5 seconds to the desktop, ~3 seconds to run the
xrandr script. So I was happy.
As exciting as that was, I still had many rough edges and paper cuts, most of them persisting across multiple re-installations. Thanks to the posts by various posts by fellow Plasma users, I was able to solve them 🙂
When SDDM started, it always did with my monitor layout and DPI configured wrong. My secondary 1080p monitor is placed to the left of my primary 4K monitor and SDDM always placed the former to the right of the latter.
# /etc/sddm.conf [XDisplay] DisplayCommand=/usr/share/sddm/scripts/Xsetup
I don’t like the default theme used by SDDM,
maui. Since Arch is a DIY distro, it doesn’t automatically set up the default Plasma theme,
breeze, like many other distros do when Plasma is installed.
Previously, I was using the Chili login theme to make the SDDM greeter look nice. I was unsure why and how, the Manjaro installation on my laptop, had a nice Plasma theme for SDDM. But I didn’t spend any time investigating at all till now.
I checked the Arch wiki page on SDDM theming to check if there are nice themes listed there that I could use and found that it is possible to configure the SDDM theme using the Plasma
System Settings application after installing the
sddm-kcm package. I found the default Breeze theme which I liked very much and set it as the theme. But that didn’t work. So I went ahead and configured it manually in
sddm.conf and voilà, it worked! 😀
# /etc/sddm.conf [XDisplay] DisplayCommand=/usr/share/sddm/scripts/Xsetup [Theme] Current=breeze
I was pleasantly surprised to see that Plasma automatically scaled my 4K monitor without having to configure scaling manually via the
Display settings application. Everything in the secondary monitor looked large as expected and I had to run my
xrandr command from the previous post, with some changes to restart Plasma shell for making the wallpaper fit the scaled display, manually every time due to something in the Plasma startup process resetting the screen configuration irrespective of when my
xrandr auto-start script ran.
Thanks to this post on Reddit by a fellow Plasma user, I found that the
kscreen2 service was the culprit and disabling it ensured that the display configuration set up by the SDDM
Xsetup script persisted and as a result, I didn’t have to manually run my
xrandr script 😀 😌
There could be some side-effects caused by disabling the
kscreen2 service, but I haven’t run into any till now 🙂
The built-in emoji picker, introduced in Plasma 5.18, is very convenient and something that Plasma was sorely missing before. However, in spite of installing an appropriate emoji font, the emoji picker had a lot of missing emoji with blank squares and the color/gender variants of some emoji looked broken with those showing up as two separate symbols (one for the emoji and the other for the color/gender variant) overlapping each other.
Thanks to this Reddit post, I was able to solve the issue by creating a custom
fontconfig configuration file,
~/.config/fontconfig/fonts.conf, with the configuration below and by forcefully rebuilding the font info cache files by running
<?xml version='1.0'?> <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> <fontconfig> <match target="font"> <edit mode="assign" name="rgba"> <const>rgb</const> </edit> </match> <match target="font"> <edit mode="assign" name="hinting"> <bool>true</bool> </edit> </match> <match target="font"> <edit mode="assign" name="hintstyle"> <const>hintfull</const> </edit> </match> <match target="font"> <edit mode="assign" name="antialias"> <bool>true</bool> </edit> </match> <match target="font"> <edit mode="assign" name="lcdfilter"> <const>lcddefault</const> </edit> </match> <match target="font"> <edit name="autohint" mode="assign"> <bool>false</bool> </edit> </match> <match target="pattern"> <edit name="family" mode="prepend"> <string>Noto Color Emoji</string> </edit> </match> </fontconfig>
It looks nice after the fix 👌🏼