aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbetterlockscreen28
1 files changed, 17 insertions, 11 deletions
diff --git a/betterlockscreen b/betterlockscreen
index f908c82..568f94b 100755
--- a/betterlockscreen
+++ b/betterlockscreen
@@ -184,24 +184,30 @@ logical_px() {
# $2: 1 for width. 2 for height
local pixels="$1"
local direction="$2"
+ local dpi
- # get dpi value from xdpyinfo
- local DPI
- DPI=$(xdpyinfo | sed -En "s/\s*resolution:\s*([0-9]*)x([0-9]*)\s.*/\\$direction/p" | head -n1)
+ # use DPI set by user in .Xresources
+ dpi=$(xrdb -q | grep -oP '^\s*Xft.dpi:\s*\K\d+' | bc)
- # return the default value if no DPI is set
- if [ -z "$DPI" ]; then
- echo "$pixels"
- else
- local SCALE
- SCALE=$(echo "scale=2; $DPI / 96.0" | bc)
+ # or get dpi value from xdpyinfo
+ if [ -z "$dpi" ]; then
+ dpi=$(xdpyinfo | sed -En "s/\s*resolution:\s*([0-9]*)x([0-9]*)\s.*/\\$direction/p" | head -n1)
+ fi
+
+ # adjust scaling
+ if [ -n "$dpi" ]; then
+ local scale
+ scale=$(echo "scale=2; $dpi / 96.0" | bc)
# check if scaling the value is worthy
- if [ "$(echo "$SCALE > 1.25" | bc -l)" -eq 0 ]; then
+ if [ "$(echo "$scale > 1.25" | bc -l)" -eq 0 ]; then
echo "$pixels"
else
- echo "$SCALE * $pixels / 1" | bc
+ echo "$scale * $pixels / 1" | bc
fi
+ else
+ # return the default value if no DPI is set
+ echo "$pixels"
fi
}