# Setup script for X11 configuration files.
+# Copyright (C) 2011-2014 Simon Ruderich
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+set -eu
. ../lib.sh
+
if installed stumpwm; then
link stumpwmrc ~/.stumpwmrc
fi
+if installed xmonad; then
+ link xmonad ~/.xmonad
+fi
+if installed herbstluftwm; then
+ link herbstluftwm ~/.config/herbstluftwm
+fi
if installed X; then
- # Use settings for XTerm also for UXTerm. This prevents code duplication.
- generate awk Xdefaults \
- '{ print ; if ( /^XTerm/ ) { print "U" $0 } }'
- # Xdefaults uses ! as comment instead of #.
- sed -i 's/^#/!/' Xdefaults
+ # Prevent code duplication. Term* rules are for all terminals; XTerm rules
+ # are for XTerm and UXTerm. At the moment XTerm, UXTerm and Rxvt are
+ # supported.
+ generate Xresources .in perl -ne \
+ 'if (/^Term/) {
+ s/^Term//;
+ print "XTerm", $_;
+ print "UXTerm", $_;
+ print "Rxvt", $_;
+ } elsif (/^XTerm/) {
+ print $_;
+ s/^XTerm//;
+ print "UXTerm", $_;
+ } else {
+ print $_;
+ }'
+ # Xresources uses ! as comment instead of #.
+ sed_i 's/^#/!/' Xresources
+ # Use urxvt's pseudo-transparency if neither compton nor xcompmgr are
+ # available. Better than nothing.
+ if ! installed compton && ! installed xcompmgr; then
+ echo 'Xresources: no compton found, enabling pseudo-transparency'
+ sed_i 's/^Rxvt\*background: \[/!&/' Xresources
+ sed_i 's/^!NO_COMPTON //' Xresources
+ fi
- link xinitrc ~/.xinitrc
+ if test ! "x`os`" = xdarwin; then
+ link xinitrc ~/.xinitrc
+ # Most display managers use ~/.xsession instead of ~/.xinitrc (which
+ # is used by e.g. startx). Provide both links.
+ link xinitrc ~/.xsession
+ fi
+ if test -f xinitrc.local; then
+ link xinitrc.local ~/.xinitrc.local
+ fi
link xmodmaprc ~/.xmodmaprc
- link Xdefaults ~/.Xdefaults
+ link Xresources ~/.Xresources
+ link XCompose ~/.XCompose
+
+ link bin/xlockscreen ~/.xlockscreen
+fi
+
+if installed xpdf; then
+ link xpdfrc ~/.xpdfrc
+fi
+if installed zathura; then
+ mkdir -p ~/.config/zathura
+ link zathurarc ~/.config/zathura/zathurarc
+fi
+
+if installed feh; then
+ mkdir -p ~/.config
+ link feh ~/.config/feh
+ # Older feh versions only support theme options and configure them through
+ # ~/.fehrc.
+ link feh/themes ~/.fehrc
fi