RoanH / KeysPerSecond

A keys-per-second meter & counter. Written for osu! but should work for other rhythm games too.
https://osu.ppy.sh/forum/t/552405/
GNU General Public License v3.0
342 stars 28 forks source link

Cursor graph problems regarding multi-monitor #96

Open UlyssesZh opened 7 months ago

UlyssesZh commented 7 months ago

It is exciting to see the cursor graph feature coming out. However, I found some problems when trying using it with my multi-monitor setup. My monitor setup is like this: image

HDMI-0 connected 1080x1920+1920+0 left (normal left inverted right x axis y axis) 477mm x 268mm
eDP-1-1 connected primary 1920x1080+0+420 (normal left inverted right x axis y axis) 344mm x 193mm

The area shown by the cursor graph is somehow this (red rect frame; the two solid rects are my monitors), which is kind of strange: image This should be a bug.

And I cannot select one specific monitor as the covered area. I normally play games in the primary display (the left, horizontal one) only, so I want the graph to cover only that area. However, the only option is the entire 3000x1920 display: image (This may be intended? I don't know.)

I think it may be better if I can just type in coordinates for the area that I want the graph to cover.

RoanH commented 7 months ago

Huh, it seems like your system is only reporting the existence of a single monitor, and it's even a weird combination of two displays for some reason??? I would agree that it's a bug, however, it seems like this would be a bug in the Java distribution you're using. I was planning to add an option to apply additional insets on top of the configured monitor, but I ran out of time. In light of this issue I'll probably drop extensive validation for that setting and allow the insets to escape the original display area so the display only functions as an anchor point. I don't intend to remove the display setting itself though, as that's may make the area change for people that frequently disconnect monitors. Really the core issue here is Java not seeing all monitors though, I do wonder what's up with that, I also cannot find any OpenJDK bug reports describing similar behaviour (though didn't look for too long).