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