Ubuntu 14.04 – Fix Broken QT Interfaces

14.04qt

I ran into a strange issue a couple of days ago and i have no idea what to do. Some of my programs interfaces seem to be broken recently. It is rather odd because i haven't done any major updates. It seems to me (although i'm no expert) that all the QT interfaces are broken (ie VLC, Clementine, Skype). It is really bothering me because i cannot use a lot of programs. However the majority of programs and the system itself are running just fine.

The interfaces appear somehow incomplete with all the components having wrong dimensions, texts not appearing and flickering on user interactions. I really have no idea where to start and what can possibly cause an issue like that as it was working fine for years.

I am running Ubuntu 14.04 LTS.

Running some of the programs from command line i get a gtk-warning Gdk-WARNING **: shmget failed: error 28. This seems to be because of something with shared memory segments. This is really strange to me as i am kind of using my system the same way i always did. A search on this error brought quite some confusing information. However i couldn't find a solution or any information that was helpful for me.

For skype i have tried the solution & workaround from here without sucess: How to fix graphical issues with Skype, Gdk-WARNING?

EDIT:

I found out the applications work fine when i have a fresh restart. They just stop working at some point… So the Gdk-WARNING concerning shared memory seems to be the problem. Although i cannot seem to free any of the memory by closing all my running applications. So probably the solution would be to find the application that is cluttering the shared memory space?

Best Answer

Updating my JDK from version 7 to 8 solved the problem for me.

sudo apt-get install openjdk-8-jdk 

If you are using 14.04 or older you probably need to manually add a PPA before installing (for example sudo add-apt-repository ppa:openjdk-r/ppa, no safety guarantee though!)

Next, select the new version via:

sudo update-alternatives --config java. 

You can check your java version via:

java -version 

It should print something like openjdk version "1.8.0_45-internal"

Related Question