diff options
Diffstat (limited to 'mate-base/mate-session-manager/files/MATE')
-rw-r--r-- | mate-base/mate-session-manager/files/MATE | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/mate-base/mate-session-manager/files/MATE b/mate-base/mate-session-manager/files/MATE new file mode 100644 index 0000000..baa154b --- /dev/null +++ b/mate-base/mate-session-manager/files/MATE @@ -0,0 +1,109 @@ +#!/bin/sh +# +# This file has bitrotted badly. Someone needs to clean this up. +# + +if [ -f /etc/xdg/menus/mate-applications.menu ] ; then + export XDG_MENU_PREFIX=mate- +fi + +for errfile in "$HOME/.materc-errors" "${TMPDIR-/tmp}/materc-$USER/tmp/materc-$USER" +do + if ( cp /dev/null "$errfile" 2> /dev/null ) + then + chmod 600 "$errfile" + exec > "$errfile" 2>&1 + break + fi +done +# +# Distributors: +# You should modify the paths here to fit your distro +# If you need to do so, send me (jirka@5z.com) a patch +# and I'll try to make the script detect the distro stuff +# + +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 + +if [ -x "$HOME/.materc" ]; then + command="$HOME/.materc" +elif [ -x /etc/X11/gdm/materc ]; then + command="/etc/X11/gdm/materc" +else + # as fallback in case the config is screwed + command=`which mate-session` +fi + +# merge in defaults +if [ -f "$rh6sysresources" ]; then + xrdb -merge "$rh6sysresources" +fi + +if [ -f "$sysresources" ]; then + xrdb -merge "$sysresources" +fi + +if [ -f "$userresources" ]; then + xrdb -merge "$userresources" +fi + +# merge in keymaps +if [ -f "$sysxkbmap" ]; then + setxkbmap `cat "$sysxkbmap"` + XKB_IN_USE=yes +fi + +if [ -f "$userxkbmap" ]; then + setxkbmap `cat "$userxkbmap"` + XKB_IN_USE=yes +fi + +# +# Eeek, this seems like too much magic here +# +if [ -z "$XKB_IN_USE" ] && [ ! -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` + 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 + if [ -f "$rh6sysmodmap" ]; then + xmodmap "$rh6sysmodmap" + fi + + if [ -f "$sysmodmap" ]; then + xmodmap "$sysmodmap" + fi + + if [ -f "$usermodmap" ]; then + xmodmap "$usermodmap" + fi +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 $command |