noctalia-shell/Services/ScalingService.qml
Ly-sec 299add4a15 Remove need for polkit, launch any ArchUpdater update through terminal
ArchUpdater: rely on `TERMINAL` environment variable
README: Add explanation for the `TERMINAL` environment variable
2025-08-30 02:28:48 +02:00

53 lines
1.2 KiB
QML

pragma Singleton
import Quickshell
import qs.Commons
Singleton {
id: root
// -------------------------------------------
// Manual scaling via Settings
function scale(aScreen) {
try {
if (aScreen !== undefined && aScreen.name !== undefined) {
return scaleByName(aScreen.name)
}
} catch (e) {
//Logger.warn(e)
}
return 1.0
}
function scaleByName(aScreenName) {
try {
if (Settings.data.monitorsScaling !== undefined) {
if (Settings.data.monitorsScaling[aScreenName] !== undefined) {
return Settings.data.monitorsScaling[aScreenName]
}
}
} catch (e) {
//Logger.warn(e)
}
return 1.0
}
// -------------------------------------------
// Dynamic scaling based on resolution
// Design reference resolution (for scale = 1.0)
readonly property int designScreenWidth: 2560
readonly property int designScreenHeight: 1440
function dynamicScale(aScreen) {
if (aScreen != null) {
var ratioW = aScreen.width / designScreenWidth
var ratioH = aScreen.height / designScreenHeight
return Math.min(ratioW, ratioH)
}
return 1.0
}
}