Page 1 of 1

Suggestion: make use of "Windows" Keys?

Posted: Fri Jan 12, 2007 7:57 pm
by scorp123
Because of a project t I had to switch my machine "Barbara" was installed on to Novell's OpenSUSE 10.2 ... so sooooooorry :? ... But I really had to do it. The customer I am doing this for wants his stuff on top of OpenSUSE, and they want everything tweaked and tuned to the max. So I have to do this on my machine here, because it's the one I know best ... I of course did a full system dump .... so when this project is over I will restore my dumps and voila: bye bye Novell, hello again Mint freshness! :wink:

However, working with OpenSUSE I noticed this:

OpenSUSE uses the "Windows" keys to switch between virtual consoles, e.g. the stuff you otherwise would press CTRL+ALT+F1, CTRL+ALT+F2, etc.

The left win-key switches one console backwards, the right one goes one console forward. And the context-menu key (on my keyboard this is between the right ctrl-key and the right win-key) too can be used to go backwards and forward ...

I think this is a really nice feature! Wouldn't be too bad if we could have that in Mint too? :wink:

Posted: Sat Jan 13, 2007 12:46 am
by Alephcat
unfortunately amarok uses them in its default shortcuts so there would be a clash for users of it if just the meta key was used with no modifier.

Posted: Sat Jan 13, 2007 6:19 am
by scorp123
Alephcat wrote:unfortunately amarok uses them in its default shortcuts so there would be a clash for users of it if just the meta key was used with no modifier.
You can run Amarok in console text mode? :wink: Seriously: I think this is a misunderstanding here. I am talking of what functionality these keys have in text mode ... The keys don't work when you're in X11. :wink: So I don't think that this would clash with Amarok ...

Posted: Sat Jan 13, 2007 12:58 pm
by Alephcat
aha, sorry, I can only blame extreme tiredness. I was posting at 5:00 am local time

Posted: Sat Jan 13, 2007 6:46 pm
by clem
Scorp123, any idea where this is set?

Posted: Sun Jan 14, 2007 6:42 am
by scorp123
clem wrote:Scorp123, any idea where this is set?

I think that on an OpenSUSE installation this would be this file: /etc/sysconfig/keyboard ... (guessing fromt the comments they put in there)

Code: Select all

...
...
## Type:        string
## Default:     "tty1 tty2 tty3 tty4 tty5 tty6"
#
# ttys for the above settings
# Example: "tty1 tty2"
# "" for all tty's
#
KBD_TTY="tty1 tty2 tty3 tty4 tty5 tty6"

#
# Compose tables to be loaded.
# Compose tables are good for producing characters, which can not
#  be directly input from your keyboard, such as characters with
#  accents, currency signs, ...
# Please read /usr/share/doc/packages/kbd/README.SuSE for an
#  explanation.
# You may leave this variable empty (default compose table from kernel
#  or KEYTABLE will be used then -- most keyboard maps don't have a
#  compose table, though)
# More than one compose table can be given. For a selection of possible
#  tables see /usr/share/kbd/keymaps/include/compose.*
# You can give more than one compose table, but only the last one will
#  determine the compose combinations.
#  The word "clear" has a special meaning:
#  Your compose table will be cleared, before more compose symbols are
#  added.
# The files compose.winkeys and shiftctrl may be used to map the
#  <compose> key to the W*n menu key and Shift-Ctrl, respectively,
#  on a PC keyboard.
# A typical setting for Latin1 users (with a PC keyboard) may be
#  COMPOSETABLE="clear winkeys shiftctrl latin1.add"
# For latin2, this would be
#  COMPOSETABLE="clear winkeys shiftctrl latin2"
# A typical setting for sb. with a character set, where a matching
#  compose table is missing (but with a PC keyboard), would be
#  COMPOSETABLE="winkeys shiftctrl"
#
COMPOSETABLE="clear winkeys shiftctrl latin1.add"
...
...
The init process for the keyboard /etc/init.d/kbd then sources this file and activates the settings based on the variables that were defined inside of it.

Content of /etc/init.d/kbd:

Code: Select all

#! /bin/sh
# Copyright (c) 1995-2005 SUSE LINUX Products AG, Nuernberg, Germany.
#
# Author:   Burchard Steinbild
#           Werner Fink <werner@suse.de>
#
# Please send feedback to http://www.suse.de/feedback
#
# /etc/init.d/kbd
#
#   and symbolic its link
#
# /sbin/rckbd
#
# Warning:
# /etc/init.d/earlykbd can run this script even if
# the Required-Start conditions listed here are not satisfied.
# Our use of $remote_fs is
# /usr/share/kbd - for finding keymaps
# /usr/sbin/hwinfo - for numlock from bios
#
### BEGIN INIT INFO
# Provides:       kbd
# Required-Start: $remote_fs
# Required-Stop:
# X-SuSE-Should-Start:  fbset setserial earlykbd
# X-SuSE-Should-Stop:
# Default-Start:  1 2 3 5 S
# Default-Stop:
# Description:    Keyboard settings (don't disable!)
### END INIT INFO

. /etc/rc.status
. /etc/sysconfig/console
. /etc/sysconfig/keyboard

test -n "$KBD_VERBOSE" && set -x

test -e /etc/SuSEconfig/profile && . /etc/SuSEconfig/profile
test -e /etc/profile.d/lang.sh  && . /etc/profile.d/lang.sh
LOCALE_CHARMAP=`locale charmap`
LC_ALL=POSIX

MACHINE=`/bin/uname -m 2> /dev/null`
if [ "$MACHINE" = "sparc" -o "$MACHINE" = "sparc64" ]; then
   # Test if we have a serial console.
   (test -c /dev/tty1 && > /dev/tty1 ) > /dev/null 2>&1 || exit 0
fi
# iSeries machines also exit, just a little further down...

# The variable NON_SUSE_KERNEL determines whether we need to chvt
# to a console before some console settings apply.
# We have no magic to find out about this (at boot time), so we
# leave it to the user to read this comment and put NON_SUSE_KERNEL="yes"
# into /etc/sysconfig/console

test "$NON_SUSE_KERNEL" = "yes" && FGCONS=`/bin/fgconsole`

KBDBASE="/usr/share/kbd"

KTABLE=${KEYTABLE%.map*}
KTABLE=${KTABLE##*/}

#
# first search the wanted keytable.
#
if [ $MACHINE = ppc -o $MACHINE = ppc64 ]; then
        test -f /proc/cpuinfo || mount -n -t proc proc /proc 2>/dev/null
        while read line; do
               case "$line" in
                  *MacRISC*)    MACHINE="mac"
                  test -f /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes && \
                          echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
                  ;;
                  *CHRP*)       MACHINE="chrp";;
                  *PReP*)       MACHINE="prep" ;;
                  *iSeries*)    exit 0 ;;
                esac
        done < /proc/cpuinfo
fi

#
# Calculate KBD_TTY array only once
# Caution: Keep in sync with earlykbd.init
#
if test -z "$KBD_TTY"; then
        KBD_TTY="tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 tty9
                 tty10 tty11 tty12 tty13 tty14 tty15 tty16
                 tty17 tty18 tty19 tty20 tty21 tty22 tty23 tty24"
fi

newkbd=""
for tty in $KBD_TTY; do
    test -w /dev/$tty           || continue
    test -c /dev/$tty           || continue
    > /dev/$tty &> /dev/null    || continue
    newkbd="${newkbd:+$newkbd }/dev/$tty"
done
KBD_TTY="$newkbd"
unset newkbd

#
# load usb drivers in runlevel S
#
case "${PREVLEVEL}${RUNLEVEL}" in
        N1|NS)
        test -f /proc/cpuinfo || mount -n -t proc proc /proc 2>/dev/null

#       [bugzilla #46113]
#       we come here although heading for runlevel 5.
#       I'll comment out diabling hotplug for now. jw.
#       test -f /proc/sys/kernel/hotplug && echo /bin/true > /proc/sys/kernel/hotplug 2>/dev/null
        test -d /proc/bus/usb || modprobe usbcore >/dev/null 2>&1
        mount -n -t usbfs usbfs /proc/bus/usb >/dev/null 2>&1
        for mod in ehci-hcd ohci-hcd uhci-hcd usb-ohci usb-uhci ; do
             echo -n $mod" "
             modprobe $mod >/dev/null 2>&1
        done
        echo
        echo "wait 3 seconds for USB initialisation ..."
        sleep 3
        for mod in usbhid input hid keybdev ; do
             modprobe $mod >/dev/null 2>&1
        done
        ;;
esac

KEYMAP=""
if test -e /$KEYTABLE ; then
    KEYMAP=$KEYTABLE
else
    KEYTABLE=$KTABLE
    case "$KEYTABLE" in
        *.gz)  KBDPATH="${KEYTABLE}" ;;
        *.map) KBDPATH="${KEYTABLE} ${KEYTABLE}.gz" ;;
        *)     KBDPATH="${KEYTABLE} ${KEYTABLE}.gz ${KEYTABLE}.map.gz ${KEYTABLE}.map" ;;
    esac
    KEYMAP=$(find ${KBDBASE}/keymaps -type f \( -name ${KBDPATH// / -o -name } \))
fi
#
# setup kbdrate and led status
#
function set_kbdrate ()
{
        local line

        if test "$MACHINE" != "mac" ; then
                KBDOPT=""
                if test -n "$KBD_RATE" ; then
                        KBDOPT="${KBDOPT:+$KBDOPT }-r $KBD_RATE"
                fi
                if test -n "$KBD_DELAY"; then
                        KBDOPT="${KBDOPT:+$KBDOPT }-d $KBD_DELAY"
                fi
                if test -n "$KBDOPT" ; then
                        echo -n "Keyboard: "
                        /bin/kbdrate $KBDOPT
                        rc_status -v1
                fi
        fi

        # setleds
        #
        # Note: The file /var/run/numlock-on is used in ~/.xinitrc
        #       to reflect the correct numlock state choosen by the
        #       user even under X11
        #
        if test "$KBD_NUMLOCK" = "yes"; then
                touch /var/run/numlock-on
        elif test "$KBD_NUMLOCK" = "no"; then
                rm -f /var/run/numlock-on
        elif test "$KBD_NUMLOCK" = "bios"; then
                if test -x /usr/sbin/hwinfo ; then
                    /usr/sbin/hwinfo --bios | \
                    while read line ; do
                        case "$line" in
                        Num\ Lock:\ on)  touch /var/run/numlock-on ;;
                        Num\ Lock:\ off) rm -f /var/run/numlock-on ;;
                        Caps\ Lock:)     break
                        esac
                    done
                else
                    echo "no /usr/sbin -> Numlock off."
                    rm -f /var/run/numlock-on
                fi
        fi
        unset line

        #
        # Only change keyboard leds if setleds is in path
        #
        type -p setleds &> /dev/null            || return

        if test -e /var/run/numlock-on ; then
                LEDOPT="+num"
        else
                LEDOPT="-num"
        fi
        if test "$KBD_CAPSLOCK" = "yes"; then
                LEDOPT="$LEDOPT +caps"
        else
                LEDOPT="$LEDOPT -caps"
        fi
        if test "$KBD_SCRLOCK" = "yes"; then
                LEDOPT="$LEDOPT +scroll"
        else
                LEDOPT="$LEDOPT -scroll"
        fi

        #
        # Only change keyboard leds if they will be switched
        # on ... OR if they are switched on currently
        #
        if [[ $LEDOPT == *+* ]] ; then
                touch /var/run/setleds-on
        else
                test -e /var/run/setleds-on     || return
                test -n "$LEDOPT"               || return
                rm -f /var/run/setleds-on
        fi

        for tty in $KBD_TTY; do
                setleds -D $LEDOPT < $tty
        done
}
#
rc_reset
case "$1" in
    start|restart|reload|force-reload)

        case "$1" in
            start)
                # don't do anything if we have this file.
                # this means that initialization was already done.
                # don't do it twice unless forced, it may annoy xdm and
                # produce lots of error messages.
                test -s /var/run/keymap && exit 0
            ;;
        esac


        if test -z "$KEYTABLE"; then
            echo "No keyboard map to load"
        else
            if test -z "$KEYMAP" || test ! -d "$KBDBASE" ; then
                if test -r /etc/defkeymap.map ; then
                    if test -n "$KEYMAP" ; then
                        echo "$KEYMAP is unvailable, using /etc/defkeymap.map instead."
                        if test -r /var/run/keymap ; then
                            read cached < /etc/defkeymap.name
                            if test "$KEYMAP" != "$cached" && test $K != "$cached" ; then
                                echo "Warning: fallback differs: $cached"
                            fi
                        fi
                    else
                        echo "Can not find a keymap for ${KEYTABLE}, trying fallback."
                    fi
                    KEYMAP=/etc/defkeymap.map
                else
                    echo "Fallback /etc/defkeymap.map not there."
                    echo "Can not find a keymap for ${KEYTABLE}, Exit."
                    rc_failed
                fi
            else
                if test ! -e "$KEYMAP" ; then
                    echo "Found more than one keymap ${KEYTABLE}"
                    KEYMAP=$K
                    echo "Using $KEYMAP."
                    echo "If you want another one, please add complete path to"
                    echo "KEYTABLE in /etc/sysconfig/keyboard."
                fi
            fi
            rc_status && retmsg="`loadkeys -C "$KBD_TTY" $KEYMAP 2>&1`"
            if test $? -eq 0 && ( > /var/run/keymap ) > /dev/null 2>&1 ; then
                echo "$KEYMAP"    > /var/run/keymap
            else
                case "$RUNLEVEL" in
                    S|N|1|\#) true ;;
                    *) rc_failed ;;
                esac
            fi
            echo "Loading keymap ${retmsg#Loading*${KBDBASE}/keymaps/}"
            rc_status -v1

            set_kbdrate
        fi

        # Disable CAPS LOCK key if wanted
        if test "$KBD_DISABLE_CAPS_LOCK" = "yes"; then
                loadkeys -C "$KBD_TTY" disable.capslock >/dev/null 2>&1 || echo "Could not disable Caps Lock"
        fi

        # Load compose tables
        case "$RUNLEVEL" in
            S|N|1|\#) COMPOSETABLE="" ;;
        esac
        if test ! -z "$COMPOSETABLE"; then
                unset COMPOSELOADED COMPOSECLEAR
                for name in $COMPOSETABLE; do
                        # Test for compose clear flag
                        if test "$name" = "-c" -o "$name" = "clear"; then
                                COMPOSECLEAR=-c
                                continue
                        fi
                        # Handle the first table differently ...
                        if test -z "$COMPOSELOADED"; then
                                echo -n "Loading compose table $name"
                                loadkeys -C "$KBD_TTY" $COMPOSECLEAR compose.$name >/dev/null 2>&1
                                rc_check
                                #if test $name = clear; then rc_reset; fi
                                COMPOSELOADED=1
                        else
                                echo -n " $name"
                                loadkeys -C "$KBD_TTY" compose.$name >/dev/null 2>&1
                                rc_check
                        fi
                done
                if test ! -z "$COMPOSELOADED"; then
                        rc_status -v
                fi
        fi

        # Unicode mode
        if test -x /bin/kbd_mode ; then
            case $LOCALE_CHARMAP in
                UTF-8)
                    echo Start Unicode mode
                    for tty in $KBD_TTY; do
                        # The chvt is not needed for SuSE kernels
                        test "$NON_SUSE_KERNEL" != "yes" || chvt ${tty#*tty}

                        # Tell the console output driver that the bytes
                        # arriving are UTF-8 encoded multibyte sequences.
                        echo -n -e '\033%G' > $tty

                        # Set the keyboard driver in Unicode mode.
                        # (Default is ASCII mode.)
                        # This really does nothing with the way normal
                        # keys are handled in the kernel. All it does is:
                        # - It is necessary for `dumpkeys' in order to
                        #   not drop U+XXXX entries from the keymaps.
                        # - It is necessary for `loadkeys' in order to
                        #   avoid warnings.
                        # - Unicode characters typed as Alt-x1 ... Alt-xn
                        #   (where x1,...,xn are digits on the numeric keypad)
                        #    will be emitted in UTF-8.
                        kbd_mode -u -C $tty
                        rc_status
                    done
                    ;;
                *)
                    echo Stop Unicode mode
                    for tty in $KBD_TTY; do
                        # The chvt is not needed for SuSE kernels
                        test "$NON_SUSE_KERNEL" != "yes" || chvt ${tty#*tty}

                        echo -n -e '\033%@' > $tty

                        kbd_mode -a -C $tty
                        rc_status
                    done
                    ;;
            esac
            test "$NON_SUSE_KERNEL" != "yes" || chvt $FGCONS
            rc_status -v1
        fi

        # setfont
        if test -d ${KBDBASE}/consolefonts -a \
                -n "$CONSOLE_FONT" -a "$CONSOLE_FONT" != "YAST_ASK"
        then
            if test ! -z "$CONSOLE_UNICODEMAP"; then
                    UMAP="-u $CONSOLE_UNICODEMAP"
            fi
            if test ! -z "$CONSOLE_SCREENMAP"; then
                    SMAP="-m $CONSOLE_SCREENMAP"
            fi
            PRINTABLE_MAGIC="";
            if test -n "$CONSOLE_MAGIC" -a "$CONSOLE_MAGIC" != "none"; then
                    case $CONSOLE_MAGIC in
                        \(B)    PRINTABLE_MAGIC="G0:iso8859-1" ;;
                        \(0)    PRINTABLE_MAGIC="G0:vt100" ;;
                        \(U)    PRINTABLE_MAGIC="G0:ROM" ;;
                        \(K)    PRINTABLE_MAGIC="G0:loadable" ;;
                        \)B)    PRINTABLE_MAGIC="G1:iso8859-1" ;;
                        \)0)    PRINTABLE_MAGIC="G1:vt100" ;;
                        \)U)    PRINTABLE_MAGIC="G1:ROM" ;;
                        \)K)    PRINTABLE_MAGIC="G1:loadable" ;;
                        *)      PRINTABLE_MAGIC="magic='$CONSOLE_MAGIC'" ;;
                    esac
                    CONSOLE_MAGIC="\033$CONSOLE_MAGIC"
            else
                    CONSOLE_MAGIC="";
            fi
            if test -x /bin/setfont ; then
                echo "Loading console font $CONSOLE_FONT $UMAP $SMAP $PRINTABLE_MAGIC"
                for tty in $KBD_TTY; do
                    # The chvt is not needed for SuSE kernels
                    test "$NON_SUSE_KERNEL" != "yes" || chvt ${tty#*tty}

                    /bin/setfont -C $tty $CONSOLE_FONT $UMAP $SMAP
                    rc_status

                    echo -en "$CONSOLE_MAGIC" > $tty
                done
                test "$NON_SUSE_KERNEL" != "yes" || chvt $FGCONS
                rc_status -v1
            fi
        fi

        case "$RUNLEVEL" in
            S|N|1|\#) true ;;
            *)
                case $LOCALE_CHARMAP in
                    UTF-8)
                        # Change the keyboard mapping in such a way that the
                        # non-ASCII keys produce UTF-8 encoded multibyte sequences
                        # instead of single bytes >= 0x80 in a legacy 8-bit encoding.
                        ( dumpkeys | loadkeys -C "$KBD_TTY" --unicode ) > /dev/null 2>&1
                        ;;
                    *)
                        ;;
                esac
                dumpkeys=yes
                if type -p cmp > /dev/null 2>&1 && \
                   dumpkeys | cmp -s /etc/defkeymap.map
                then
                   dumpkeys=no
                fi
                if test "$dumpkeys" = "yes" ; then
                    ( dumpkeys > /etc/defkeymap.map ) > /dev/null 2>&1
                    if test ! -z "$KEYMAP" && test "$KEYMAP" != "/etc/defkeymap.map" ; then
                        test ! -e "$KEYMAP" && KEYMAP=$K
                        echo $KEYMAP > /etc/defkeymap.name
                    fi
                fi
        esac

        ;;
    stop)
        # enable start after stop.
        echo -n "$0 stop"
        rm -f /var/run/keymap
        rc_status -v
        ;;
    check|status)
        if test -r /var/run/keymap ; then
            read current < /var/run/keymap
            echo "Keymap $current is loaded."
        else
            rc_failed 3
        fi
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|reload|force-reload|status|check}"
        exit 2
        ;;
esac
rc_exit

That's some pretty neat shell coding there IMHO :wink:

All in all OpenSUSE has and always had tons and tons of little scripts inside the /etc/sysconfig directory ... and they all configure some environmental variables which are then used system-wide. As far as I remember Ubuntu and Mint you probably don't have half of the scripts which SUSE places in there, so I wonder how far the behaviour can even be reproduced on an Ubuntu-like system?

Here the directory listing of my /etc/sysconfig directory:

Code: Select all

/etc/sysconfig> ls -al
total 328
drwxr-xr-x  6 root root  4096 2007-01-12 16:37 .
drwxr-xr-x 92 root root  8192 2007-01-14 11:57 ..
-rw-r--r--  1 root root   660 2007-01-12 15:38 apache2
-rw-r--r--  1 root root   961 2007-01-12 15:25 auditd
-rw-r--r--  1 root root   809 2007-01-12 15:33 autofs
-rw-r--r--  1 root root   522 2007-01-12 15:45 autoinstall
-rw-r--r--  1 root root  1139 2007-01-12 15:29 backup
-rw-r--r--  1 root root  6119 2007-01-12 16:52 bluetooth
-rw-r--r--  1 root root  1389 2007-01-12 15:29 boot
-rw-r--r--  1 root root   545 2007-01-12 16:09 bootloader
-rw-r--r--  1 root root   505 2007-01-12 15:27 bootsplash
-rw-r--r--  1 root root   999 2007-01-12 16:08 clock
-rw-r--r--  1 root root  2982 2007-01-12 16:08 console
-rw-r--r--  1 root root  3197 2007-01-12 15:42 cron
-rw-r--r--  1 root root   431 2007-01-12 18:55 cups
-rw-r--r--  1 root root  4312 2007-01-12 16:41 displaymanager
-rw-r--r--  1 root root  2007 2007-01-12 15:28 esound
-rw-r--r--  1 root root   781 2007-01-12 16:02 fam
-rw-r--r--  1 root root   133 2007-01-12 15:26 festival
-rw-r--r--  1 root root  3229 2007-01-12 19:46 fonts-config
drwxr-xr-x  4 root root  4096 2007-01-12 16:52 hardware
-rw-r--r--  1 root root  1673 2007-01-12 15:43 icecream
-rw-r--r--  1 root root   390 2007-01-12 15:25 ide
-rw-r--r--  1 root root   836 2007-01-12 15:28 ispell
-rw-r--r--  1 root root  1143 2007-01-12 15:25 joystick
-rw-r--r--  1 root root  3078 2007-01-12 16:09 kernel
-rw-r--r--  1 root root  2968 2007-01-12 16:08 keyboard
-rw-r--r--  1 root root  3754 2007-01-12 16:08 language
-rw-r--r--  1 root root   842 2007-01-12 16:05 ldap
-rw-r--r--  1 root root  1014 2007-01-12 15:31 lirc
-rw-r--r--  1 root root   417 2007-01-12 18:51 lvm
-rw-r--r--  1 root root   787 2007-01-12 15:41 mail
-rw-r--r--  1 root root  1456 2007-01-12 15:26 mdadm
-rw-r--r--  1 root root  1398 2007-01-12 16:08 mouse
-rw-r--r--  1 root root  1745 2007-01-12 15:28 ncpfs
-rw-r--r--  1 root root  1025 2007-01-12 15:45 net-snmp
drwxr-xr-x  6 root root  4096 2007-01-12 16:34 network
-rw-r--r--  1 root root   193 2007-01-12 15:29 news
-rw-r--r--  1 root root  1095 2007-01-12 16:03 nfs
-rw-r--r--  1 root root  2833 2007-01-12 19:37 ntp
-rw-r--r--  1 root root   172 2007-01-12 16:00 portmap
-rw-r--r--  1 root root  9125 2007-01-12 15:41 postfix
drwxr-xr-x  2 root root  4096 2007-01-12 15:45 powersave
-rw-r--r--  1 root root  1289 2007-01-12 15:29 proxy
-rw-r--r--  1 root root   281 2007-01-12 15:36 saslauthd
-rw-r--r--  1 root root  1950 2007-01-12 15:26 scpm
drwxr-xr-x  2 root root  4096 2007-01-12 15:25 scripts
-rw-r--r--  1 root root   336 2007-01-12 15:28 scsidev
-rw-r--r--  1 root root  1080 2007-01-12 16:08 security
-rw-r--r--  1 root root   379 2007-01-12 15:44 services
-rw-r--r--  1 root root   356 2007-01-12 15:29 shutdown
-rw-r--r--  1 root root  1188 2007-01-12 16:52 sound
-rw-r--r--  1 root root   281 2007-01-12 15:44 spamd
-rw-r--r--  1 root root   162 2007-01-12 16:03 ssh
-rw-r--r--  1 root root  1723 2007-01-12 16:08 suseconfig
-rw-r--r--  1 root root 31215 2007-01-12 22:43 SuSEfirewall2
-rw-r--r--  1 root root  1618 2007-01-12 15:38 susehelp
-rw-r--r--  1 root root    44 2007-01-12 16:52 suse_register
-rw-r--r--  1 root root   936 2007-01-12 15:41 svnserve
-rw-r--r--  1 root root   313 2007-01-12 15:29 sw_management
-rw-r--r--  1 root root  1641 2007-01-12 16:52 sysctl
-rw-r--r--  1 root root  1053 2007-01-12 15:58 syslog
-rw-r--r--  1 root root  8009 2007-01-12 15:27 ulimit
-rw-r--r--  1 root root   549 2007-01-12 15:25 videobios
-rw-r--r--  1 root root  1254 2007-01-12 16:08 windowmanager
-rw-r--r--  1 root root   878 2007-01-12 15:27 words
-rw-r--r--  1 root root  1121 2007-01-12 16:03 ypbind
-rw-r--r--  1 root root   169 2007-01-12 15:58 zmd
As I said, these are no e.g. init-scripts, these scripts don't launch anything by themselves. All these scripts inside the sysconfig directory do is to define some environment variables which are then used system-wide (e.g. in every shell ... or by the actual init-scripts).

Obviously this mechanism also has its downside ... as a SUSE user you may have to take care of two init scripts (/etc/init.d + /etc/sysconfig) instead of just one ...