summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch
blob: b408234ecb2517372883e559b6f8a86a1085ebe2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
From 3b5f431a370054bfc090796e8d55de8c8cea46f4 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Wed, 11 Apr 2012 14:28:45 +0200
Subject: [PATCH] add setdpi Xinit.d script

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>

---
Upstream-Status: Pending

 X11/Xinit.d/50setdpi | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)
 create mode 100644 X11/Xinit.d/50setdpi

diff --git a/X11/Xinit.d/50setdpi b/X11/Xinit.d/50setdpi
new file mode 100644
index 0000000..04a2edd
--- /dev/null
+++ b/X11/Xinit.d/50setdpi
@@ -0,0 +1,92 @@
+#! /bin/sh
+#
+# Copyright Matthias Hentges <devel@hentges.net> (c) 2006
+# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)
+#
+# Filename: setDPI.sh
+# Date: 09-Apr-06
+
+# This script configures Xft.dpi dependent on your screens DPI. This insures that the same font-size
+# setting of 7 can be used on all machines.
+
+
+XDEFAULTS="/etc/X11/Xdefaults"
+
+
+
+set_dpi() {
+	
+	CURRENT_SETTING="`cat ${XDEFAULTS} | sed -n "/Xft.dpi\:/s/.*\:\(.*\)/\1/p" | sed -n "s/\ //p"`"	
+
+	if test "$CURRENT_SETTING" != "$1"
+	then
+		echo "Using Xft.dpi of $SET_SCREEN_DPI for your $SCREEN_DPI DPI screen"
+		
+		if grep -q "Xft.dpi" "$XDEFAULTS"
+		then
+			cat "${XDEFAULTS}" | sed "s/^Xft.dpi\:.*/Xft.dpi\: $SET_SCREEN_DPI/" > "${XDEFAULTS}_"
+			mv "${XDEFAULTS}_" "${XDEFAULTS}"
+		else
+			echo -e "Xft.dpi: $SET_SCREEN_DPI\n" >> "$XDEFAULTS"
+		fi
+	else
+		echo "Your $SCREEN_DPI DPI screen is already configured."
+	fi
+}
+
+set_rxvt_font() {
+
+	CURRENT_SETTING="`cat ${XDEFAULTS} | sed  -n "/Rxvt\*font/s/\(.*\pixelsize=\)\(.*\)/\2/p"`"
+
+	if test "$1" -gt 100
+	then
+	
+		# Configure the rxvt font-size for your screen here:
+		test "$1" -gt 180 -a "$1" -lt "221" && RXVT_FONT_SIZE=16
+		
+		if test -z "$RXVT_FONT_SIZE"
+		then
+			echo "WARNING: No rxvt font-size configured for a $SCREEN_DPI DPI screen!"
+			echo "Defaulting to size 9"
+			RXVT_FONT_SIZE=9
+		fi
+		
+		if test "$CURRENT_SETTING" != "$RXVT_FONT_SIZE"
+		then
+			echo "Using a rxvt font-size of $RXVT_FONT_SIZE"
+			cat ${XDEFAULTS} | sed "/Rxvt\*font/s/\(.*\pixelsize\)\(=*.*\)/\1=$RXVT_FONT_SIZE/" > ${XDEFAULTS}_
+			mv ${XDEFAULTS}_ ${XDEFAULTS}
+		else
+			echo "The rxvt font-size is already configured"
+		fi 
+	fi
+}
+
+if test -z "$DISPLAY"
+then
+	echo "DISPLAY is not set, aborting..."
+	exit 0
+fi
+
+SCREEN_DPI="`/usr/bin/xdpyinfo | grep "dots per inch" | awk '{print $2}'| sed -n "s/\(.*\)x\(.*\)/\2/p"`"
+
+if test -z "$SCREEN_DPI"
+then
+	echo "WARNING: Couldn't read your screens DPI, defaulting to 100"
+	SCREEN_DPI=100
+fi
+
+# Configure your screen here:
+test "$SCREEN_DPI" -gt 180 -a "$SCREEN_DPI" -lt "221" && SET_SCREEN_DPI=160
+test "$SCREEN_DPI" -gt 90 -a "$SCREEN_DPI" -lt "121" && SET_SCREEN_DPI=100
+
+
+if test -z "$SET_SCREEN_DPI"
+then
+	echo "WARNING: No default configuration found for your $SCREEN_DPI DPI screen!"
+	echo "Using 100 DPI"
+	SET_SCREEN_DPI=100
+fi
+
+set_dpi "$SET_SCREEN_DPI"
+set_rxvt_font "$SCREEN_DPI"