Published: April 5, 2017, 9:39 p.m.
Some time ago I was began to experience one strange floating bug among the components of my working environment. The bug was really nasty, so that I could not pinpoint a single responsible party. I would really blame it on hardware, if not for its’ ability to reproduce on my two workstations with identical software setup and different generations of CPU/motherboard/video card/et c.
My software setup is like:
While working on Django projects, I often switch from PyCharm to Web browser and back. Suddenly my mouse clicks became unable to reach the inner controls of each window on the desktop; I could still switch between apps, interact with their title bars, launch new apps and do other stuff with Gnome Shell. I also could use a keyboard inside apps.
With trial and error I finally understood that I was being able to restore my system to working state by restarting PyCharm.
Surprisingly, updating/falling back to old versions of Java VM, swithching between Oracle and open implementations did me no good.
It really could last much longer, as I was already starting to get use to regular PyCharm restarting, if not for another bug, this time with ScreenCloud, which is a simple Qt5 app. Some ScreenCloud users reported the issue with the black window interim on their screenshots; all of them was not-so-lucky Gnome 3.22 users.
Following an advice of the Arch ScreenCloud maintainer, I disabled Wayland GTK+ backend throug the GDM config. Soon I realized that I got rid of both bugs.
This incident was brought me to a certain thinkings. Wayland was announced as a lightweight and simple replacement of monstrous X11 infrastructure. Simplicity came at the cost of network transparency and 2d acceleration of window contents drawing. Modern implementations of X11 was developed in time of great divercity in video and input hardware (dozens of video adapters, half a dozen ports to connect a mouse or a keyboard), as well as underlying OSes. Wayland developers now have to cope with at most two OSes, only 3 major types of video hardware; as for input, it is greatly unified with USB and udev. Still, after 5 years of development, its (sometimes unintentional) users are left alone with such an infant bugs. Saddening…