On Linux Mint 18.3, Musescore 3.4.2 and 3.5 RC display is too large for the physical display screen size.
On launching of Musescore AppImage for Linux, the windows are too large --- splash screen, start center, workspace, preferences, etc.. I have to use Alt-drag to move the window until I can see the bottom row of buttons, or see the window controls in upper right corner. I was able to resize the workspace window and simplify what's in it to make it useable, but other windows (such as preferences) refuse to resize below what they think is their minimum size even though the display is far larger than they need. This did NOT happen on version 2.0.2 for Linux on same desktop system. It does happen with 3.4.2 and the latest 3.5 RC that I just downloaded today. I had been hoping the problem would just go away with version 3.5, but alas, it's still there.
I'm running Linux Mint 18.3 Cinnamon 64-bit on an AMD Athlon II X2 desktop with Nvidia GeForce GTX 1050 using recommended Nvidia proprietary driver connected to a 1920x1080 display. This isn't a new system. It has been working fine with all other programs except Zoom app for Linux, which also does over-size, but running Zoom from Google Chrome browser has no problem.
Musescore 3.4.2 runs fine, without this oversize problem, on my HP laptop running Linux Mint 19 Cinnamon 64-bit on an AMD Ryzen 3 processor with AMD Radeon Vega display processor and a 1600x900 screen. Maybe the problem lies within Linux Mint 18.3. I hate to reinstall Linux, but now that Linux Mint 20 was released about 3 weeks ago, I'll give it a few more weeks for bugs to start settling out and then install it on the desktop system. I'll report the results of Musescore on this issue ticket when I do.
Comments
Regression vs. what?
What is the workaround?
This happens when the system does not report the monitor resolution to MuseScore properly. Try the "-D xxx" command line option, where "xxx" is the actual resolution in DPI. You can also try either setting the environment variable QT_AUTO_SCREEN_SCALE_FACTOR to either 0 or 1.
See #106241: Monitor resolution detected incorrectly, making sizes wrong
In reply to Regression vs. what? What is… by Jojo-Schmitz
The regression evidence is that it worked properly on the same system with version 2.0.2 but fails on subsequent versions that I mentioned. The workaround was explained in my description, namely moving the windows with Alt-drag mouse action to expose the hidden screen buttons. This doesn't solve the problem but it allowed me to test other aspects and to resize windows if possible.
The main thing that changed between MuseScore 2 & 3 in this regard is the version of the Qt libraries we use. The newer version does a better job of this on most systems, but for a small number it may do worse. Unfortunately there is no real standardization in how different systems handle different pixel densities, so it's difficult to impossible for a single application to work perfectly by default on all combinations. But the command line option I mention should do the trick.
In reply to This happens when the system… by Marc Sabatella
Thanks, Marc. What is unclear is why the system reports correct display resolution to all of the other programs but somehow Musescore gets the wrong resolution or interprets the reported screen size incorrectly or Musescore looks to the wrong system parameter, or whatever else may explain it. I've decided not to mess with the Linux Mint 18.3 OS but rather to install the latest release 20 which just came out about 3 weeks ago from Linux Mint. I'll report the behavior on that upgraded system. Since Musescore behaves correctly on Linux Mint 19.3 on a laptop I have, I'm hopeful that the new OS will work fine with Musescore on the desktop.
In reply to This happens when the system… by Marc Sabatella
I just read that trouble ticket and noted that the problem there was with a tv used as a monitor connected by HDMI. I should report here that my trouble is likewise with a large-screen LG-brand TV connected with HDMI to my desktop computer.
Different applications use different libraries to handle their GUI, and my guess is others that use Qt 5.9 like we do will have similar issues on your system (maybe that's the case with Zoom). Although even then, only a subset will struggle, if you only use standard widgets probably things work better. Programs like MuseScore that need to design custom widgets rely on additional information to scale them properly, and that's the stuff that works "often" but not always, especially when using non-traditional display devices.
Marc,
I tried your -D xxx suggestion. I launched the AppImage of MuseScore by creating a desktop launcher with the AppImage as the command and added the -D parameter to it. I calculated that my TV screen, which is 40" wide and has resolution 1920 px horizontal resolution, is 48 DPI, so I added "-D 48" to the command line in the launcher. It had no effect on the Musescore window sizes, which still overscan the physical display.
Strange. Did it affect the dusplay of the score itself? In theory, viewing at 100%, a score should appear same physical size on screen as when printed.
How about QT_AUTO_SCREEN_SCALE_FACTOR?
This may have something to do with it. I looked at the system display settings. It correctly identifies my tv as an LG, going through a DVI (to HDMI) interface, but it says it is 7 inches whereas it's actually a 47" diagonal tv. It correctly says that the screen is 1920x1080 pixels. See screenshot attached.
In reply to Strange. Did it affect the… by Marc Sabatella
At 100% the score is too large for the score window in Page View. I have to go down to 25% to see the 2 pages side by side. At 75% I see part of the score in height and a little of page 2 on the right. The spash screen overscans by far.
In reply to This happens when the system… by Marc Sabatella
I don't know how to add an environment variable, sorry.
In reply to This may have something to… by Stanley Sokolow
Apparently the LG 7" is just a name, not a parameter, because on my laptop which works properly, the system display says only "LAPTOP" and nothing about inches.
Is the score too large when using "-D 48"? That would be the thing I would expect to be most affected. The environment variable would be more likely to be what helps with the rest. Easiest way for testing is to type "QT_AUTO_SCREEN_SCALE_FACTOR=0" at the beginning of the same command line where you type the AppImage name with the "-D 48". But then also try it with 1 instead of 0.
Yes, the Musescore windows are all too large even with the -D 48 parameter. I am now running on the Live DVD of Linux Mint 20. Musescore 3.4.2 behaves exactly the same here as it does on my installed Mint 18.3 on this same computer. I tried the environment variable you suggested, by opening Terminal and copy-pasted the command, executed, then ran Musescore 3.4.2 from the command line with the -D 48 parameter >> no difference, still overscans. Then again without the -D parameter >> still overscans.
When setting the environment variable the way I said, it has to be on the same line. Like:
VARIABLE=value command arguments
But the fact that -D 48 appears to have had no effect is problematic. What about a value very different from 48? Can you paste in the full command line exactly as you are typing it?
In reply to When setting the environment… by Marc Sabatella
mint@mint:~$ /home/mint/Desktop/MuseScore-3.4.2-x86_64.AppImage -D 48
I had set the permissions to make the AppImage executable. It ran.
In reply to When setting the environment… by Marc Sabatella
This command worked much better:
QT_AUTO_SCREEN_SCALE_FACTOR=0 /home/mint/Desktop/MuseScore-3.4.2-x86_64.AppImage -D 48
The splash screen occupies a normal amount of space on the display, same as on my laptop. The Start Center is normal size. The workspace window shows all of the widgets without truncation. The preferences window is normal. I have to paraphrase the line from My Fair Lady: "By George, he's got it!" But when I modified the desktop launcher to have as its command line the exact command shown above, it says it can't launch that, failed to execute due to an error. I have to launch from the terminal. Maybe I need different syntax on the command in a launcher.
OK, fantastic! Now you just need to learn how to set the environment variable more globally, because I don't think you can do that from a launcher. It's different for different systems, and I'm not enough of a Linux export to advise. Probably you will edit a "profile" somewhere. Like maybe, adding
export QT_AUTO_SCREEN_SCALE_FACTOR=0
to your ~/.profile, or something like that. You might also need to logout and in, or reboot. If you continue to have trouble, a web search should help.
In reply to OK, fantastic! Now you just… by Marc Sabatella
Thanks for those tips. I'll work on my installed system now, instead of the Live DVD, and see if I can get the environment variable set properly in my hidden .profile file. I'll report back here when I've got the steps required so other Musescore users can find it if they run into similar trouble.
Marc,
Problem solved. Here's the workaround or solution, whatever you'd want to call it. I'm reporting the details here to help future Linux users of MuseScore if their display gives them trouble like mine did. On my Linux Mint 18.3 Cinnamon desktop computer, I edited the hidden file ".profile" in my Home directory. I added a comment and a command line at the end of the file as follows (without the surrounding quotes on each line):
"# added as workaround for MuseScore getting wrong display size or DPI"
"export QT_AUTO_SCREEN_SCALE_FACTOR=0"
Then I did a warm restart of the system. I edited the command in the properties of the launcher that I had previously created for MuseScore 3.4.2 to append the "-D 48" parameter (without the quotes) and closed the preferences. Then I launched MuseScore with that desktop launcher. It worked! The windows are normal sizes, including the splash. There was one little problem, though. The MuseScore icons in the toolbars were teenie, tiny. The font was too small for my taste, too, so that the names of things on the workspace, such as the palettes, were too small. So I went to the MuseScore Preferences and changed the icon dimensions (which had been 10 wide and 15 high) to be 50 wide and 75 high, and I increased the font size to 14, applied the changes, and closed the preferences. Then I noticed that the elements within the palattes were too small, so I went to the Advanced tab of the MuseScore Preferences and increased the parameter "application/palatteScale" from the default 1.00 to be 2.00, applied the change and closed the Preferences. When I open a palette now, the elements are larger. Everything is nice and comfy now, and the changes are remembered so MuseScore re-opens with the new preferences preset. (By the way, in 3.5.0 RC, there's a problem with the Advanced preferences table, which I'll report in a new issue ticket.)
I also wanted to be sure that the environment variable that I exported in my .profile didn't mess up any other programs, so I ran LibreOffice Writer, LibreOffice Draw, and GnuCash, with files I had previously saved. They display fine. So apparently no harm was done. When I install Linux Mint 20, I'll make the same changes since the upgrade will involve installation of a totally new OS, not an upgrade from the currently installed version, so the default ".profile" will need the same modification.
I also launched MuseScore 3.5.0 RC. It used the new preferences and looks as good as version 3.4.2. I'll do some work with the RC to help find any bugs to report.
Thanks for your help, Marc. I couldn't have done it without you.
Stanley
You're welcome, glad to be of help!
I wonder, then, if the "-D 48" is actually causing the remaining problem you are seeing, then? That is if you start with the environment variable set but without the command line option, are things better? Or perhaps a different would work better? Even if 48 is literally the correct value for physical number of dots, your OS and/or window manager may be scaling things to present a virtual resolution that is greater. It's this sort of variation from system to system that makes getting everything right by default really hard.
But I also wonder if it will turn out that forcing QT_AUTO_SCREEN_SCALE_FACTOR to 0 is the right thing always for Linux. It seems not harmful on my system - I get the same results regardless of that setting (I do need "-D) though). On my Windows machine I need the environment variable set to 1 or else bad things happen. We'd need to do a lot more testing and collect more data to know for sure.