Starting GUI programs as root usually is not a problem. In worst case, sudo
inside a terminal should do the trick.
However, recently I had to start a QT application as sudo from within GNOME. It was the yubikey configuration GUI, a third party tool thus not part of any desktop environment. Executing the app failed, it only showed a gray window and multiple errors in the command line:
$ sudo /usr/bin/yubikey-personalization-gui X Error: BadAccess (attempt to access private resource denied) 10 Extension: 130 (MIT-SHM) Minor opcode: 1 (X_ShmAttach) Resource id: 0x142 X Error: BadShmSeg (invalid shared segment parameter) 128 Extension: 130 (MIT-SHM) Minor opcode: 5 (X_ShmCreatePixmap) Resource id: 0xfa X Error: BadDrawable (invalid Pixmap or Window parameter) 9 Major opcode: 62 (X_CopyArea) Resource id: 0x2800015
Workarounds like pkexec
and adding a policykit rule didn’t help, either. The error indicates that there is a problem with the MIT Shared Memory Extension of X.
A good workaround is to deactivate the usage of the extension on command line:
$ sudo QT_X11_NO_MITSHM=1 /usr/bin/yubikey-personalization-gui
It works like a charm.