It is currently May 25th, 2020, 1:30 pm

4K Support

Report bugs with the Rainmeter application and suggest features.
Abdelkareem10
Posts: 1
Joined: May 3rd, 2020, 8:14 pm

4K Support

Post by Abdelkareem10 »

Hi!
My laptop has a 4K monitor. But Rainmeter can't get a huge scale, unfortunately the app is a blur and not in high quality. So, I hope you update it to adapt the new monitors
photo_2020-05-03_23-21-11.jpg
photo_2020-05-03_23-25-22.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
SilverAzide
Posts: 759
Joined: March 23rd, 2015, 5:26 pm

Re: 4K Support

Post by SilverAzide »

Abdelkareem10 wrote:
May 3rd, 2020, 8:25 pm
Hi!
My laptop has a 4K monitor. But Rainmeter can't get a huge scale, unfortunately the app is a blur and not in high quality. So, I hope you update it to adapt the new monitors
This is not a function of Rainmeter. This is a function of the skins you are using. Look for skins that support scaling.
DeviantArt Gadgets More...
User avatar
Cariboudjan
Posts: 78
Joined: May 12th, 2019, 8:55 am

Re: 4K Support

Post by Cariboudjan »

SilverAzide wrote:
May 3rd, 2020, 9:15 pm
This is not a function of Rainmeter. This is a function of the skins you are using. Look for skins that support scaling.
This isn't a skin's issue. It's a Windows issue (and maybe also a Rainmeter issue). Your 4K monitor is obviously using a higher-than-100% scaling option (Like 150% or more)

Annotation 2020-05-12 165947.png
I have a 2560x1440p monitor. Windows automatically sets the scaling option to 125%. Scaling by 125% will increase the scaling of all windows, including Rainmeter skins, by 25% above normal. 4K would be even higher. You can adjust your scaling settings in your Windows display settings menu.

You can eliminate this problem easily by following these instructions.

https://forum.rainmeter.net/viewtopic.php?t=22272

Now back to what SilverAzide said, there are skins that allow scaling. Since most Rainmeter skins were designed for 1920x1080 resolutions or less, using 100% scaling, 4K, and Rainmeter will make most skins extremely small by default. Find skins that are designed to scale. If the default scaling is 1 (Meaning 100%), set the skin's scaling to 2. Right now I can't think of any skins out there specifically (other than my own) that have this option, but they exist.

This one does have scaling, if you're looking for an example: http://www.droptopfour.com
This skin specifically has rescaling built-in with the ReScale plugin, so no modification of the Rainmeter shortcut is necessary.
You do not have the required permissions to view the files attached to this post.
User avatar
Yincognito
Posts: 1609
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: 4K Support

Post by Yincognito »

Cariboudjan wrote:
May 13th, 2020, 12:03 am
This skin specifically has rescaling built-in with the ReScale plugin, so no modification of the Rainmeter shortcut is necessary.
So using that plugin is the only way of making things work properly on high DPI, other than Rainmeter shortcut modifications?
Just curious about it. My skin suite supports scaling too, but obviously without using that specific kind of plugin or any "DPI aware" stuff.
User avatar
Cariboudjan
Posts: 78
Joined: May 12th, 2019, 8:55 am

Re: 4K Support

Post by Cariboudjan »

Yincognito wrote:
May 13th, 2020, 2:49 am
So using that plugin is the only way of making things work properly on high DPI, other than Rainmeter shortcut modifications?
Just curious about it. My skin suite supports scaling too, but obviously without using that specific kind of plugin or any "DPI aware" stuff.
The ReScale plugin, if enabled, will automatically enable DPI override settings for Rainmeter. Handy if you're making skins for less tech savvy people. The biggest drawback to this method is that it will affect the value of #SCREENAREAWIDTH# and #SCREENAREAHEIGHT#. Your monitor might be 2560x1440, but with ReScale enabled, it might think the resolution is 1920x1080, which might cause problems if any of your skins rely on these values to function.

You can get around this by checking the registry for the DPI setting using:

Code: Select all

[MeasureRegistry]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=Control Panel\Desktop\WindowMetrics
RegValue=AppliedDPI
UpdateDivider=-1
Group=WorkareaMeasures

[MeasureScale]
Measure=Plugin
Plugin=ReScale.dll
UpdateDivider=-1
Disabled=#DPIRescaleOFF#

[DPIRescaleValue]
Measure=Calc
Formula=(((ROUND(([MeasureRegistry]/100)/0.25))*0.25)-1)
DynamicVariables=1
UpdateDivider=-1
Disabled=#DPIRescaleOFF#
and whenever using #SCREENAREAWIDTH# or #SCREENAREAHEIGHT#, use these instead:

Code: Select all

([#SCREENAREAWIDTH[#MonitorNum]]+([#SCREENAREAWIDTH[#MonitorNum]]*([DPIRescaleValue]*(#DPIRescaleOFF#=1?0:1))))
([#SCREENAREAHEIGHT[#MonitorNum]]+([#SCREENAREAHEIGHT[#MonitorNum]]*([DPIRescaleValue]*(#DPIRescaleOFF#=1?0:1))))
Which will, if ReScale is enabled, at 125% scale, add the value of #SCREENAREAWIDTH# by itself multiplied by 0.25, giving you the value of the actual screen.

You can also use this method to give proper inputtext font sizes to scale with Rainmeter using:

Code: Select all

[MeasureRegistry]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=Control Panel\Desktop\WindowMetrics
RegValue=AppliedDPI
UpdateDivider=-1

[InputTextFontSize]
Measure=Calc
Formula=(((ROUND(([MeasureRegistry]/100)/0.25)))*0.25)
IfCondition=InputTextFontSize = 1.25
IfTrueAction=[!SetVariable InputFontSize 15][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfCondition2=InputTextFontSize = 1.5
IfTrueAction2=[!SetVariable InputFontSize 13][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfCondition3=InputTextFontSize = 1.75
IfTrueAction3=[!SetVariable InputFontSize 11][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfCondition4=InputTextFontSize = 2
IfTrueAction4=[!SetVariable InputFontSize 9][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfCondition5=InputTextFontSize = 2.25
IfTrueAction5=[!SetVariable InputFontSize 9][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfCondition6=InputTextFontSize = 2.5
IfTrueAction6=[!SetVariable InputFontSize 8][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfCondition6=InputTextFontSize > 2.5
IfTrueAction6=[!SetVariable InputFontSize 7][!UpdateMeasure *][!UpdateMeter *][!Redraw]
DynamicVariables=1
Disabled=(#DPIOverride#=1?(#DPIRescaleOFF#=1?0:1):1)
User avatar
Yincognito
Posts: 1609
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: 4K Support

Post by Yincognito »

Cariboudjan wrote:
May 14th, 2020, 12:02 am
The ReScale plugin, if enabled, will automatically enable DPI override settings for Rainmeter. Handy if you're making skins for less tech savvy people. The biggest drawback to this method is that it will affect the value of #SCREENAREAWIDTH# and #SCREENAREAHEIGHT#. Your monitor might be 2560x1440, but with ReScale enabled, it might think the resolution is 1920x1080, which might cause problems if any of your skins rely on these values to function.

You can get around this by checking the registry for the DPI setting using:

Code: Select all

[MeasureRegistry]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=Control Panel\Desktop\WindowMetrics
RegValue=AppliedDPI
UpdateDivider=-1
Group=WorkareaMeasures

[MeasureScale]
Measure=Plugin
Plugin=ReScale.dll
UpdateDivider=-1
Disabled=#DPIRescaleOFF#

[DPIRescaleValue]
Measure=Calc
Formula=(((ROUND(([MeasureRegistry]/100)/0.25))*0.25)-1)
DynamicVariables=1
UpdateDivider=-1
Disabled=#DPIRescaleOFF#
and whenever using #SCREENAREAWIDTH# or #SCREENAREAHEIGHT#, use these instead:

Code: Select all

([#SCREENAREAWIDTH[#MonitorNum]]+([#SCREENAREAWIDTH[#MonitorNum]]*([DPIRescaleValue]*(#DPIRescaleOFF#=1?0:1))))
([#SCREENAREAHEIGHT[#MonitorNum]]+([#SCREENAREAHEIGHT[#MonitorNum]]*([DPIRescaleValue]*(#DPIRescaleOFF#=1?0:1))))
Which will, if ReScale is enabled, at 125% scale, add the value of #SCREENAREAWIDTH# by itself multiplied by 0.25, giving you the value of the actual screen.

You can also use this method to give proper inputtext font sizes to scale with Rainmeter using:

Code: Select all

[MeasureRegistry]
Measure=Registry
RegHKey=HKEY_CURRENT_USER
RegKey=Control Panel\Desktop\WindowMetrics
RegValue=AppliedDPI
UpdateDivider=-1

[InputTextFontSize]
Measure=Calc
Formula=(((ROUND(([MeasureRegistry]/100)/0.25)))*0.25)
IfCondition=InputTextFontSize = 1.25
IfTrueAction=[!SetVariable InputFontSize 15][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfCondition2=InputTextFontSize = 1.5
IfTrueAction2=[!SetVariable InputFontSize 13][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfCondition3=InputTextFontSize = 1.75
IfTrueAction3=[!SetVariable InputFontSize 11][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfCondition4=InputTextFontSize = 2
IfTrueAction4=[!SetVariable InputFontSize 9][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfCondition5=InputTextFontSize = 2.25
IfTrueAction5=[!SetVariable InputFontSize 9][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfCondition6=InputTextFontSize = 2.5
IfTrueAction6=[!SetVariable InputFontSize 8][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfCondition6=InputTextFontSize > 2.5
IfTrueAction6=[!SetVariable InputFontSize 7][!UpdateMeasure *][!UpdateMeter *][!Redraw]
DynamicVariables=1
Disabled=(#DPIOverride#=1?(#DPIRescaleOFF#=1?0:1):1)
Wow, that's some comprehensive info you provided there - thanks! :thumbup: