What I do:
Lua Code:
SetCVar('useuiscale', 1)
SetCVar('uiscale', 1)
local _, height = GetPhysicalScreenSize()
UIParent:SetScale(768 / height)
Then if you feel like something is too small to read (like the default windows), you scale them up one-by-one, maybe something like this:
Lua Code:
for _, frame in next, {
'CharacterFrame',
'TradeFrame',
-- etc
} do
_G[frame]:SetScale(1.5)
end