summaryrefslogtreecommitdiff
path: root/x11-misc/lightdm/files/Xsession
blob: 1fe0110c9d9ba9723cce6b4a7aa1124fc9253de5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh
#
# LightDM wrapper to run around X sessions.

echo "Running X session wrapper"

# Load profile
for file in "/etc/profile" "${HOME}/.profile" "/etc/xprofile" "${HOME}/.xprofile" ; do
    if [ -f "${file}" ] ; then
        echo "Loading profile from ${file}";
        . "${file}"
    fi
done

# Load resources
for file in "/etc/X11/Xresources" "${HOME}/.Xresources" ; do
    if [ -f "${file}" ] ; then
        echo "Loading resource: ${file}"
        xrdb -nocpp -merge "${file}"
    fi
done

# Load keymaps
for file in "/etc/X11/Xkbmap" "${HOME}/.Xkbmap" ; do
    if [ -f "${file}" ] ; then
        echo "Loading keymap: ${file}"
        setxkbmap $(cat "${file}")
        XKB_IN_USE=yes
    fi
done

# Load xmodmap if not using XKB
if [ -z "${XKB_IN_USE}" ] ; then
    for file in "/etc/X11/Xmodmap" "${HOME}/.Xmodmap" ; do
        if [ -f "${file}" ] ; then
           echo "Loading modmap: ${file}"
           xmodmap "${file}"
        fi
    done
fi

unset XKB_IN_USE

# /etc/X11/xinit/xinitrc.d/80-dbus expects $command to be
# set to the Xsession arguments. So make it happy. See
# https://bugs.gentoo.org/show_bug.cgi?id=533456
command="$@"

# Run all system xinitrc shell scripts.
xinitdir="/etc/X11/xinit/xinitrc.d"
if [ -d "${xinitdir}" ] ; then
    for script in ${xinitdir}/* ; do
        if [ -x "${script}" ] && [ ! -d "${script}" ] ; then
            echo "Loading xinit script ${script}"
            . "${script}"
        fi
    done
fi

# Load Xsession scripts
xsessionddir="/etc/X11/Xsession.d"
if [ -d "${xsessionddir}" ] ; then
    for i in $(ls ${xsessionddir}) ; do
        script="${xsessionddir}/${i}"
        if [ -r "${script}" ] && [ -f "${script}" ] && expr "${i}" : '^[[:alnum:]_-]\+$' > /dev/null ; then
            echo "Loading X session script ${script}"
            . "${script}"
        fi
    done
fi

echo "X session wrapper complete, running session ${@}"

exec ${command}