blob: 0be3fa5b3907af9b240d863fe9913b1ee4a91bab [file] [log] [blame]
Brad Bishop316dfdd2018-06-25 12:45:53 -04001From 3b5f431a370054bfc090796e8d55de8c8cea46f4 Mon Sep 17 00:00:00 2001
Patrick Williamsb48b7b42016-08-17 15:04:38 -05002From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Wed, 11 Apr 2012 14:28:45 +0200
Brad Bishop316dfdd2018-06-25 12:45:53 -04004Subject: [PATCH] add setdpi Xinit.d script
Patrick Williamsb48b7b42016-08-17 15:04:38 -05005
6Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Brad Bishop316dfdd2018-06-25 12:45:53 -04007
Patrick Williamsb48b7b42016-08-17 15:04:38 -05008---
Brad Bishop316dfdd2018-06-25 12:45:53 -04009 X11/Xinit.d/50setdpi | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++
10 1 file changed, 92 insertions(+)
Patrick Williamsb48b7b42016-08-17 15:04:38 -050011 create mode 100644 X11/Xinit.d/50setdpi
12
13diff --git a/X11/Xinit.d/50setdpi b/X11/Xinit.d/50setdpi
14new file mode 100644
15index 0000000..04a2edd
16--- /dev/null
17+++ b/X11/Xinit.d/50setdpi
18@@ -0,0 +1,92 @@
19+#! /bin/sh
20+#
21+# Copyright Matthias Hentges <devel@hentges.net> (c) 2006
22+# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)
23+#
24+# Filename: setDPI.sh
25+# Date: 09-Apr-06
26+
27+# This script configures Xft.dpi dependent on your screens DPI. This insures that the same font-size
28+# setting of 7 can be used on all machines.
29+
30+
31+XDEFAULTS="/etc/X11/Xdefaults"
32+
33+
34+
35+set_dpi() {
36+
37+ CURRENT_SETTING="`cat ${XDEFAULTS} | sed -n "/Xft.dpi\:/s/.*\:\(.*\)/\1/p" | sed -n "s/\ //p"`"
38+
39+ if test "$CURRENT_SETTING" != "$1"
40+ then
41+ echo "Using Xft.dpi of $SET_SCREEN_DPI for your $SCREEN_DPI DPI screen"
42+
43+ if grep -q "Xft.dpi" "$XDEFAULTS"
44+ then
45+ cat "${XDEFAULTS}" | sed "s/^Xft.dpi\:.*/Xft.dpi\: $SET_SCREEN_DPI/" > "${XDEFAULTS}_"
46+ mv "${XDEFAULTS}_" "${XDEFAULTS}"
47+ else
48+ echo -e "Xft.dpi: $SET_SCREEN_DPI\n" >> "$XDEFAULTS"
49+ fi
50+ else
51+ echo "Your $SCREEN_DPI DPI screen is already configured."
52+ fi
53+}
54+
55+set_rxvt_font() {
56+
57+ CURRENT_SETTING="`cat ${XDEFAULTS} | sed -n "/Rxvt\*font/s/\(.*\pixelsize=\)\(.*\)/\2/p"`"
58+
59+ if test "$1" -gt 100
60+ then
61+
62+ # Configure the rxvt font-size for your screen here:
63+ test "$1" -gt 180 -a "$1" -lt "221" && RXVT_FONT_SIZE=16
64+
65+ if test -z "$RXVT_FONT_SIZE"
66+ then
67+ echo "WARNING: No rxvt font-size configured for a $SCREEN_DPI DPI screen!"
68+ echo "Defaulting to size 9"
69+ RXVT_FONT_SIZE=9
70+ fi
71+
72+ if test "$CURRENT_SETTING" != "$RXVT_FONT_SIZE"
73+ then
74+ echo "Using a rxvt font-size of $RXVT_FONT_SIZE"
75+ cat ${XDEFAULTS} | sed "/Rxvt\*font/s/\(.*\pixelsize\)\(=*.*\)/\1=$RXVT_FONT_SIZE/" > ${XDEFAULTS}_
76+ mv ${XDEFAULTS}_ ${XDEFAULTS}
77+ else
78+ echo "The rxvt font-size is already configured"
79+ fi
80+ fi
81+}
82+
83+if test -z "$DISPLAY"
84+then
85+ echo "DISPLAY is not set, aborting..."
86+ exit 0
87+fi
88+
89+SCREEN_DPI="`/usr/bin/xdpyinfo | grep "dots per inch" | awk '{print $2}'| sed -n "s/\(.*\)x\(.*\)/\2/p"`"
90+
91+if test -z "$SCREEN_DPI"
92+then
93+ echo "WARNING: Couldn't read your screens DPI, defaulting to 100"
94+ SCREEN_DPI=100
95+fi
96+
97+# Configure your screen here:
98+test "$SCREEN_DPI" -gt 180 -a "$SCREEN_DPI" -lt "221" && SET_SCREEN_DPI=160
99+test "$SCREEN_DPI" -gt 90 -a "$SCREEN_DPI" -lt "121" && SET_SCREEN_DPI=100
100+
101+
102+if test -z "$SET_SCREEN_DPI"
103+then
104+ echo "WARNING: No default configuration found for your $SCREEN_DPI DPI screen!"
105+ echo "Using 100 DPI"
106+ SET_SCREEN_DPI=100
107+fi
108+
109+set_dpi "$SET_SCREEN_DPI"
110+set_rxvt_font "$SCREEN_DPI"