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