I reached out to Customer Support. They weren't able to identify the root of the problem directly, but they suggested I try using KDE instead of Gnome.
At this point I was somewhat desperate for a solution, as threads like this one and also this one still hadn't received a satisfactory answer, so I decided to try it, and surprisingly, it worked. Not... perfectly. Plots were still pixelated for some reason, but the "$Failed" messages that had previously littered the UI were gone.
This was a good start, but I don't want to shift my entire workflow over to KDE, and I'm otherwise perfectly happy with gnome, so I started digging. What was different between KDE and gnome that caused Mathematica to work in one but not the other? I knew that Mathematica should work in gnome - it did so under operating systems like Ubuntu - which meant something on my system was wrong.
I know much of the Mathematica UI is based on QT, so that's where I decided to start.
Here's the environment variables for QT under gnome, obtained with
env | grep QT:
And here are the QT environment variables under KDE:
At this point, the only thing to do was to start running Mathematica with various combinations of environment variables, to see what worked.
The answer was
QT_AUTO_SCREEN_SCALE_FACTOR. When set to 1, Mathematica broke, but when set to 0, Mathematica handled everything correctly. This didn't even have to be a system wide setting - you could just do it by using
env QT_AUTO_SCREEN_SCALE_FACTOR=0 on the command line:
To make the change "permanent" without interfering with other parts of the system, I added the following line to the
mathematica executable (it's a shell script that runs the actual program):
# Mathematica 13.0 Front End command file
# Copyright 1988-2022 Wolfram Research, Inc.
# Determine the SystemID by examining the output of `uname -s` and
# `uname -m`. Failsafe to SystemIDList=Unknown.
# Needed so things work on Manjaro
Editing this file can be done via
sudo <editor of your choice> "$(which mathematica)". Also do that for
Mathematica, as usually
mathematica (lowercase) and
Mathematica (uppercase) are identical but separate scripts. Just add it at the top of the file. In my case, this was:
sudo nvim $(which mathematica)
# Add in `export QT_AUTO_SCREEN_SCALE_FACTOR=0`
The good news is that running on Gnome, this also resolved the issue with pixelated plots as described here. (The issue with pixelated plots was caused by having to enable High DPI screen compatibility mode as described in this workaround. The solution with
QT_AUTO_SCREEN_SCALE_FACTOR=0 doesn't require high dpi screen compatibility mode, so there are no quality issues with plots:
It took a lot of work to debug this issue, but I'm posting it here in the hopes that other people with the same problem will be able to apply this solution! Please leave a comment if you have any questions.
- Gnome avoids the pixelated plots KDE had
- DONT try to install KDE alongside gnome, it heck'd up my desktop environment and I had to roll back the system
- Disable ScreenResolutionCompatibilityMode if it's set, as it's not needed with this solution