flavors rev 31

core: add 915resolution and last bootscript
author Christophe Lincoln <pankso@slitaz.org>
date Sun Mar 21 16:13:45 2010 +0100 (2010-03-21)
parents 11e6966b7a35
children 5159e40706f4
files core/packages.list core/rootfs/etc/init.d/bootopts.sh core/rootfs/etc/init.d/network.sh core/rootfs/etc/skel/.config/pcmanfm/main core/rootfs/etc/skel/Desktop/slitaz-doc.desktop
line diff
     1.1 --- a/core/packages.list	Mon Mar 08 18:44:20 2010 +0100
     1.2 +++ b/core/packages.list	Sun Mar 21 16:13:45 2010 +0100
     1.3 @@ -1,7 +1,7 @@
     1.4  atk
     1.5  busybox
     1.6  bzlib
     1.7 -cairo
     1.8 +cairo-xcb
     1.9  cdrkit
    1.10  clearlooks
    1.11  conspy
    1.12 @@ -146,5 +146,8 @@
    1.13  beaver
    1.14  lua
    1.15  epdfview
    1.16 +915resolution
    1.17 +libunique
    1.18  libwebkit
    1.19  midori
    1.20 +gettext-base
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/core/rootfs/etc/init.d/bootopts.sh	Sun Mar 21 16:13:45 2010 +0100
     2.3 @@ -0,0 +1,212 @@
     2.4 +#!/bin/sh
     2.5 +# /etc/init.d/bootopts.sh - SliTaz boot options from the cmdline.
     2.6 +#
     2.7 +# Earlier boot options are in rcS, ex: config= and modprobe=
     2.8 +#
     2.9 +. /etc/init.d/rc.functions
    2.10 +
    2.11 +# Update fstab for swapon/swapoff 
    2.12 +add_swap_in_fstab()
    2.13 +{
    2.14 +	grep -q "$1	" /etc/fstab || cat >> /etc/fstab <<EOT
    2.15 +$1	swap	swap	default	0 0
    2.16 +EOT
    2.17 +}
    2.18 +
    2.19 +# Default user account without password (uid=1000). In live mode the option
    2.20 +# user=name can be used, but user must be added before home= to have home dir.
    2.21 +# This option is not handled by a loop and case like others and has no
    2.22 +# effect on an installed system.
    2.23 +if ! grep -q "100[0-9]:100[0-9]" /etc/passwd; then
    2.24 +	if grep -q "user=" /proc/cmdline; then
    2.25 +		USER=`cat /proc/cmdline | sed 's/.*user=\([^ ]*\).*/\1/'`
    2.26 +		# Avoid usage of an existing system user or root.
    2.27 +		if grep -q ^$USER /etc/passwd; then
    2.28 +			USER=tux
    2.29 +		fi
    2.30 +	else
    2.31 +		USER=tux
    2.32 +	fi
    2.33 +	echo -n "Configuring user and group: $USER..."
    2.34 +	echo "$USER:x:1000:1000:SliTaz User,,,:/home/$USER:/bin/sh" >> /etc/passwd
    2.35 +	echo "$USER::14035:0:99999:7:::" >> /etc/shadow
    2.36 +	echo "$USER:x:1000:" >> /etc/group
    2.37 +	echo "$USER:!::" >> /etc/gshadow
    2.38 +	status
    2.39 +	# Audio and cdrom group.
    2.40 +	addgroup $USER audio
    2.41 +	addgroup $USER cdrom
    2.42 +	# /home/$USER files from /etc/skel.
    2.43 +	if [ -d /etc/skel ]; then
    2.44 +		cp -a /etc/skel /home/$USER
    2.45 +		# Path for user desktop files.
    2.46 +		for i in /home/$USER/.local/share/applications/*.desktop
    2.47 +		do
    2.48 +			sed -i s/"user_name"/"$USER"/g $i
    2.49 +		done
    2.50 +	else
    2.51 +		mkdir -p /home/$USER
    2.52 +	fi
    2.53 +	# Set permissions.
    2.54 +	chown -R $USER.$USER /home/$USER
    2.55 +	# Slim default user.
    2.56 +	if [ -f /etc/slim.conf ]; then
    2.57 +		sed -i s/"default_user .*"/"default_user        $USER"/\
    2.58 +			/etc/slim.conf
    2.59 +	fi
    2.60 +fi
    2.61 +
    2.62 +# Parse /proc/cmdline for boot options.
    2.63 +echo "Parsing kernel cmdline for SliTaz live options... "
    2.64 +
    2.65 +for opt in `cat /proc/cmdline`
    2.66 +do
    2.67 +	case $opt in
    2.68 +		eject)
    2.69 +			# Eject cdrom.
    2.70 +			eject /dev/cdrom ;;
    2.71 +		autologin)
    2.72 +			# Autologin option to skip first graphic login prompt.
    2.73 +			echo "auto_login        yes" >> /etc/slim.conf ;;
    2.74 +		lang=*)
    2.75 +			# Check for a specified locale (lang=*).
    2.76 +			LANG=${opt#lang=}
    2.77 +			echo -n "Setting system locale to: $LANG... "
    2.78 +			echo "LANG=$LANG" > /etc/locale.conf
    2.79 +			echo "LC_ALL=$LANG" >> /etc/locale.conf
    2.80 +			[ ! -d /usr/lib/locale/$LANG ] && localedef \
    2.81 +				-i $LANG -c -f UTF-8 /usr/lib/locale/$LANG &
    2.82 +			status ;;
    2.83 +		kmap=*)
    2.84 +			# Check for a specified keymap (kmap=*).
    2.85 +			KEYMAP=${opt#kmap=}
    2.86 +			echo -n "Setting system keymap to: $KEYMAP..."
    2.87 +			echo "$KEYMAP" > /etc/keymap.conf
    2.88 +			status ;;
    2.89 +		home=*)
    2.90 +			# Check for a specified home partition (home=*) and check for 
    2.91 +			# user home dir. Note: home=usb is a shorter and easier way to
    2.92 +			# have home=/dev/sda1.
    2.93 +			DEVICE=${opt#home=}
    2.94 +			[ "$DEVICE" = "usb" ] && DEVICE=sda1
    2.95 +			echo "Home has been specified to $DEVICE..."
    2.96 +			USBDELAY=`cat /sys/module/usb_storage/parameters/delay_use`
    2.97 +			USBDELAY=$((1+$USBDELAY))
    2.98 +			echo "Sleeping $USBDELAY s to let the kernel detect the device... "
    2.99 +			sleep $USBDELAY
   2.100 +			USER=`cat /etc/passwd | grep 1000 | cut -d ":" -f 1`
   2.101 +			DEVID=$DEVICE
   2.102 +			if [ -x /sbin/blkid ]; then
   2.103 +				# Can be a label, uuid or devname. DEVID gives us first: /dev/name.
   2.104 +				DEVID=`/sbin/blkid | grep $DEVICE | cut -d: -f1`
   2.105 +				DEVID=${DEVID##*/}
   2.106 +			fi
   2.107 +			if [ -n "$DEVID" ] && grep -q "$DEVID" /proc/partitions ; then
   2.108 +				echo "Mounting /home on /dev/$DEVID... "
   2.109 +				[ -d /home/$USER ] && mv /home/$USER /tmp/$USER-files
   2.110 +				mount /dev/$DEVID /home -o uid=1000,gid=1000 2>/dev/null \
   2.111 +					|| mount /dev/$DEVID /home
   2.112 +				# Check if swap file must be generated in /home: swap=size (Mb).
   2.113 +				# This option is only used within home=device.
   2.114 +				if grep -q "swap=[1-9]*" /proc/cmdline; then
   2.115 +					SWAP_SIZE=`cat /proc/cmdline | sed 's/.*swap=\([^ ]*\).*/\1/'`
   2.116 +					# DD to gen a virtual disk.
   2.117 +					echo "Generating swap file: /home/swap ($SWAP_SIZE)..."
   2.118 +					dd if=/dev/zero of=/home/swap bs=1M count=$SWAP_SIZE
   2.119 +					# Make the Linux swap filesystem.
   2.120 +					mkswap /home/swap
   2.121 +					add_swap_in_fstab /home/swap
   2.122 +				fi
   2.123 +			else
   2.124 +				echo "Unable to find $DEVICE... "
   2.125 +			fi
   2.126 +			# Move all user dir if needed.
   2.127 +			if [ ! -d "/home/$USER" ] ; then
   2.128 +				mv /tmp/$USER-files /home/$USER
   2.129 +				chown -R $USER.$USER /home/$USER
   2.130 +			else
   2.131 +				rm -rf /tmp/$USER-files
   2.132 +			fi
   2.133 +			# Install all packages in /home/boot/packages. In live CD and 
   2.134 +			# USB mode the option home= mounts the device on /home, so we 
   2.135 +			# already have a boot directory with the Kernel and rootfs.
   2.136 +			if [ -d "/home/boot/packages" ]; then
   2.137 +				for pkg in /home/boot/packages/*.tazpkg
   2.138 +				do
   2.139 +					tazpkg install $pkg
   2.140 +				done
   2.141 +			fi ;;
   2.142 +		laptop)
   2.143 +			# Laptop option to load related Kernel modules.
   2.144 +			echo "Loading laptop modules: ac, battery, fan, yenta_socket..."
   2.145 +			for mod in ac battery fan yenta_socket
   2.146 +			do
   2.147 +				modprobe $mod
   2.148 +			done
   2.149 +			grep -qs batt /etc/lxpanel/default/panels/panel || 
   2.150 +			sed -i 's/= cpu/= batt\n}\n\nPlugin {\n    type = cpu/' \
   2.151 +				/etc/lxpanel/default/panels/panel 2> /dev/null
   2.152 +			# Enable Kernel Laptop mode.
   2.153 +			echo "5" > /proc/sys/vm/laptop_mode ;;
   2.154 +		mount)
   2.155 +			# Mount all ext3 partitions found (opt: mount).
   2.156 +			# Get the list of partitions.
   2.157 +			DEVICES_LIST=`fdisk -l | grep 83 | cut -d " " -f 1`
   2.158 +			# Mount filesystems rw.
   2.159 +			for device in $DEVICES_LIST
   2.160 +			do
   2.161 +				name=${device#/dev/}
   2.162 +				# Device can be already used by home=usb.
   2.163 +				if ! mount | grep ^$device >/dev/null; then
   2.164 +					echo "Mounting partition: $name on /mnt/$name"
   2.165 +					mkdir /mnt/$name
   2.166 +					mount $device /mnt/$name
   2.167 +				fi
   2.168 +			done ;;
   2.169 +		mount-packages)
   2.170 +			# Mount and install packages-XXX.iso (useful without Internet 
   2.171 +			# connection).
   2.172 +			PKGSIGN="LABEL=\"packages-$(cat /etc/slitaz-release)\" TYPE=\"iso9660\""
   2.173 +			PKGDEV=$(blkid | grep "$PKGSIGN" | cut -d: -f1)
   2.174 +			[ -z "$PKGDEV" -a -L /dev/cdrom ] && \
   2.175 +				PKGDEV=$(blkid /dev/cdrom | grep "$PKGSIGN" | cut -d: -f1)
   2.176 +			if [ -n "$PKGDEV" ]; then
   2.177 +				echo -n "Mounting packages archive from $PKGDEV..."
   2.178 +				mkdir /packages && mount -t iso9660 -o ro $PKGDEV /packages
   2.179 +				status
   2.180 +				/packages/install.sh
   2.181 +			fi ;;
   2.182 +		wm=*)
   2.183 +			# Check for a Window Manager (for a flavor, default WM can be changed
   2.184 +			# with boot options or with an addfile in /etc/X11/wm.default.
   2.185 +			WM=${opt#wm=}
   2.186 +			mkdir -p /etc/X11
   2.187 +			case $WM in
   2.188 +				jwm)
   2.189 +					echo "jwm" > /etc/X11/wm.default ;;
   2.190 +				ob|openbox|openbox-session)
   2.191 +					echo "openbox" > /etc/X11/wm.default ;;
   2.192 +				e17|enlightenment|enlightenment_start)
   2.193 +					echo "enlightenment" > /etc/X11/wm.default ;;
   2.194 +			esac ;;
   2.195 +		*)
   2.196 +			continue ;;
   2.197 +	esac
   2.198 +done
   2.199 +
   2.200 +# If no default WM fallback to Openbox (we never know).
   2.201 +if [ ! -f /etc/X11/wm.default ]; then
   2.202 +	echo "openbox" > /etc/X11/wm.default
   2.203 +fi
   2.204 +
   2.205 +# Activate an eventual swap file or partition.
   2.206 +if [ "`fdisk -l | grep swap`" ]; then
   2.207 +	for SWAP_DEV in `fdisk -l | grep swap | awk '{ print $1 }'`; do
   2.208 +		echo "Swap memory detected on: $SWAP_DEV"
   2.209 +		add_swap_in_fstab $SWAP_DEV
   2.210 +	done
   2.211 +fi
   2.212 +if grep -q swap /etc/fstab; then
   2.213 +	echo "Activating swap memory..."
   2.214 +	swapon -a
   2.215 +fi
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/core/rootfs/etc/init.d/network.sh	Sun Mar 21 16:13:45 2010 +0100
     3.3 @@ -0,0 +1,216 @@
     3.4 +#!/bin/sh
     3.5 +# /etc/init.d/network.sh - Network initialization boot script.
     3.6 +# Config file is: /etc/network.conf
     3.7 +#
     3.8 +. /etc/init.d/rc.functions
     3.9 +
    3.10 +if [ -z "$2" ]; then
    3.11 +	. /etc/network.conf 
    3.12 +else
    3.13 +	. $2 
    3.14 +fi
    3.15 +
    3.16 +
    3.17 +Boot() {
    3.18 +	# Set hostname.
    3.19 +	echo -n "Setting hostname..."
    3.20 +	/bin/hostname -F /etc/hostname
    3.21 +	status
    3.22 +
    3.23 +	# Configure loopback interface.
    3.24 +	echo -n "Configuring loopback..."
    3.25 +	/sbin/ifconfig lo 127.0.0.1 up
    3.26 +	/sbin/route add 127.0.0.1 lo
    3.27 +	status	
    3.28 +}
    3.29 +
    3.30 +
    3.31 +eth() {
    3.32 +#  Use ethernet
    3.33 +	   	ifconfig $INTERFACE up	
    3.34 +}
    3.35 +
    3.36 +wifi() {
    3.37 +	# For wifi. Users just have to enable it through yes and usually
    3.38 +	# essid any will work and the interface is autodetected.
    3.39 +	if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then
    3.40 +	    ifconfig $INTERFACE down
    3.41 +		
    3.42 +		# Confirm if $WIFI_INTERFACE is the wifi interface
    3.43 +		if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
    3.44 +			echo "$WIFI_INTERFACE is not a wifi interface, changing it."
    3.45 +			WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \
    3.46 +				while read dev; do iwconfig $dev 2>&1 | \
    3.47 +					grep -iq "essid" && { echo $dev ; break; }; \
    3.48 +				done)
    3.49 +			[ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf
    3.50 +		fi
    3.51 +		
    3.52 +		echo -n "Configuring $WIFI_INTERFACE..."
    3.53 +		ifconfig $WIFI_INTERFACE up
    3.54 +		if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then
    3.55 +			iwconfig $WIFI_INTERFACE txpower on
    3.56 +		fi
    3.57 +		status
    3.58 +		
    3.59 +		[ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext"
    3.60 +		
    3.61 +		
    3.62 +		IWCONFIG_ARGS=""
    3.63 +		[ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE"
    3.64 +		[ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL"
    3.65 +		
    3.66 +		if [ "$WIFI_KEY_TYPE" == "" ]; then
    3.67 +			iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS
    3.68 +		fi
    3.69 +		
    3.70 +		[ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in
    3.71 +			wep|WEP) 
    3.72 +			     IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY"
    3.73 +				 iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS
    3.74 +# wpa_supplicant can also deal with wep encryption but iwconfig is preferred
    3.75 +# Tip: Use unquoted strings for hexadecimal key in wep_key0
    3.76 +#			cat /etc/wpa_supplicant.conf > /tmp/wpa.conf 
    3.77 +#			cat >> /tmp/wpa.conf <<EOF
    3.78 +#ctrl_interface=/var/run/wpa_supplicant
    3.79 +#ctrl_interface_group=0
    3.80 +#ap_scan=1
    3.81 +#network={
    3.82 +#	ssid="$WIFI_ESSID"
    3.83 +#	scan_ssid=1
    3.84 +#	key_mgmt=NONE
    3.85 +#	wep_key0="$WIFI_KEY"
    3.86 +#	wep_tx_keyidx=0
    3.87 +#	priority=5
    3.88 +#}
    3.89 +#EOF
    3.90 +				    ;;
    3.91 +			wpa|WPA) cat /etc/wpa_supplicant.conf > /tmp/wpa.conf # load pre-configured multiple profiles 
    3.92 +			cat >> /tmp/wpa.conf <<EOF
    3.93 +ctrl_interface=/var/run/wpa_supplicant
    3.94 +ctrl_interface_group=0
    3.95 +ap_scan=1
    3.96 +network={
    3.97 +	ssid="$WIFI_ESSID"
    3.98 +	scan_ssid=1
    3.99 +	proto=WPA RSN
   3.100 +	key_mgmt=WPA-PSK
   3.101 +	psk="$WIFI_KEY"
   3.102 +	priority=5
   3.103 +}
   3.104 +EOF
   3.105 +				echo "Starting wpa_supplicant for WPA-PSK..."
   3.106 +				wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 
   3.107 +				;;
   3.108 +			any|ANY) cat /etc/wpa_supplicant.conf > /tmp/wpa.conf 
   3.109 +			cat >> /tmp/wpa.conf <<EOF
   3.110 +ctrl_interface=/var/run/wpa_supplicant
   3.111 +ctrl_interface_group=0
   3.112 +ap_scan=1
   3.113 +network={
   3.114 +	ssid="$WIFI_ESSID"
   3.115 +	scan_ssid=1
   3.116 +	key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
   3.117 +	group=CCMP TKIP WEP104 WEP40
   3.118 +	pairwise=CCMP TKIP
   3.119 +	psk="$WIFI_KEY"
   3.120 +	priority=5
   3.121 +}
   3.122 +EOF
   3.123 +				echo "Starting wpa_supplicant for any key type..."
   3.124 +				wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 
   3.125 +				;;
   3.126 +		esac
   3.127 +		
   3.128 +		rm -f /tmp/wpa.conf
   3.129 +		
   3.130 +		INTERFACE=$WIFI_INTERFACE			
   3.131 +	fi
   3.132 +
   3.133 +}
   3.134 +
   3.135 +wpa()
   3.136 +{
   3.137 +	DHCP_SCRIPT="/etc/init.d/wpa_action.sh"
   3.138 +	wpa_cli -a$DHCP_SCRIPT -B 
   3.139 +}
   3.140 +
   3.141 +dhcp() {
   3.142 +
   3.143 +# For a dynamic IP with DHCP. 
   3.144 +	if [ "$DHCP" = "yes" ]  ; then
   3.145 +		echo "Starting udhcpc client on: $INTERFACE..."		
   3.146 +		if [ -d /var/run/wpa_supplicant ]; then # wpa wireless && wpa_ctrl_open interface is up
   3.147 +		   wpa		  
   3.148 +		else  # fallback on udhcpc: wep, eth
   3.149 +		   /sbin/udhcpc -b -T 1 -A 12 -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid
   3.150 +		fi		
   3.151 +	fi
   3.152 +	
   3.153 +}
   3.154 +
   3.155 +static_ip() {
   3.156 +# For a static IP.
   3.157 +	if [ "$STATIC" = "yes" ] ; then
   3.158 +		echo "Configuring static IP on $INTERFACE: $IP..."
   3.159 +		/sbin/ifconfig $INTERFACE $IP netmask $NETMASK up
   3.160 +		/sbin/route add default gateway $GATEWAY
   3.161 +		# Dirty trick: wpa_supplicant waits for wpa_cli
   3.162 +		wpa_cli -B
   3.163 +		# Multi-DNS server in $DNS_SERVER.
   3.164 +		/bin/mv /etc/resolv.conf /tmp/resolv.conf.$$
   3.165 +		for NS in $DNS_SERVER
   3.166 +		do
   3.167 +			echo "nameserver $NS" >> /etc/resolv.conf
   3.168 +		done
   3.169 +	fi
   3.170 +}
   3.171 +
   3.172 +# Stopping everything
   3.173 +Stop() {
   3.174 +	echo "Stopping all interfaces"
   3.175 +	ifconfig $INTERFACE down
   3.176 +	ifconfig $WIFI_INTERFACE down
   3.177 +
   3.178 +	echo "Killing all daemons"
   3.179 +	killall udhcpc
   3.180 +	killall wpa_supplicant 2>/dev/null
   3.181 +	
   3.182 +	if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then
   3.183 +		echo "Shutting down wifi card"
   3.184 +		iwconfig $WIFI_INTERFACE txpower off
   3.185 +	fi
   3.186 +}
   3.187 +
   3.188 +Start() {
   3.189 +   eth
   3.190 +   wifi
   3.191 +   dhcp 
   3.192 +   static_ip	
   3.193 +}
   3.194 +
   3.195 +
   3.196 +# looking for arguments:
   3.197 +if [ -z "$1" ]; then
   3.198 +	Boot
   3.199 +	Start
   3.200 +else
   3.201 +	case $1 in
   3.202 +		start)
   3.203 +			Start ;;
   3.204 +		stop)
   3.205 +			Stop ;;
   3.206 +		restart)
   3.207 +			Stop
   3.208 +			Start ;;
   3.209 +		*)
   3.210 +			echo ""
   3.211 +			echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]"
   3.212 +			echo ""
   3.213 +			echo -e "	Default configuration file is \033[1m/etc/network.conf\033[0m"
   3.214 +			echo -e "	You can specify another configuration file in the second argument:"
   3.215 +			echo -e "	\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf"
   3.216 +			echo ""
   3.217 +
   3.218 +	esac
   3.219 +fi
     4.1 --- a/core/rootfs/etc/skel/.config/pcmanfm/main	Mon Mar 08 18:44:20 2010 +0100
     4.2 +++ b/core/rootfs/etc/skel/.config/pcmanfm/main	Sun Mar 21 16:13:45 2010 +0100
     4.3 @@ -12,4 +12,4 @@
     4.4  show_desktop=1
     4.5  show_wallpaper=1
     4.6  wallpaper=/usr/share/images/slitaz-background.jpg
     4.7 -show_wm_menu=0
     4.8 +show_wm_menu=1
     5.1 --- a/core/rootfs/etc/skel/Desktop/slitaz-doc.desktop	Mon Mar 08 18:44:20 2010 +0100
     5.2 +++ b/core/rootfs/etc/skel/Desktop/slitaz-doc.desktop	Sun Mar 21 16:13:45 2010 +0100
     5.3 @@ -1,5 +1,5 @@
     5.4  [Desktop Entry]
     5.5  Name=Documentation
     5.6 -Exec=browser file:///usr/share/doc/slitaz/index.html
     5.7 +Exec=GtkLauncher file:///usr/share/doc/slitaz/index.html
     5.8  Icon=slitaz-doc.png
     5.9  Type=Application