summaryrefslogtreecommitdiff
path: root/packages/xserver-common/files/setDPI.sh
diff options
context:
space:
mode:
authorJustin Patrin <papercrane@gmail.com>2006-04-15 03:50:10 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2006-04-15 03:50:10 +0000
commit7c0807ddc5e8f0e65da7b1a88692e788fcfb2516 (patch)
tree3e031a5c1ddf28a130179da3e02ffe748bf0dbc6 /packages/xserver-common/files/setDPI.sh
parentb1c4f9d640fefdb8442d7608840232d0bbea057d (diff)
parent66c4894730379eb318aace935f0ed96c0a69bb1e (diff)
merge of b387bb17fbe66898242adaa29f44ed4c12eaea1e
and ccbffbb600e43462f6435f1404be257286d4909d
Diffstat (limited to 'packages/xserver-common/files/setDPI.sh')
-rw-r--r--packages/xserver-common/files/setDPI.sh92
1 files changed, 92 insertions, 0 deletions
diff --git a/packages/xserver-common/files/setDPI.sh b/packages/xserver-common/files/setDPI.sh
new file mode 100644
index 0000000000..04a2edd6c6
--- /dev/null
+++ b/packages/xserver-common/files/setDPI.sh
@@ -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"