diff options
Diffstat (limited to 'x11-wm/awesome/files/awesome-session')
-rw-r--r-- | x11-wm/awesome/files/awesome-session | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/x11-wm/awesome/files/awesome-session b/x11-wm/awesome/files/awesome-session new file mode 100644 index 0000000..4421ccc --- /dev/null +++ b/x11-wm/awesome/files/awesome-session @@ -0,0 +1,73 @@ +#!/bin/sh +# Awesome Xsession starter, based on Xsession shipped by x11-apps/xinit-1.0.5-r1 + +# redirect errors to a file in user's home directory if we can +for errfile in "$HOME/.awesome-errors" "${TMPDIR-/tmp}/awesome-$USER" "/tmp/awesome-$USER" +do + if ( cp /dev/null "$errfile" 2> /dev/null ) + then + chmod 600 "$errfile" + exec > "$errfile" 2>&1 + break + fi +done + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +userxkbmap=$HOME/.Xkbmap + +sysresources=/etc/X11/Xresources +sysmodmap=/etc/X11/Xmodmap +sysxkbmap=/etc/X11/Xkbmap + +rh6sysresources=/etc/X11/xinit/Xresources +rh6sysmodmap=/etc/X11/xinit/Xmodmap + + +# merge in defaults +for i in "$rh6sysresources" "$sysresources" "$userresources" ; do + [ -f "$i" ] && xrdb -merge "$i" +done + +# merge in keymaps +for i in "$sysxkbmap" "$userxkbmap" ; do + if [ -f "$i" ]; then + setxkbmap `cat "$i"` + XKB_IN_USE=yes + fi +done + +# +# Eeek, this seems like too much magic here +# +if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then + if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then + xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config /etc/X11/xorg.conf` + if [ -n "$xkbsymbols" ]; then + setxkbmap -symbols "$xkbsymbols" + XKB_IN_USE=yes + fi + fi +fi + +# xkb and xmodmap don't play nice together +if [ -z "$XKB_IN_USE" ]; then + for i in "$rh6sysmodmap" "$sysmodmap" "$usermodmap" ; do + [ -f "$i" ] && xmodmap "$i" + done +fi + +unset XKB_IN_USE + +# run all system xinitrc shell scripts. +if [ -d /etc/X11/xinit/xinitrc.d ]; then + for i in /etc/X11/xinit/xinitrc.d/* ; do + if [ -x "$i" ]; then + . "$i" + fi + done +fi + +exec /usr/bin/awesome + +# vim: ft=sh noet ts=4 sw=4: |