ShareX / ShareX

ShareX is a free and open source program that lets you capture or record any area of your screen and share it with a single press of a key. It also allows uploading images, text or other types of files to many supported destinations you can choose from.
https://getsharex.com
GNU General Public License v3.0
28.11k stars 3.1k forks source link

ShareX does not support high DPI monitors. #5312

Open Tristan559 opened 3 years ago

Tristan559 commented 3 years ago

See attached screenshot of a 4K monitor. ShareX GUI is currently very tiny on a 4K, Windows 10 monitor.

Not using pixel sizes for GUI dimensions should fix the problem.

ShareX_4K

Sharpienero commented 3 years ago

Can't replicate using a 3440x1440p monitor.

NVIDIA_Share_XRpnKLUFNJ

Just to double check, I also checked the editor to see if I could replicate it there: image

Tristan559 commented 3 years ago

See the two images below - one captured at 4K resolution, the other at 1920x1080.

Notice how much smaller the icons at the top are in 4k.

Windows 10, Nvidia Graphics Card.

The desired result would be the icons are the same size, regardless of the resolution setting.

4k 1080

vatsan-madhavan commented 3 years ago

I thought I had the same problem, but I just realized that I have a variant of this.

On my 4K monitor, it looks fine.

image

On the same monitor, but via TS/RDP, the display is a bit inconsistent. Some parts are scaled ok, and others look very tiny.

image

Tristan559 commented 3 years ago

It's very easy to notice after taking a screenshot and the editor window pops up.

Screenshot taken in 4K, Nvidia card - Windows 10 Store version of ShareX

4k Screenshot

kkalugin commented 3 years ago

I can relate to that. Same mini-i-cant-see-anything top bar on my 4k monitor. Безымянный

PerryCodes commented 3 years ago

This is nothing new - numerous users have been having trouble with DPI for a long time and the issue has been ignored. This one was even closed as "cannot fix": https://github.com/ShareX/ShareX/issues/1477

This is what this application looks like on my 4K laptop with a normal HD external monitor...

External HD (fonts don't scale correctly): 3FUPIdu1Gk

Laptop 4K monitor (entire app doesn't adjust): z4INQ8qGQt

FYI - my "Ease of Access" Display Settings have font scaling at 100%. Nothing changed there.

dejannenov commented 3 years ago

This does need to be addressed - it seems trivial (in 2021) to allow application font size to be scaled independently of OS / Desktop scaling and resolution? This is such a great open source app = with fantastic and useful capabilities - it would be a shame to have to relegate it to the "crappy shareware" bin for a fundamental usability defect....

Jaex commented 3 years ago

it seems trivial (in 2021) to allow application font size to be scaled independently of OS / Desktop scaling and resolution

If it is trivial please teach me how to do it, because I don't know how.

matham commented 3 years ago

it would be a shame to have to relegate it to the "crappy shareware" bin for a fundamental usability defect....

What a rude thing to say to someone who is giving you software for free. It verges on emotional blackmail: "Fix my problem otherwise your software is crappy and you should feel bad for creating it"!?

FTR it's not as easy to do because even Firefox doesn't get it right and Windows probably still has bugs with this, although it's getting better. Likely, the cause is that the application manifest or something (I'm not familiar with c#) doesn't mark it self as responding to dpi changes. Or, once the app is started it doesn't respond to DPI changes when dragging between screens!? I know in my python app we had to set the mode for windows to notify us with a callback for these dpi event changes and then we had to re-calc and update the graphics in response to these changes.

I good workaround that worked for me was to find where sharex.exe is installed, right click and then experiment with the options in compatibility/high DPI section. The following seems to work best for me, but I'd try various combinations to see what works best for you. You just have to make sure to exit the app before changing the settings.

image

image

The only issue with these settings was that capturing by region doesn't work right, but if I select region light or transparency it seems to work.

Tristan559 commented 3 years ago

You don't have these settings if you installed via the Windows Store - which is what I did.

ShareX can be downloaded the traditional way or via Windows Store. Microsoft locks you out of any settings / changes to Store apps.

On Thu, May 13, 2021 at 3:17 PM matham @.***> wrote:

it would be a shame to have to relegate it to the "crappy shareware" bin for a fundamental usability defect....

What a rude thing to say to someone who is giving you software for free. It verges on emotional blackmail: "Fix my problem otherwise your software is crappy and you should feel bad for creating it"!?

FTR it's not as easy to do because even Firefox doesn't get it right https://bugzilla.mozilla.org/show_bug.cgi?id=1676805 and Windows probably still has bugs with this, although it's getting better. Likely, the cause is that the application manifest or something (I'm not familiar with c#) doesn't mark it self as responding to dpi changes. Or, once the app is started it doesn't respond to DPI changes when dragging between screens!? I know in my python app we had to set the mode for windows to notify us with a callback for these dpi event changes and then we had to re-calc and update the graphics in response to these changes.

I good workaround that worked for me was to find where sharex.exe is installed, right click and then experiment with the options in compatibility/high DPI section. The following seems to work best for me, but I'd try various combinations to see what works best for you. You just have to make sure to exit the app before changing the settings.

[image: image] https://user-images.githubusercontent.com/1644286/118194332-33b9e380-b417-11eb-90da-ea2b93458166.png

[image: image] https://user-images.githubusercontent.com/1644286/118194321-2d2b6c00-b417-11eb-8e3a-8ad3d4c9243c.png

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ShareX/ShareX/issues/5312#issuecomment-840867282, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADZZNYTKKOYU4K4BWDLYOTTNRFYJANCNFSM4VX4LNPQ .

dejannenov commented 3 years ago

It is equally rude, and worse, intellectually dishonest, to quote partially or out of context. What I said is in fact this:

"This is such a great open source app = with fantastic and useful capabilities - it would be a shame to have to relegate it to the "crappy shareware" bin for a fundamental usability defect...."

As it was intended as a friendly nudge, I stand behind my statement.

What a rude thing to say to someone who is giving you software for free. It verges on emotional blackmail: "Fix my problem otherwise your software is crappy and you should feel bad for creating it"!?

dejannenov commented 3 years ago

Maybe this: https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows

it seems trivial (in 2021) to allow application font size to be scaled independently of OS / Desktop scaling and resolution

If it is trivial please teach me how to do it, because I don't know how.

matham commented 3 years ago

As it was intended as a friendly nudge

Perhaps you meant it as a friendly nudge, but I was responding to how it read - it's impossible to read tone online.

But, as an open source maintainer myself, I've read many massages of this form (including some directed at myself) that try to motivate a maintainer to do something, by appealing to their fear that people won't like their project or by downplaying the effort it takes to do it. And that is definitely a form of emotional manipulation/abuse because you're trying to make them upset (people will stop using the project) and like they don't care (why haven't you fixed something so simple) until they fix your issue.

This leads to burnout for maintainers who have to deal with this on their own and ironically makes it less likely for them to fix something because why engage with something that makes you feel bad? So I was (and am) simply letting you know how your words likely read to maintainers, in case you don't realize the effects of your words. But we're getting far off topic, so I won't have anything else to say about this.

dejannenov commented 3 years ago

Are you saying that prioritizing your feelings over mine should be a reason for me to shut up and just be thankful that you contribute to open source?

Let me suggest an alternative mindset:

1 Listen to feedback and address it.

2 Feel free to ignore feedback and feel good about it without having to constantly justify yourself. The customer (me in this case) is NOT always right.

3 Accept the implications of real-world scarcity - in this case, the contributor's time. Writing a message that attempts to "manipulate feelings" to get what is important to me on top of the list is perfectly OK. Especially as there is no other venue to accomplish this. Why else would I waste my time putting in an issue here?

4 Be honest. All of these: "I don't have time for this.", "There are other features I want to do first.", "I f-ed up 5 years ago and I don't know how to fix it now without a major rewrite." are perfectly OK. But "You hurt my feeling because you told me how you can't use my software because it does not work with the latest hardware" is not.

CoolOppo commented 2 years ago

I don't have the issue with the main ShareX UI, but the screenshot UI itself is super small in 4K. image

CoolOppo commented 2 years ago

it would be a shame to have to relegate it to the "crappy shareware" bin for a fundamental usability defect....

What a rude thing to say to someone who is giving you software for free. It verges on emotional blackmail: "Fix my problem otherwise your software is crappy and you should feel bad for creating it"!?

Umm no, what they were saying in the sentence before the one you quoted was that it was great software. I agree it could end up in the "crappy shareware" bin if there isn't support for what will certainly be the standard resolution in the coming years. Imagine if when 1080p came around, nobody bothered fixing it just because they had a 720p monitor. Their software would not have been used as much now. There's no doubt about that in my mind.

As it was intended as a friendly nudge, I stand behind my statement.

(Emphasis added.) I agree. What you said really did not come off as a mean thing to me. Especially because the sentence DIRECTLY BEFORE the quoted one was a big compliment. I also can understand how it would come off badly but really I don't think there was foul play intended here. Not trying to be a part of drama or anything, just wanted to weigh in.

dejannenov commented 2 years ago

So, as I VERY MUCH believe in following up until the outcome is it should be - I had the issue fixed - (not me personally :) so - I expect there will be a pull request soon. In the meantime you can download the fixed install here: (note it is not signed so Windows may complain that it is not safe....) https://www.panaton.com/post/share-x-4k-dpi-fix

PerryCodes commented 2 years ago

Absolutely priceless. THANK YOU Dejan. And please thank whomever you arranged to provide a fix.

Now let's just hope the pull request is accepted.

PerryCodes commented 2 years ago

This really is fantastic software. I can finally kick Greenshot out of my Taskbar Notification Area and give the shortcuts to ShareX! If you're not going to throw down money for SnagIt and can do without their iconic "torn edge" effect, then this is a superb option. (btw - yes, ShareX can do "torn edge" ... but it's just not the same!)

MattJeanes commented 2 years ago

I definitely seem to have some scaling issues, yesterday all the text was massive and the window was normal size and today the whole window is massive - I'm using my laptop (which is at 200% scaling @ 4K) over RDP from a 2K screen at 100% scaling

image

diegoferres commented 2 years ago

https://helgeklein.com/blog/sharex-free-screen-recording-tool-mouse-pointer-offset-high-dpi-fix/

With this I have solved the problem. I hope it helps you

brokenthorn commented 2 years ago

You don't have these settings if you installed via the Windows Store - which is what I did. ShareX can be downloaded the traditional way or via Windows Store. Microsoft locks you out of any settings / changes to Store apps.

You do have these "features" if you open Task Manager, find the process, right click, click Properties.

brokenthorn commented 2 years ago

This issue has become prevalent with most older Windows apps that have been written before the advent of HiDPI monitors (on this platform) and before Microsoft released newer frameworks that address this issue. The problem isn't easy to fix because these older programming components that ShareX depends on, aren't aware of HiDPI displays so they cannot adjust renderering DPI to monitor DPI, they always render at 96 DPI or something like that. A few components, like text boxes, Microsoft has addressed in a few ways, making they aware of higher DPIs, which is why some fonts appear larger and clip out of their bounding box, but most other components like buttons, are almost impossible to fix.

The only way to fix ShareX is to rewrite its GUI in something like WinUI or WPF.

sahil48 commented 2 years ago

The only way to fix ShareX is to rewrite its GUI in something like WinUI or WPF.

I think that Windows Forms has been getting better HiDPI compatibility, even in .NET 4.7 . Although, I am not aware if Windows Forms is what ShareX uses.

https://docs.microsoft.com/en-us/dotnet/desktop/winforms/high-dpi-support-in-windows-forms?view=netframeworkdesktop-4.8

https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows (also mentioned in a previous post to this issue)

drventure commented 2 years ago

@Jaex As this is a CSharp app, I might be able to help. We had similar issues with our main Product for quite some time.

Check the attached App.manifest. This was the main thing that needed to be in place.

We use infragistics, so there was a little config at program start that was required, but I don't believe you'd need this.

We also have a call to EnableVisualStyles() at the program start System.Windows.Forms.Application.EnableVisualStyles();

Once all that was in place, we had a few forms (we use winforms) that had to be tweaked slightly, but by and large, that was it.

Let me know if I can assist!

appmanifest.zip

drventure commented 2 years ago

Main bits were the Compatibility and WindowSettings sections in App.manifest

Tristan559 commented 2 years ago

The icons don't seem to get any bigger. I think the problem is the source images are at a low, fixed resolution.

On Thu, May 12, 2022 at 2:13 PM Darin Higgins @.***> wrote:

Main bits were the Compatibility and WindowSettings sections in App.manifest

— Reply to this email directly, view it on GitHub https://github.com/ShareX/ShareX/issues/5312#issuecomment-1125428468, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADZZN3UVHSUNLQZIWOZ643VJVYA3ANCNFSM4VX4LNPQ . You are receiving this because you authored the thread.Message ID: @.***>

drventure commented 2 years ago

That could be. we use infragistics controls internally, and I know they have logic to scale appropriately. I believe the standard .net controls do as well, but images might require extra work.

stamminator commented 2 years ago

So, as I VERY MUCH believe in following up until the outcome is it should be - I had the issue fixed - (not me personally :) so - I expect there will be a pull request soon. In the meantime you can download the fixed install here: (note it is not signed so Windows may complain that it is not safe....) panaton.com/post/share-x-4k-dpi-fix

Were these fixes ever merged into release? I'm still getting bad UI scaling using the following two-monitor setup:

You'd think one of them would be correct, but one of them is too small and the other is too large. Very strange, and making it difficult to use.

matham commented 2 years ago

Were these fixes ever merged into release?

I don't believe a PR was made and there doesn't seem to be source code with the linked exe so any fixes was not merged.

dejannenov commented 2 years ago

Matt -

It has been some time - here is all the code https://1drv.ms/u/s!Ascdeyux4q7yjPEMbzWEaxdoFK7sTw?e=dA9YmM- feel free to use it or merge it at your discretion.

Regards,

Dejan Nenov

On Mon, May 23, 2022 at 10:04 AM Matt Einhorn @.***> wrote:

Were these fixes ever merged into release?

I don't believe a PR was made and there doesn't seem to be source code with the linked exe so any fixes was not merged.

— Reply to this email directly, view it on GitHub https://github.com/ShareX/ShareX/issues/5312#issuecomment-1134863114, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFIDGW2OGNYSQJ6AAVRMGLVLOUBRANCNFSM4VX4LNPQ . You are receiving this because you commented.Message ID: @.***>

dejannenov commented 2 years ago

Jacob - here is all the code - not sure if it was ever merged:

https://1drv.ms/u/s!Ascdeyux4q7yjPEMbzWEaxdoFK7sTw?e=dA9YmM

Dejan Nenov

On Mon, May 23, 2022 at 8:10 AM Jacob Stamm @.***> wrote:

So, as I VERY MUCH believe in following up until the outcome is it should be - I had the issue fixed - (not me personally :) so - I expect there will be a pull request soon. In the meantime you can download the fixed install here: (note it is not signed so Windows may complain that it is not safe....) panaton.com/post/share-x-4k-dpi-fix https://www.panaton.com/post/share-x-4k-dpi-fix

Were these fixes ever merged into release? I'm still getting bad UI scaling using the following setup:

  • 16" 3840x2400 laptop display at 250% scaling
    • ShareX UI elements are so tiny that drop-down menus are hard to read. The cursor included in the screenshot is also very tiny
  • 24" 2560x1440 external display at 125% scaling, set as main display
    • ShareX UI elements are large and blown out. The icons in the image editor are blurry, and the items in its Edit drop-down menu have icons that are too large that they overflow into each other. Cursor is normal size.

You'd think one of them would be correct, but one of them is too small and the other is too large. Very strange, and making it difficult to use.

— Reply to this email directly, view it on GitHub https://github.com/ShareX/ShareX/issues/5312#issuecomment-1134728351, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFIDGSQHTU5K67JILT4WHTVLOGT5ANCNFSM4VX4LNPQ . You are receiving this because you commented.Message ID: @.***>

ividyon commented 1 year ago

@Jaex Please remember to look into this as, now, a code solution has been provided that you might integrate, so it's hopefully less work.

stamminator commented 1 year ago

@ividyon I ran the build Dejan graciously provided, but I didn't see any of my DPI issues improved.

lynnewu commented 1 year ago

Any news on a fix for this in an official release? I just recently switched to a high DPI setup and the UI components are next-to-impossible for me to see/use.

Setting the exe Compatibility High DPI settings results in either no change or fuzziness + scaling issues in the capture display (everything becomes VERY LARGE).

ShareX_2022-12-01_11-26-25 ShareX_2022-12-01_11-27-12

PerryCodes commented 1 year ago

There was a fix offered some time ago and nothing was done with it.

stamminator commented 1 year ago

@PerryCodes the fix did not solve the reported issue in my testing. It's not complete.

igorzhilin commented 1 year ago

I have looked through this and other threads, and looks like it's a tricky thing...

So I just confirm that this fix is still in high demand, as of 2023-02-10, and I hope it works out some day.

Other issues on the same scaling topic: https://github.com/ShareX/ShareX/issues/6436 https://github.com/ShareX/ShareX/issues/6642

The UI icons of the ShareX editor are very small on 2560x1600 resolution without any DPI adjustments. https://i.imgur.com/PL6ux0l.png

Thanks.

lynnewu commented 1 year ago

Latest version still doesn't play well with high-DPI monitors, at least the app dialog boxes.

unh0ly1 commented 1 year ago

I have two monitors attached.

Build-In monitor 3840 x 2160 - 225% scaling Secondary WHQD monitor 2560 x 1440 - 125% scaling (this is set a primary monitory in windows)

image

It is not possible to use the application on the build-in monitor with higher resolution as the app does not dynamically adapt to the scaling of the screen.

unh0ly1 commented 1 year ago

Matt - It has been some time - here is all the code https://1drv.ms/u/s!Ascdeyux4q7yjPEMbzWEaxdoFK7sTw?e=dA9YmM- feel free to use it or merge it at your discretion. Regards, Dejan Nenov On Mon, May 23, 2022 at 10:04 AM Matt Einhorn @.> wrote: Were these fixes ever merged into release? I don't believe a PR was made and there doesn't seem to be source code with the linked exe so any fixes was not merged. — Reply to this email directly, view it on GitHub <#5312 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFIDGW2OGNYSQJ6AAVRMGLVLOUBRANCNFSM4VX4LNPQ . You are receiving this because you commented.Message ID: @.>

Jacob - here is all the code - not sure if it was ever merged: https://1drv.ms/u/s!Ascdeyux4q7yjPEMbzWEaxdoFK7sTw?e=dA9YmM Dejan Nenov On Mon, May 23, 2022 at 8:10 AM Jacob Stamm @.> wrote: So, as I VERY MUCH believe in following up until the outcome is it should be - I had the issue fixed - (not me personally :) so - I expect there will be a pull request soon. In the meantime you can download the fixed install here: (note it is not signed so Windows may complain that it is not safe....) panaton.com/post/share-x-4k-dpi-fix https://www.panaton.com/post/share-x-4k-dpi-fix Were these fixes ever merged into release? I'm still getting bad UI scaling using the following setup: - 16" 3840x2400 laptop display at 250% scaling - ShareX UI elements are so tiny that drop-down menus are hard to read. The cursor included in the screenshot is also very tiny - 24" 2560x1440 external display at 125% scaling, set as main display - ShareX UI elements are large and blown out. The icons in the image editor are blurry, and the items in its Edit drop-down menu have icons that are too large that they overflow into each other. Cursor is normal size. You'd think one of them would be correct, but one of them is too small and the other is too large. Very strange, and making it difficult to use. — Reply to this email directly, view it on GitHub <#5312 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFIDGSQHTU5K67JILT4WHTVLOGT5ANCNFSM4VX4LNPQ . You are receiving this because you commented.Message ID: @.>

As I see there were solutions provided which should/could be merged into the code? @Jaex

stamminator commented 1 year ago

@unh0ly1 As I stated in my other comments, the fixes did not work for me.

SergeiShir commented 12 months ago

Related issue - #6017 This suggestion resolved the text scaling issue for me - select Override high DPI scaling behavior and in the drop-down select Application either in the shortcut or in the properties of the app

ShareX v15.0.0 Windows 10 Enterprise 22H2 (build 19045.2965)

drventure commented 12 months ago

Interesting, that definitely helps.

Now the text is scaled up so it's at least readable. But it scales fuzzy. I've used this same trick with a few other apps and had the same result. Just the way it works.

Still, can't believe I just didn't think to apply it to ShareX.

Thanks!

On Wed, Jun 7, 2023 at 3:37 PM SergeiS @.***> wrote:

Related issue - #6017 https://github.com/ShareX/ShareX/issues/6017 This suggestion resolved the text issue for me - select Override high DPI scaling behavior and in the drop-down select Application either in the shortcut or in the properties of the app

— Reply to this email directly, view it on GitHub https://github.com/ShareX/ShareX/issues/5312#issuecomment-1581473493, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAOMXBXVWFMQBGMTUHSLTDLXKDRBJANCNFSM4VX4LNPQ . You are receiving this because you commented.Message ID: @.***>

penderes commented 9 months ago

@Tristan559 I had the same issue.

You can however change the icon size by clicking on the small gear ("Options") on the very right side during region selection or in the Editor and changing "Menu Icon Size" from 16 to a larger number. I found 24 works very well.

image

Icons will be a bit blurry, but at least they are not microscopic anymore ;)

I have not found this option in the "regular" settings menu.

CC: @igorzhilin

AndroidDeveloperLB commented 9 months ago

@penderes This works well. I've set it to 32 for my display. However, this is only for icons. Other places need to be handled too.