Slim Display Manager

From LFScript
Revision as of 20:47, 9 February 2012 by Marcel (talk | contribs) (→‎Installation: Updated the bootscript to kill both 'slim' and 'X', in stead of just 'X')

LFScript can find this software under the name slim.

Sources

Dependencies

  • libjpeg
  • x-window-system

Installation

Allow slim to compile against libpng 1.5:

sed 's@png_ptr->jmpbuf@png_jmpbuf(png_ptr)@g' -i png.c
sed 's@-lpng12@-lpng15@g' -i Makefile

By default, Slim uses the .xinitrc file in a users home directory to set up an X session. Change this to use the system-wide xinitrc in stead:

sed 's@~/.@/etc/X11/app-defaults/@g' -i slim.conf

Compile the package:

sed 's@/bin/slim@/sbin/slim@g' -i Makefile
make

As the root user:

make install

The next two code blocks will install a custom boot script, which will launch the Slim Display Manager on boot.

As the root user:

cat > /etc/rc.d/init.d/slim << "EOF"
#!/bin/sh
# Written by Marcel van den Boer

. /lib/lsb/init-functions

case "$1" in
    start)
        log_info_msg "Starting the Slim Display Manager..."

        # Update sessions list
        if [ -r /etc/X11/app-defaults/xinitrc.d/functions ]; then
            . /etc/X11/app-defaults/xinitrc.d/functions
            SESSIONS="$(listSessions)"
            sed "s@^sessions.*\$@sessions ${SESSIONS}@g" -i /etc/slim.conf
        fi

        /usr/sbin/slim -d
        evaluate_retval
        ;;

    stop)
        log_info_msg "Stopping the Slim Display Manager..."
        killall slim || failed=1
        killall X || failed=1

        (exit ${failed})
        evaluate_retval

        rm -rf /var/run/slim.lock
        ;;

    restart)
        ${0} stop
        sleep 1
        ${0} start
        ;;

    *)
        echo "Usage: ${0} {start|stop|restart}"
        exit 1
        ;;
esac
EOF
chmod 755 /etc/rc.d/init.d/slim

As the root user:

for n in 0 1 2 3 4 6; do
    ln -svf ../init.d/slim /etc/rc.d/rc${n}.d/K05slim
done
ln -svf ../init.d/slim /etc/rc.d/rc5.d/S95slim