diff --git a/UbuntuCustomizationKit/README b/UbuntuCustomizationKit/README
new file mode 100644
index 0000000000000000000000000000000000000000..bc82fc42bf48c73eb755a05960f7f3fa397cc0f9
--- /dev/null
+++ b/UbuntuCustomizationKit/README
@@ -0,0 +1,22 @@
+Zutaten:
+Ubuntu Precise 12.04 Daily Image (getestet mit dem vom 15.03.2013)
+UCK-SVN (getestet mit Revision 474): svn checkout svn://svn.code.sf.net/p/uck/code/trunk uck-code/uck
+Plattenplatz
+
+Wie benutzt man das neue UCK custom script:
+0. UCK aus dem System deinstallieren !
+1. Im UCK Ordner mit patch -p1 <path/to/uck-increase-squashfs-compression.patch> die Kompression
+   des SquashFS Images erhöhen (nicht nötig, wenn Dateien dedupliziert werden)
+1a Im UCK-Ordner mit patch -p1 <path/to/uck-no-remove-rootfs.patch patchen, damit die temp-dateien nach dem Erstellen des .iso erhalten bleiben.
+2. Ein ggf. alten customize-scripts Ordner in ~/tmp oder /path/to/temp/ löschen
+3. In customize-lip/iso_description ggf. das Semester und die Bit-Zahl 
+   anpassen.
+4. uck-remaster <path_to_iso> <path_to_customize-lip> <path-to-temp> ausfüren
+5. Warten bis das Script fertig ist
+6. Wiederhole 1-5 für die "andere" Bitzahl (32/64 bit)
+7. Dedupliziere Dateien gemaess README.ImageDeduplizieren
+7a Before squashfs'ing lipcommon.squashfs, ensure remaster-both/remaster-root/usr/share/applications/ubiquity-gtkui-no-bootloader.desktop exists.
+8. Installer-USB-STick zusammenstellen
+8a Kernel, Squashfs, Initrd nach Stick/casper kopieren
+8b Grub+EFI einrichten
+8c Stick/.disk/casper-generic-uuid* anpassen; Quelle ist path-to-remaster/remaster-initrd/conf/uuid.conf
diff --git a/UbuntuCustomizationKit/README.ImageDeduplizieren b/UbuntuCustomizationKit/README.ImageDeduplizieren
new file mode 100644
index 0000000000000000000000000000000000000000..ae310fa743a168673cab66b8461eabed74026828
--- /dev/null
+++ b/UbuntuCustomizationKit/README.ImageDeduplizieren
@@ -0,0 +1,14 @@
+#!/bin/bash
+#Es gibt remaster-root von 32 und 64 Bit in ~lip/custom32, ~lip/custom64
+mkdir -p ~lip/both/remaster-root
+cd ~lip/custom32/remaster-root; find . -type f -print0 | sort -z | xargs -0 md5sum > ~lip/both/32.md5
+cd ~lip/custom64/remaster-root; find . -type f -print0 | sort -z | xargs -0 md5sum > ~lip/both/64.md5
+diff --old-line-format="" --new-line-format="" --unchanged-line-format="%L" ~lip/both/*.md5 > ~lip/both/both
+cut -d" " -f3- ~lip/both/both | tr \\n \\0 | (cd ~lip/custom64/remaster-root; xargs -0 cp --parents -pt ~lip/both/remaster-root/ )
+cut -d" " -f3- ~lip/both/both | tr \\n \\0 | (cd ~lip/custom32/remaster-root; xargs -0 rm )
+cut -d" " -f3- ~lip/both/both | tr \\n \\0 | (cd ~lip/custom64/remaster-root; xargs -0 rm )
+
+#Squashfs erzeugen:
+#mksquashfs <source>/remaster-root lip<target>.squashfs -comp xz
+#die squashfs in das /casper directory auf dem stick legen
+
diff --git a/UbuntuCustomizationKit/customize-lip/clean_desktop_manifest b/UbuntuCustomizationKit/customize-lip/clean_desktop_manifest
new file mode 100644
index 0000000000000000000000000000000000000000..7cfab5b05d620d8c6f386273d5d507975cef115f
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/clean_desktop_manifest
@@ -0,0 +1 @@
+yes
diff --git a/UbuntuCustomizationKit/customize-lip/customize b/UbuntuCustomizationKit/customize-lip/customize
new file mode 100755
index 0000000000000000000000000000000000000000..235ef6e7a773c81e299cf5a9d742d4e3bf650b4a
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/customize
@@ -0,0 +1,88 @@
+#!/bin/bash
+
+#is this true for all uck versions??
+SCRIPT_DIR=`dirname "$0"`
+
+#source common functions (e.g. patch_all)
+if [ -e "$SCRIPT_DIR/customize_common" ]; then
+	source "$SCRIPT_DIR/customize_common"
+fi
+
+function prepare_install()
+{
+	#if [ -e "$SCRIPT_DIR/lip_sources.list" ]; then
+	#	cp -v "$SCRIPT_DIR/lip_sources.list" "/etc/apt/sources.list"
+	#fi
+	
+	#moved to liprepoctl.sh 
+	#echo "# offline repository of the linux install party
+#deb [ trusted=yes ] file:/cdrom/archives precise lip" > /etc/apt/sources.list.d/lipoffline.list
+
+	#uncomment if newest texlive is not part of your distribution
+	#add-apt-repository -y ppa:texlive-backports/ppa
+
+	apt-get update
+}
+
+function install_packages()
+{
+	apt-get upgrade --assume-yes --force-yes
+	apt-get install aptitude -y
+
+	#aptitude full-upgrade -y # make sure we have the newest versions
+	# Some daily images do not have a kernel ?!?
+	
+	#uncomment this if you remaster a daily build (fix kernel version!)
+	#aptitude reinstall linux-image-generic-lts-raring -y
+	#apt-cache depends linux-image-generic-lts-raring | tail -n+2 | awk '{print $NF}' | xargs aptitude reinstall -y 
+
+	aptitude install firefox thunderbird kfind kompare xloadimage gpsd-clients kde-config-gtk-style -y
+	aptitude install automake cmake aspell-de build-essential ffmpeg htop hunspell  lvm2 mencoder screen tofrodos efibootmgr gdisk linux-headers vlc moreutils network-manager-vpnc vim -y # install general packages
+	aptitude install --without-recommends mdadm -y # install mdadm without mailserver
+	aptitude install chktex cm-super context dvidvi dvipng feynmf fragmaster info lacheck latex-beamer latex-cjk-all latexdiff latexmk latex-sanskrit latex-xcolor lcdf-typetools lmodern pgf prosper psutils purifyeps t1utils tex4ht tex-gyre texinfo texlive-base texlive-bibtex-extra texlive-binaries texlive-extra-utils texlive-fonts-extra texlive-fonts-recommended texlive-font-utils texlive-formats-extra texlive-games texlive-generic-extra texlive-generic-recommended texlive-humanities texlive-lang-english texlive-lang-german texlive-latex-base texlive-latex-extra texlive-latex-recommended texlive-luatex texlive-math-extra texlive-metapost texlive-music texlive-omega texlive-pictures texlive-plain-extra texlive-pstricks texlive-publishers texlive-science texlive-xetex tipa xindy -y
+	aptitude install hunspell-de-de language-pack-de language-pack-support-de wngerman wogerman wswiss poppler-data libreoffice-l10n-de libreoffice-help-de hyphen-de mythes-de thunderbird-locale-de firefox-locale-de -y # install german language support
+	
+	MISSING_LANG_PKG="$(check-language-support -l de_DE)"
+	MISSING_LANG_PKG="$(check-language-support -l en_US) $MISSING_LANG_PKG" # check for missing packages for de_DE and en_US
+	
+	if [ -n "$MISSING_LANG_PKG" ]; then
+		aptitude install $MISSING_LANG_PKG -y
+	fi
+	
+	EXTRA_LANG_PKG="$(dpkg-query --show | cut -f1 | grep -E '^(language-pack|language-support|firefox-locale|thunderbird-locale|libreoffice-help|libreoffice-l10n)' | grep -Ev "[-](de|en)\>")" # remove extra language packages
+
+	if [ -n "$EXTRA_LANG_PKG" ]; then
+		aptitude purge $EXTRA_LANG_PKG -y
+	fi
+	
+	install_debs "$SCRIPT_DIR/debs/"
+}
+
+function finalize()
+{
+	echo -n "Europe/Berlin" > /etc/timezone
+	
+	rm -rf /var/crash/*
+}
+
+function install_kde_defaults()
+{
+	mkdir -p /etc/skel/.kde/share/config/
+	cp "$SCRIPT_DIR/kde_config/"* /etc/skel/.kde/share/config/
+}
+
+prepare_install
+install_packages
+
+install_kde_defaults
+#moved to initrd
+#cp "$SCRIPT_DIR/no-bootloader-icon/ubiquity-gtkui-no-bootloader.desktop" /usr/share/applications/
+
+#patch rootfs
+patch_all "$SCRIPT_DIR/rootfs-patches/" "/"
+
+#i.e. required for applying default-wallpaper patch
+#echo "compiling glib2 schemas..."
+#glib-compile-schemas /usr/share/glib-2.0/schemas
+
+finalize
diff --git a/UbuntuCustomizationKit/customize-lip/customize_common b/UbuntuCustomizationKit/customize-lip/customize_common
new file mode 100755
index 0000000000000000000000000000000000000000..9e7bd586d0a60294dbf929a957cbbf2478117120
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/customize_common
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+function patch_all()
+{
+	PATCH_DIR="$1"
+	TARGET_DIR="$2"
+
+	if [ ! -d "$PATCH_DIR" ]; then
+		echo "Nothing to patch here!"
+		return 0
+	fi
+	
+	if [ -z "$TARGET_DIR" ]; then
+		echo "No target directory given, assuming /"
+		TARGET_DIR="/"
+	fi
+
+        echo "Patching $TARGET_DIR ..."
+        for p in "$PATCH_DIR/"*
+        do
+                cat "$p" | patch -d "$TARGET_DIR" -p1
+        done
+        echo "done."
+}
+
+function install_debs()
+{
+        DEB_DIR="$1"
+
+        if [ ! -d "$DEB_DIR" ]; then
+                echo "Nothing to install here!"
+                return 0
+        fi
+
+        for p in "$DEB_DIR/"*
+        do
+		echo "installing $p..."
+                dpkg -i "$p"
+		echo "done."
+        done
+}
diff --git a/UbuntuCustomizationKit/customize-lip/customize_initrd b/UbuntuCustomizationKit/customize-lip/customize_initrd
new file mode 100755
index 0000000000000000000000000000000000000000..aa9d92e7a41f38890c5d54c48a921ba794d5c897
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/customize_initrd
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+###################################################################################
+# UCK - Ubuntu Customization Kit                                                  #
+# Copyright (C) 2006-2010 UCK Team                                                #
+#                                                                                 #
+# UCK is free software: you can redistribute it and/or modify                     #
+# it under the terms of the GNU General Public License as published by            #
+# the Free Software Foundation, either version 3 of the License, or               #
+# (at your option) any later version.                                             #
+#                                                                                 #
+# UCK is distributed in the hope that it will be useful,                          #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of                  #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                   #
+# GNU General Public License for more details.                                    #
+#                                                                                 #
+# You should have received a copy of the GNU General Public License               #
+# along with UCK.  If not, see <http://www.gnu.org/licenses/>.                    #
+###################################################################################
+
+REMASTER_HOME=$1
+REMASTER_DIR="$REMASTER_HOME/remaster-root"
+INITRD_REMASTER_DIR="$REMASTER_HOME/remaster-initrd"
+
+echo "Using REMASTER_DIR=$REMASTER_DIR, INITRD_REMASTER_DIR=$INITRD_REMASTER_DIR"
+
+IRD="$INITRD_REMASTER_DIR"
+SCRIPT_DIR="`dirname $0`"
+
+if [ -e "$SCRIPT_DIR/customize_common" ]; then
+        source "$SCRIPT_DIR/customize_common"
+fi
+
+function install_nmtelekinese()
+{
+	mkdir -p "$IRD/lip/nm"
+	cp "$SCRIPT_DIR/nmtelekinese/nmtelekinese.desktop" "$IRD/lip/nm"
+	cp "$SCRIPT_DIR/nmtelekinese/nmtelekinese.py" "$IRD/lip/nm"
+	cp "$SCRIPT_DIR/nmtelekinese/26mopsmops" "$IRD/scripts/casper-bottom/"
+	chmod +x "$IRD/scripts/casper-bottom/26mopsmops"
+}
+
+function install_libnsa()
+{
+        mkdir -p "$IRD/lip/libnsa"
+        cp "$SCRIPT_DIR/libnsa/libnsa.desktop" "$IRD/lip/libnsa"
+        cp "$SCRIPT_DIR/libnsa/libnsa.sh" "$IRD/lip/libnsa"
+        cp "$SCRIPT_DIR/libnsa/26libnsa" "$IRD/scripts/casper-bottom/"
+        chmod +x "$IRD/lip/libnsa/libnsa.sh"
+        chmod +x "$IRD/scripts/casper-bottom/26libnsa"
+}
+
+function add_no_bootloader_icon()
+{
+	mkdir -p "$IRD/lip/no-bootloader-icon"
+	cp "$SCRIPT_DIR/no-bootloader-icon/ubiquity-kdeui.desktop" "$IRD/lip/no-bootloader-icon/"
+#	cp "$SCRIPT_DIR/no-bootloader-icon/ubiquity-kdeui-no-bootloader.desktop" "$IRD/lip/no-bootloader-icon/"
+
+	cp "$SCRIPT_DIR/no-bootloader-icon/25adduser" "$IRD/scripts/casper-bottom/"
+	chmod +x "$IRD/scripts/casper-bottom/25adduser"
+}
+
+mkdir -p "$IRD/lip"
+install_nmtelekinese
+#install_libnsa
+add_no_bootloader_icon
+
+#copy custom lip hook
+cp "$SCRIPT_DIR/initrd_hook/24liphook" "$IRD/scripts/casper-bottom/"
+chmod +x "$IRD/scripts/casper-bottom/24liphook"
+cp "$SCRIPT_DIR/initrd_hook/ORDER" "$IRD/scripts/casper-bottom/"
+
+patch_all "$SCRIPT_DIR/initrd-patches/" "$IRD"
diff --git a/UbuntuCustomizationKit/customize-lip/customize_iso b/UbuntuCustomizationKit/customize-lip/customize_iso
new file mode 100755
index 0000000000000000000000000000000000000000..4565c03a90c58a4a04dd0fc1422a6108206ef826
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/customize_iso
@@ -0,0 +1,37 @@
+#!/bin/bash
+SCRIPT_DIR=`dirname "$0"`
+REMASTER_HOME=${1:-~/tmp}
+ISO_REMASTER_DIR="$REMASTER_HOME/remaster-iso"
+REMASTER_DIR="$REMASTER_HOME/remaster-root"
+ISO_DESCRIPTION_PREFIX_FILE="$SCRIPT_DIR/iso_description_prefix"
+
+if [ -e "$SCRIPT_DIR/customize_common" ]; then
+        source "$SCRIPT_DIR/customize_common"
+fi
+
+function create_md5sums()
+{
+	pushd "$REMASTER_DIR"
+	find . -type f -print0 | sort -z | xargs -0 md5sum > "$REMASTER_HOME/rootfs.md5"
+	popd
+}
+
+function write_iso_description()
+{
+	ISO_ARCH="32Bit"
+	if [ "$(uname -m)" == "x86_64" ]; then 
+		ISO_ARCH="64Bit"
+	fi
+
+	ISO_PREFIX="LIP ISO"
+	if [ -e "$ISO_DESCRIPTION_PREFIX_FILE" ]; then
+		ISO_PREFIX="$(cat $ISO_DESCRIPTION_PREFIX_FILE)"
+	fi
+
+	echo "$ISO_PREFIX $ISO_ARCH" > "$SCRIPT_DIR/iso_description"
+}
+
+#create_md5sums
+
+write_iso_description
+patch_all "$SCRIPT_DIR/iso-patches/" "$ISO_REMASTER_DIR/"
diff --git a/UbuntuCustomizationKit/customize-lip/hybrid b/UbuntuCustomizationKit/customize-lip/hybrid
new file mode 100644
index 0000000000000000000000000000000000000000..7cfab5b05d620d8c6f386273d5d507975cef115f
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/hybrid
@@ -0,0 +1 @@
+yes
diff --git a/UbuntuCustomizationKit/customize-lip/initrd-patches/unionstackmount1310.patch b/UbuntuCustomizationKit/customize-lip/initrd-patches/unionstackmount1310.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b9a4cc8784d6a417bfa79dcf95c7096c1d547057
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/initrd-patches/unionstackmount1310.patch
@@ -0,0 +1,90 @@
+--- a/scripts/casper	2014-03-13 20:35:34.293226677 +0100
++++ b/scripts/casper	2014-03-13 20:28:39.978460056 +0100
+@@ -43,6 +43,8 @@
+                 export PERSISTENT_PATH="${x#persistent-path=}" ;;
+             union=*)
+                 export UNIONFS="${x#union=}";;
++            unionstack=*)
++                export UNIONSTACK="${x#unionstack=}";;
+             ip=*)
+                 STATICIP=${x#ip=}
+                 if [ "${STATICIP}" = "" ]; then
+@@ -426,6 +428,13 @@
+                 continue
+             fi
+ 
++            if [ -n "$UNIONSTACK" ]; then
++                if [ "$(echo $UNIONSTACK | sed "s/$imagename//";)" == "$UNIONSTACK" ]; then
++                    log_warning_msg "Filesystem image $imagename not in UNIONSTACK. Ignored."
++                    continue
++                fi
++            fi
++
+             if [ -d "${image}" ]; then
+                 # it is a plain directory: do nothing
+                 rofsstring="${image}=${roopt}:${rofsstring}"
+@@ -461,6 +470,10 @@
+     fi
+ 
+     mount -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} /cow || panic "Can not mount $cowdevice on /cow"
++    
++    overlay_mount_dir=/overlay
++    mkdir -p "$overlay_mount_dir"
++    
+ 
+     case ${UNIONFS} in
+         unionfs-fuse)
+@@ -475,7 +488,9 @@
+             # Mount the layers pairwise from the bottom onto rootmnt,
+             # for the second and later layers rootmnt forms the lower layer.
+             mounts=""
+-            for mount in /cow $rofslist
++
++	    #overlay all readonly file systems first
++            for mount in $rofslist
+             do
+                 mounts="$mount $mounts"
+             done
+@@ -487,9 +502,13 @@
+                     continue
+                 fi
+                 mount -t overlayfs -o "upperdir=$mount,lowerdir=$lower" \
+-                    "$mount" "$rootmnt"
+-                lower="$rootmnt"
++                    "$mount" "$overlay_mount_dir"
++                lower="$overlay_mount_dir"
+             done
++            
++            mount -t overlayfs -o "upperdir=/cow,lowerdir=$lower" \
++                    "$mount" "$rootmnt"
++
+             ;;
+     esac
+ 
+@@ -530,15 +549,17 @@
+     fi
+ 
+     # move the first mount; no head in busybox-initramfs
+-    for d in $(mount -t squashfs | cut -d\  -f 3); do
+-        mkdir -p "${rootmnt}/rofs"
+-        if [ "${UNIONFS}" = unionfs-fuse ]; then
+-            mount -o bind "${d}" "${rootmnt}/rofs"
+-        else
+-            mount -o move "${d}" "${rootmnt}/rofs"
+-        fi
+-        break
+-    done
++    #for d in $(mount -t squashfs | cut -d\  -f 3); do
++    #    mkdir -p "${rootmnt}/rofs"
++    #    if [ "${UNIONFS}" = unionfs-fuse ]; then
++    #        mount -o bind "${d}" "${rootmnt}/rofs"
++    #    else
++    #        mount -o move "${d}" "${rootmnt}/rofs"
++    #    fi
++    #    break
++    #done
++    mkdir -p "${rootmnt}/rofs"
++    mount -o move "$lower" "${rootmnt}/rofs"
+ }
+ 
+ check_dev ()
diff --git a/UbuntuCustomizationKit/customize-lip/initrd_hook/24liphook b/UbuntuCustomizationKit/customize-lip/initrd_hook/24liphook
new file mode 100755
index 0000000000000000000000000000000000000000..fa571c4fe255b060ad8312b8cd3aac812753adc0
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/initrd_hook/24liphook
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+PREREQ=""
+DESCRIPTION="lip specific stuff"
+
+prereqs()
+{
+       echo "$PREREQ"
+}
+
+case $1 in
+# get pre-requisites
+prereqs)
+       prereqs
+       exit 0
+       ;;
+esac
+
+. /scripts/casper-functions
+load_confmodule
+
+log_begin_msg "$DESCRIPTION"
+
+#copy desktop file for the no-bootloader-icon (required in 25adduser)
+cp /lip/no-bootloader-icon/ubiquity-kdeui.desktop /root/usr/share/applications/kde4/
+cp /lip/no-bootloader-icon/ubiquity-kdeui-no-bootloader.desktop /root/usr/share/applications/kde4/
+
+#TODO: install ubiquity here?
+
+log_end_msg
+
diff --git a/UbuntuCustomizationKit/customize-lip/initrd_hook/ORDER b/UbuntuCustomizationKit/customize-lip/initrd_hook/ORDER
new file mode 100644
index 0000000000000000000000000000000000000000..b6f42ba36f1ea420be1c816448ee2352756da130
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/initrd_hook/ORDER
@@ -0,0 +1,80 @@
+/scripts/casper-bottom/01integrity_check
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/05mountpoints
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/05mountpoints_lupin
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/07remove_oem_config
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/10custom_installation
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/10ntfs_3g
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/12fstab
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/13swap
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/14locales
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/15autologin
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/16gdmnopasswd
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/18hostname
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/19keyboard
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/20xconfig
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/22desktop_settings
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/22sslcert
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/23etc_modules
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/23networking
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/24liphook
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/24preeseed
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/25adduser
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/25configure_init
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/26serialtty
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/26libnsa
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/26mopsmops
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/30accessibility
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/31disable_update_notifier
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/32disable_hibernation
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/33enable_apport_crashes
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/34disable_kde_services
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/35fix_language_selector
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/36disable_trackerd
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/40install_driver_updates
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/41apt_cdrom
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/43disable_updateinitramfs
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/44pk_allow_ubuntu
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/45jackd2
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/48kubuntu_disable_restart_notifications
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/49kubuntu_mobile_session
+[ -e /conf/param.conf ] && . /conf/param.conf
+/scripts/casper-bottom/50ubiquity-bluetooth-agent
+[ -e /conf/param.conf ] && . /conf/param.conf
diff --git a/UbuntuCustomizationKit/customize-lip/iso-patches/ubiquity-keep-installed.patch b/UbuntuCustomizationKit/customize-lip/iso-patches/ubiquity-keep-installed.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e5b4cad65bcf1d260e612ade6c1843046341ee5e
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/iso-patches/ubiquity-keep-installed.patch
@@ -0,0 +1,8 @@
+--- a/preseed/kubuntu.seed	2013-10-16 22:13:07.000000000 +0200
++++ b/preseed/kubuntu.seed	2014-03-13 20:02:16.991868107 +0100
+@@ -10,4 +10,4 @@
+ # application packages pulled in by language packs. Given that we clearly
+ # have the space to include them on the DVD, they're useful and we might as
+ # well keep them installed.
+-ubiquity	ubiquity/keep-installed	string icedtea6-plugin openoffice.org
++ubiquity	ubiquity/keep-installed	string icedtea6-plugin openoffice.org gparted kpartx kpartx-boot libgtkmm apt-clone cryptsetup dpkg-repack gir1.2-json-1.0 gir1.2-xkl-1.0 gir1.2-timezonemap-1.0 keyutils libnss3-1d python-pyicu realpath
diff --git a/UbuntuCustomizationKit/customize-lip/iso_description_prefix b/UbuntuCustomizationKit/customize-lip/iso_description_prefix
new file mode 100644
index 0000000000000000000000000000000000000000..7ed434399e28097993eafa3a3d93f5bd5ad0f8a7
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/iso_description_prefix
@@ -0,0 +1 @@
+LIP SS14
diff --git a/UbuntuCustomizationKit/customize-lip/kde_config/emaildefaults b/UbuntuCustomizationKit/customize-lip/kde_config/emaildefaults
new file mode 100644
index 0000000000000000000000000000000000000000..87e4095f19e722f2025c1dc08670f7ff29ead1c6
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/kde_config/emaildefaults
@@ -0,0 +1,7 @@
+[Defaults]
+Profile=Default
+
+[PROFILE_Default]
+EmailClient[$e]=thunderbird
+ServerType=
+TerminalClient=false
diff --git a/UbuntuCustomizationKit/customize-lip/kde_config/kdeglobals b/UbuntuCustomizationKit/customize-lip/kde_config/kdeglobals
new file mode 100644
index 0000000000000000000000000000000000000000..4240835a3d582893f4d0fcb84b7bbe8b52c52041
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/kde_config/kdeglobals
@@ -0,0 +1,27 @@
+[$Version]
+update_info=kded.upd:kde3.0
+
+[General]
+BrowserApplication[$e]=firefox.desktop
+
+[KDE]
+SingleClick=false
+
+[KFileDialog Settings]
+Automatically select filename extension=true
+Breadcrumb Navigation=true
+Decoration position=0
+LocationCombo Completionmode=5
+PathCombo Completionmode=5
+Show Bookmarks=false
+Show Full Path=false
+Show Speedbar=true
+Show hidden files=false
+Sort by=Name
+Sort directories first=true
+Sort reversed=false
+Speedbar Width=84
+View Style=Simple
+
+[PreviewSettings]
+MaximumRemoteSize=0
diff --git a/UbuntuCustomizationKit/customize-lip/kde_config/kglobalshortcutsrc b/UbuntuCustomizationKit/customize-lip/kde_config/kglobalshortcutsrc
new file mode 100644
index 0000000000000000000000000000000000000000..41b822ebb821a822257a9a41a419399fc7f5347a
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/kde_config/kglobalshortcutsrc
@@ -0,0 +1,239 @@
+[$Version]
+update_info=konsole_remove_background_mode.upd:2.11.0-remove-background-mode,kscreenlocker_locksession-shortcut.upd:4.9-locksession-shortcut,ksmserver_shortcuts.upd:kde4.10,ksmserver_shortcuts.upd:kde4.10-remove-group-kscreenlocker,plasma-to-plasmadesktop-shortcuts.upd:4.3plasma-desktop-shortcuts
+
+[KDE Keyboard Layout Switcher]
+Switch to Next Keyboard Layout=Ctrl+Alt+K,Ctrl+Alt+K,Switch to Next Keyboard Layout
+_k_friendly_name=KDE Keyboard Layout Switcher
+
+[kded]
+Decrease Keyboard Brightness=Keyboard Brightness Down,Keyboard Brightness Down,Decrease Keyboard Brightness
+Decrease Screen Brightness=Monitor Brightness Down,Monitor Brightness Down,Decrease Screen Brightness
+Hibernate=Hibernate,Hibernate,Hibernate
+Increase Keyboard Brightness=Keyboard Brightness Up,Keyboard Brightness Up,Increase Keyboard Brightness
+Increase Screen Brightness=Monitor Brightness Up,Monitor Brightness Up,Increase Screen Brightness
+PowerOff=Power Off,Power Off,
+Sleep=Sleep,Sleep,Sleep
+Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,Toggle Keyboard Backlight
+_k_friendly_name=KDE Daemon
+display=Display,Display,Switch Display
+
+[khotkeys]
+_k_friendly_name=khotkeys
+{1a12db4a-bb9f-469c-bb05-e59c5a8a374d}=none,none,New Action
+{4f187baa-bed0-46dc-abba-fc8e99c221e8}=Meta+Return,none,Start Konsole
+{70fd93c3-f51c-4fd7-b9dd-bdbd1e9d9daf}=none,none,New Action
+{72302d03-d536-4d08-a903-c80d7e9f7c23}=Print,none,PrintScreen
+{86cbd6be-d8bb-4dce-b3ad-2f25d77bec6a}=none,none,New Action
+{99d9d36b-54f0-40c3-860a-d7bf5966a3f2}=Ctrl+Alt+T,none,Start Konsole
+{9b56b2c0-fa2c-4218-a783-d392a7dbd780}=none,none,New Action
+{d03619b6-9b3c-48cc-9d9c-a2aadb485550}=Search,none,Search
+
+[klipper]
+_k_friendly_name=Klipper
+clipboard_action=Ctrl+Alt+X,Ctrl+Alt+X,Enable Clipboard Actions
+cycleNextAction=none,none,Next History Item
+cyclePrevAction=none,none,Previous History Item
+edit_clipboard=none,none,Edit Contents...
+repeat_action=Ctrl+Alt+R,Ctrl+Alt+R,Manually Invoke Action on Current Clipboard
+show-barcode=none,none,Show Barcode...
+show-on-mouse-pos=none,none,Open Klipper at Mouse Position
+
+[kmix]
+_k_friendly_name=KMix
+decrease_volume=Volume Down,Volume Down,Decrease Volume
+increase_volume=Volume Up,Volume Up,Increase Volume
+mute=Volume Mute,Volume Mute,Mute
+
+[krunner]
+PowerDevil=none,none,Run Command (runner "PowerDevil" only)
+Run Command=Alt+F2,Alt+F2,Run Command
+Run Command on clipboard contents=Alt+Shift+F2,Alt+Shift+F2,Run Command on clipboard contents
+Show System Activity=Ctrl+Esc,Ctrl+Esc,Show System Activity
+Switch User=Ctrl+Alt+Ins,Ctrl+Alt+Ins,Switch User
+_k_friendly_name=Run Command Interface
+bookmarks=none,none,Run Command (runner "Bookmarks" only)
+desktopsessions=none,none,Run Command (runner "Desktop Sessions" only)
+locations=none,none,Run Command (runner "Locations" only)
+nepomuksearch=none,none,Run Command (runner "Nepomuk Desktop Search" only)
+org.kde.activities=none,none,Run Command (runner "Activities" only)
+org.kde.windowedwidgets=none,none,Run Command (runner "Windowed widgets" only)
+recentdocuments=none,none,Run Command (runner "Recent Documents" only)
+services=none,none,Run Command (runner "Applications" only)
+shell=none,none,Run Command (runner "Command Line" only)
+solid=none,none,Run Command (runner "Devices" only)
+webshortcuts=none,none,Run Command (runner "Web Shortcuts" only)
+windows=none,none,Run Command (runner "Windows" only)
+
+[ksmserver]
+Halt Without Confirmation=Ctrl+Alt+Shift+PgDown,Ctrl+Alt+Shift+PgDown,Halt Without Confirmation
+Lock Session=Screensaver,Ctrl+Alt+L,Lock Session
+Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,Log Out
+Log Out Without Confirmation=Ctrl+Alt+Shift+Del,Ctrl+Alt+Shift+Del,Log Out Without Confirmation
+Reboot Without Confirmation=Ctrl+Alt+Shift+PgUp,Ctrl+Alt+Shift+PgUp,Reboot Without Confirmation
+_k_friendly_name=The KDE Session Manager
+
+[kwin]
+Activate Window Demanding Attention=Ctrl+Alt+A,Ctrl+Alt+A,Activate Window Demanding Attention
+Decrease Opacity=none,none,Decrease Opacity of Active Window by 5 %
+Expose=Ctrl+F9,Ctrl+F9,Toggle Present Windows (Current desktop)
+ExposeAll=Ctrl+F10,Ctrl+F10,Toggle Present Windows (All desktops)
+ExposeClass=Ctrl+F7,Ctrl+F7,Toggle Present Windows (Window class)
+Increase Opacity=none,none,Increase Opacity of Active Window by 5 %
+Invert Screen Colors=none,none,Invert Screen Colors
+Kill Window=Ctrl+Alt+Esc,Ctrl+Alt+Esc,Kill Window
+MoveMouseToCenter=Meta+F6,Meta+F6,Move Mouse to Center
+MoveMouseToFocus=Meta+F5,Meta+F5,Move Mouse to Focus
+MoveZoomDown=Meta+Down,Meta+Down,Move Zoomed Area Downwards
+MoveZoomLeft=Meta+Left,Meta+Left,Move Zoomed Area to Left
+MoveZoomRight=Meta+Right,Meta+Right,Move Zoomed Area to Right
+MoveZoomUp=Meta+Up,Meta+Up,Move Zoomed Area Upwards
+Remove Window From Group=none,none,Remove Window From Group
+Setup Window Shortcut=none,none,Setup Window Shortcut
+Show Desktop=none,none,Show Desktop
+ShowDesktopGrid=Ctrl+F8,Ctrl+F8,Show Desktop Grid
+Suspend Compositing=Alt+Shift+F12,Alt+Shift+F12,Suspend Compositing
+Switch One Desktop Down=none,none,Switch One Desktop Down
+Switch One Desktop Up=none,none,Switch One Desktop Up
+Switch One Desktop to the Left=Ctrl+Alt+Left,none,Switch One Desktop to the Left
+Switch One Desktop to the Right=Ctrl+Alt+Right,none,Switch One Desktop to the Right
+Switch Window Down=Meta+Alt+Down,Meta+Alt+Down,Switch to Window Below
+Switch Window Left=Meta+Alt+Left,Meta+Alt+Left,Switch to Window to the Left
+Switch Window Right=Meta+Alt+Right,Meta+Alt+Right,Switch to Window to the Right
+Switch Window Up=Meta+Alt+Up,Meta+Alt+Up,Switch to Window Above
+Switch to Desktop 1=Ctrl+F1,Ctrl+F1,Switch to Desktop 1
+Switch to Desktop 10=none,none,Switch to Desktop 10
+Switch to Desktop 11=none,none,Switch to Desktop 11
+Switch to Desktop 12=none,none,Switch to Desktop 12
+Switch to Desktop 13=none,none,Switch to Desktop 13
+Switch to Desktop 14=none,none,Switch to Desktop 14
+Switch to Desktop 15=none,none,Switch to Desktop 15
+Switch to Desktop 16=none,none,Switch to Desktop 16
+Switch to Desktop 17=none,none,Switch to Desktop 17
+Switch to Desktop 18=none,none,Switch to Desktop 18
+Switch to Desktop 19=none,none,Switch to Desktop 19
+Switch to Desktop 2=Ctrl+F2,Ctrl+F2,Switch to Desktop 2
+Switch to Desktop 20=none,none,Switch to Desktop 20
+Switch to Desktop 3=Ctrl+F3,Ctrl+F3,Switch to Desktop 3
+Switch to Desktop 4=Ctrl+F4,Ctrl+F4,Switch to Desktop 4
+Switch to Desktop 5=none,none,Switch to Desktop 5
+Switch to Desktop 6=none,none,Switch to Desktop 6
+Switch to Desktop 7=none,none,Switch to Desktop 7
+Switch to Desktop 8=none,none,Switch to Desktop 8
+Switch to Desktop 9=none,none,Switch to Desktop 9
+Switch to Next Desktop=none,none,Switch to Next Desktop
+Switch to Next Screen=none,none,Switch to Next Screen
+Switch to Previous Desktop=none,none,Switch to Previous Desktop
+Switch to Previous Screen=none,none,Switch to Previous Screen
+Switch to Screen 0=none,none,Switch to Screen 0
+Switch to Screen 1=none,none,Switch to Screen 1
+Switch to Screen 2=none,none,Switch to Screen 2
+Switch to Screen 3=none,none,Switch to Screen 3
+Switch to Screen 4=none,none,Switch to Screen 4
+Switch to Screen 5=none,none,Switch to Screen 5
+Switch to Screen 6=none,none,Switch to Screen 6
+Switch to Screen 7=none,none,Switch to Screen 7
+Toggle Window Raise/Lower=none,none,Toggle Window Raise/Lower
+Walk Through Desktop List=none,none,Walk Through Desktop List
+Walk Through Desktop List (Reverse)=none,none,Walk Through Desktop List (Reverse)
+Walk Through Desktops=none,none,Walk Through Desktops
+Walk Through Desktops (Reverse)=none,none,Walk Through Desktops (Reverse)
+Walk Through Window Tabs=none,none,Walk Through Window Tabs
+Walk Through Window Tabs (Reverse)=none,none,Walk Through Window Tabs (Reverse)
+Walk Through Windows=Alt+Tab,Alt+Tab,Walk Through Windows
+Walk Through Windows (Reverse)=Alt+Shift+Backtab,Alt+Shift+Backtab,Walk Through Windows (Reverse)
+Walk Through Windows Alternative=none,none,Walk Through Windows Alternative
+Walk Through Windows Alternative (Reverse)=none,none,Walk Through Windows Alternative (Reverse)
+Walk Through Windows of Current Application=Alt+`,Alt+`,Walk Through Windows of Current Application
+Walk Through Windows of Current Application (Reverse)=Alt+~,Alt+~,Walk Through Windows of Current Application (Reverse)
+Walk Through Windows of Current Application Alternative=none,none,Walk Through Windows of Current Application Alternative
+Walk Through Windows of Current Application Alternative (Reverse)=none,none,Walk Through Windows of Current Application Alternative (Reverse)
+Window Above Other Windows=none,none,Keep Window Above Others
+Window Below Other Windows=none,none,Keep Window Below Others
+Window Close=Alt+F4,Alt+F4,Close Window
+Window Fullscreen=none,none,Make Window Fullscreen
+Window Grow Horizontal=none,none,Pack Grow Window Horizontally
+Window Grow Vertical=none,none,Pack Grow Window Vertically
+Window Lower=none,none,Lower Window
+Window Maximize=none,none,Maximize Window
+Window Maximize Horizontal=none,none,Maximize Window Horizontally
+Window Maximize Vertical=none,none,Maximize Window Vertically
+Window Minimize=none,none,Minimize Window
+Window Move=none,none,Move Window
+Window No Border=none,none,Hide Window Border
+Window On All Desktops=none,none,Keep Window on All Desktops
+Window One Desktop Down=none,none,Window One Desktop Down
+Window One Desktop Up=none,none,Window One Desktop Up
+Window One Desktop to the Left=Ctrl+Alt+Shift+Left,none,Window One Desktop to the Left
+Window One Desktop to the Right=Ctrl+Alt+Shift+Right,none,Window One Desktop to the Right
+Window Operations Menu=Alt+F3,Alt+F3,Window Operations Menu
+Window Pack Down=none,none,Pack Window Down
+Window Pack Left=none,none,Pack Window to the Left
+Window Pack Right=none,none,Pack Window to the Right
+Window Pack Up=none,none,Pack Window Up
+Window Quick Tile Bottom Left=none,none,Quick Tile Window to the Bottom Left
+Window Quick Tile Bottom Right=none,none,Quick Tile Window to the Bottom Right
+Window Quick Tile Left=none,none,Quick Tile Window to the Left
+Window Quick Tile Right=none,none,Quick Tile Window to the Right
+Window Quick Tile Top Left=none,none,Quick Tile Window to the Top Left
+Window Quick Tile Top Right=none,none,Quick Tile Window to the Top Right
+Window Raise=none,none,Raise Window
+Window Resize=none,none,Resize Window
+Window Shade=none,none,Shade Window
+Window Shrink Horizontal=none,none,Pack Shrink Window Horizontally
+Window Shrink Vertical=none,none,Pack Shrink Window Vertically
+Window to Desktop 1=none,none,Window to Desktop 1
+Window to Desktop 10=none,none,Window to Desktop 10
+Window to Desktop 11=none,none,Window to Desktop 11
+Window to Desktop 12=none,none,Window to Desktop 12
+Window to Desktop 13=none,none,Window to Desktop 13
+Window to Desktop 14=none,none,Window to Desktop 14
+Window to Desktop 15=none,none,Window to Desktop 15
+Window to Desktop 16=none,none,Window to Desktop 16
+Window to Desktop 17=none,none,Window to Desktop 17
+Window to Desktop 18=none,none,Window to Desktop 18
+Window to Desktop 19=none,none,Window to Desktop 19
+Window to Desktop 2=none,none,Window to Desktop 2
+Window to Desktop 20=none,none,Window to Desktop 20
+Window to Desktop 3=none,none,Window to Desktop 3
+Window to Desktop 4=none,none,Window to Desktop 4
+Window to Desktop 5=none,none,Window to Desktop 5
+Window to Desktop 6=none,none,Window to Desktop 6
+Window to Desktop 7=none,none,Window to Desktop 7
+Window to Desktop 8=none,none,Window to Desktop 8
+Window to Desktop 9=none,none,Window to Desktop 9
+Window to Next Desktop=none,none,Window to Next Desktop
+Window to Next Screen=none,none,Window to Next Screen
+Window to Previous Desktop=none,none,Window to Previous Desktop
+Window to Previous Screen=none,none,Window to Previous Screen
+Window to Screen 0=none,none,Window to Screen 0
+Window to Screen 1=none,none,Window to Screen 1
+Window to Screen 2=none,none,Window to Screen 2
+Window to Screen 3=none,none,Window to Screen 3
+Window to Screen 4=none,none,Window to Screen 4
+Window to Screen 5=none,none,Window to Screen 5
+Window to Screen 6=none,none,Window to Screen 6
+Window to Screen 7=none,none,Window to Screen 7
+_k_friendly_name=KWin
+view_actual_size=Meta+0,Meta+0,Actual Size
+view_zoom_in=Meta+=,Meta+=,Zoom In
+view_zoom_out=Meta+-,Meta+-,Zoom Out
+
+[plasma-desktop]
+Next Activity=Meta+Tab,Meta+Tab,Next Activity
+Previous Activity=Meta+Shift+Tab,Meta+Shift+Tab,Previous Activity
+Show Dashboard=Ctrl+F12,Ctrl+F12,Show Dashboard
+Stop Activity=Meta+S,Meta+S,Stop Current Activity
+SystemTray-Klipper-6=Ctrl+Alt+V,Ctrl+Alt+V,
+_k_friendly_name=Plasma Desktop Shell
+activate widget 2=Meta+Space,Alt+F1,Activate Application Launcher Widget
+activate widget 3=Wireless,Wireless,Activate Network Management Widget
+manage activities=Meta+Q,Meta+Q,Activities...
+
+[wacomtablet]
+Map to fullscreen=Meta+Ctrl+F,Meta+Ctrl+F,Map to all fullscreen
+Map to screen 1=Meta+Ctrl+1,Meta+Ctrl+1,Map to screen 1
+Map to screen 2=Meta+Ctrl+2,Meta+Ctrl+2,Map to screen 2
+Toggle screen map selection=Meta+Ctrl+M,Meta+Ctrl+M,Toggle between all screens
+Toggle stylus mode=Meta+Ctrl+S,Meta+Ctrl+S,Toggle the Stylus Tool Relative/Absolute
+Toggle touch tool=Meta+Ctrl+T,Meta+Ctrl+T,Enable/Disable the Touch Tool
+_k_friendly_name=Graphic Tablet Configuration daemon
diff --git a/UbuntuCustomizationKit/customize-lip/kde_config/khotkeysrc b/UbuntuCustomizationKit/customize-lip/kde_config/khotkeysrc
new file mode 100644
index 0000000000000000000000000000000000000000..4e06f82e472a70e4f3bd56265f6b4656da7eb2ef
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/kde_config/khotkeysrc
@@ -0,0 +1,994 @@
+[Data]
+DataCount=6
+
+[Data_1]
+Comment=KMenuEdit Global Shortcuts
+DataCount=1
+Enabled=true
+Name=KMenuEdit
+SystemGroup=1
+Type=ACTION_DATA_GROUP
+
+[Data_1Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_1_1]
+Comment=Comment
+Enabled=true
+Name=Search
+Type=SIMPLE_ACTION_DATA
+
+[Data_1_1Actions]
+ActionsCount=1
+
+[Data_1_1Actions0]
+CommandURL=http://google.com
+Type=COMMAND_URL
+
+[Data_1_1Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_1_1Triggers]
+Comment=Simple_action
+TriggersCount=1
+
+[Data_1_1Triggers0]
+Key=Search
+Type=SHORTCUT
+Uuid={d03619b6-9b3c-48cc-9d9c-a2aadb485550}
+
+[Data_2]
+Comment=This group contains various examples demonstrating most of the features of KHotkeys. (Note that this group and all its actions are disabled by default.)
+DataCount=8
+Enabled=false
+ImportId=kde32b1
+Name=Examples
+SystemGroup=0
+Type=ACTION_DATA_GROUP
+
+[Data_2Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_2_1]
+Comment=After pressing Ctrl+Alt+I, the KSIRC window will be activated, if it exists. Simple.
+Enabled=false
+Name=Activate KSIRC Window
+Type=SIMPLE_ACTION_DATA
+
+[Data_2_1Actions]
+ActionsCount=1
+
+[Data_2_1Actions0]
+Type=ACTIVATE_WINDOW
+
+[Data_2_1Actions0Window]
+Comment=KSIRC window
+WindowsCount=1
+
+[Data_2_1Actions0Window0]
+Class=ksirc
+ClassType=1
+Comment=KSIRC
+Role=
+RoleType=0
+Title=
+TitleType=0
+Type=SIMPLE
+WindowTypes=33
+
+[Data_2_1Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_2_1Triggers]
+Comment=Simple_action
+TriggersCount=1
+
+[Data_2_1Triggers0]
+Key=Ctrl+Alt+I
+Type=SHORTCUT
+Uuid={a7f1385f-aba6-4193-86b2-8195054260d8}
+
+[Data_2_2]
+Comment=After pressing Alt+Ctrl+H the input of 'Hello' will be simulated, as if you typed it.  This is especially useful if you have call to frequently type a word (for instance, 'unsigned').  Every keypress in the input is separated by a colon ':'. Note that the keypresses literally mean keypresses, so you have to write what you would press on the keyboard. In the table below, the left column shows the input and the right column shows what to type.\n\n"enter" (i.e. new line)                Enter or Return\na (i.e. small a)                          A\nA (i.e. capital a)                       Shift+A\n: (colon)                                  Shift+;\n' '  (space)                              Space
+Enabled=false
+Name=Type 'Hello'
+Type=SIMPLE_ACTION_DATA
+
+[Data_2_2Actions]
+ActionsCount=1
+
+[Data_2_2Actions0]
+DestinationWindow=2
+Input=Shift+H:E:L:L:O\n
+Type=KEYBOARD_INPUT
+
+[Data_2_2Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_2_2Triggers]
+Comment=Simple_action
+TriggersCount=1
+
+[Data_2_2Triggers0]
+Key=Ctrl+Alt+H
+Type=SHORTCUT
+Uuid={d6afea9a-5769-49eb-89b7-4fd885049195}
+
+[Data_2_3]
+Comment=This action runs Konsole, after pressing Ctrl+Alt+T.
+Enabled=false
+Name=Run Konsole
+Type=SIMPLE_ACTION_DATA
+
+[Data_2_3Actions]
+ActionsCount=1
+
+[Data_2_3Actions0]
+CommandURL=konsole
+Type=COMMAND_URL
+
+[Data_2_3Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_2_3Triggers]
+Comment=Simple_action
+TriggersCount=1
+
+[Data_2_3Triggers0]
+Key=Ctrl+Alt+T
+Type=SHORTCUT
+Uuid={32f14c75-165f-48d0-a50a-4ead93e878aa}
+
+[Data_2_4]
+Comment=Read the comment on the "Type 'Hello'" action first.\n\nQt Designer uses Ctrl+F4 for closing windows.  In KDE, however, Ctrl+F4 is the shortcut for going to virtual desktop 4, so this shortcut does not work in Qt Designer.  Further, Qt Designer does not use KDE's standard Ctrl+W for closing the window.\n\nThis problem can be solved by remapping Ctrl+W to Ctrl+F4 when the active window is Qt Designer. When Qt Designer is active, every time Ctrl+W is pressed, Ctrl+F4 will be sent to Qt Designer instead. In other applications, the effect of Ctrl+W is unchanged.\n\nWe now need to specify three things: A new shortcut trigger on 'Ctrl+W', a new keyboard input action sending Ctrl+F4, and a new condition that the active window is Qt Designer.\nQt Designer seems to always have title 'Qt Designer by Trolltech', so the condition will check for the active window having that title.
+Enabled=false
+Name=Remap Ctrl+W to Ctrl+F4 in Qt Designer
+Type=GENERIC_ACTION_DATA
+
+[Data_2_4Actions]
+ActionsCount=1
+
+[Data_2_4Actions0]
+DestinationWindow=2
+Input=Ctrl+F4
+Type=KEYBOARD_INPUT
+
+[Data_2_4Conditions]
+Comment=
+ConditionsCount=1
+
+[Data_2_4Conditions0]
+Type=ACTIVE_WINDOW
+
+[Data_2_4Conditions0Window]
+Comment=Qt Designer
+WindowsCount=1
+
+[Data_2_4Conditions0Window0]
+Class=
+ClassType=0
+Comment=
+Role=
+RoleType=0
+Title=Qt Designer by Trolltech
+TitleType=2
+Type=SIMPLE
+WindowTypes=33
+
+[Data_2_4Triggers]
+Comment=
+TriggersCount=1
+
+[Data_2_4Triggers0]
+Key=Ctrl+W
+Type=SHORTCUT
+Uuid={8ded87a3-81b4-4353-8e37-97bd1dc110ab}
+
+[Data_2_5]
+Comment=By pressing Alt+Ctrl+W a D-Bus call will be performed that will show the minicli. You can use any kind of D-Bus call, just like using the command line 'qdbus' tool.
+Enabled=false
+Name=Perform D-Bus call 'qdbus org.kde.krunner /App display'
+Type=SIMPLE_ACTION_DATA
+
+[Data_2_5Actions]
+ActionsCount=1
+
+[Data_2_5Actions0]
+Arguments=
+Call=popupExecuteCommand
+RemoteApp=org.kde.krunner
+RemoteObj=/App
+Type=DBUS
+
+[Data_2_5Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_2_5Triggers]
+Comment=Simple_action
+TriggersCount=1
+
+[Data_2_5Triggers0]
+Key=Ctrl+Alt+W
+Type=SHORTCUT
+Uuid={21bcf2d2-c88d-41fa-b05c-a5f1e2f97cb6}
+
+[Data_2_6]
+Comment=Read the comment on the "Type 'Hello'" action first.\n\nJust like the "Type 'Hello'" action, this one simulates keyboard input, specifically, after pressing Ctrl+Alt+B, it sends B to XMMS (B in XMMS jumps to the next song). The 'Send to specific window' checkbox is checked and a window with its class containing 'XMMS_Player' is specified; this will make the input always be sent to this window. This way, you can control XMMS even if, for instance, it is on a different virtual desktop.\n\n(Run 'xprop' and click on the XMMS window and search for WM_CLASS to see 'XMMS_Player').
+Enabled=false
+Name=Next in XMMS
+Type=SIMPLE_ACTION_DATA
+
+[Data_2_6Actions]
+ActionsCount=1
+
+[Data_2_6Actions0]
+DestinationWindow=1
+Input=B
+Type=KEYBOARD_INPUT
+
+[Data_2_6Actions0DestinationWindow]
+Comment=XMMS window
+WindowsCount=1
+
+[Data_2_6Actions0DestinationWindow0]
+Class=XMMS_Player
+ClassType=1
+Comment=XMMS Player window
+Role=
+RoleType=0
+Title=
+TitleType=0
+Type=SIMPLE
+WindowTypes=33
+
+[Data_2_6Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_2_6Triggers]
+Comment=Simple_action
+TriggersCount=1
+
+[Data_2_6Triggers0]
+Key=Ctrl+Alt+B
+Type=SHORTCUT
+Uuid={9902f5c0-fef8-4f26-a2d5-0828edeccb4b}
+
+[Data_2_7]
+Comment=Konqueror in KDE3.1 has tabs, and now you can also have gestures.\n\nJust press the middle mouse button and start drawing one of the gestures, and after you are finished, release the mouse button. If you only need to paste the selection, it still works, just click the middle mouse button. (You can change the mouse button to use in the global settings).\n\nRight now, there are the following gestures available:\nmove right and back left - Forward (Alt+Right)\nmove left and back right - Back (Alt+Left)\nmove up and back down  - Up (Alt+Up)\ncircle anticlockwise - Reload (F5)\n\nThe gesture shapes can be entered by performing them in the configuration dialog. You can also look at your numeric pad to help you: gestures are recognized like a 3x3 grid of fields, numbered 1 to 9.\n\nNote that you must perform exactly the gesture to trigger the action. Because of this, it is possible to enter more gestures for the action. You should try to avoid complicated gestures where you change the direction of mouse movement more than once.  For instance, 45654 or 74123 are simple to perform, but 1236987 may be already quite difficult.\n\nThe conditions for all gestures are defined in this group. All these gestures are active only if the active window is Konqueror (class contains 'konqueror').
+DataCount=4
+Enabled=false
+Name=Konqi Gestures
+SystemGroup=0
+Type=ACTION_DATA_GROUP
+
+[Data_2_7Conditions]
+Comment=Konqueror window
+ConditionsCount=1
+
+[Data_2_7Conditions0]
+Type=ACTIVE_WINDOW
+
+[Data_2_7Conditions0Window]
+Comment=Konqueror
+WindowsCount=1
+
+[Data_2_7Conditions0Window0]
+Class=konqueror
+ClassType=1
+Comment=Konqueror
+Role=
+RoleType=0
+Title=
+TitleType=0
+Type=SIMPLE
+WindowTypes=33
+
+[Data_2_7_1]
+Comment=
+Enabled=false
+Name=Back
+Type=SIMPLE_ACTION_DATA
+
+[Data_2_7_1Actions]
+ActionsCount=1
+
+[Data_2_7_1Actions0]
+DestinationWindow=2
+Input=Alt+Left
+Type=KEYBOARD_INPUT
+
+[Data_2_7_1Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_2_7_1Triggers]
+Comment=Gesture_triggers
+TriggersCount=3
+
+[Data_2_7_1Triggers0]
+GesturePointData=0,0.0625,1,1,0.5,0.0625,0.0625,1,0.875,0.5,0.125,0.0625,1,0.75,0.5,0.1875,0.0625,1,0.625,0.5,0.25,0.0625,1,0.5,0.5,0.3125,0.0625,1,0.375,0.5,0.375,0.0625,1,0.25,0.5,0.4375,0.0625,1,0.125,0.5,0.5,0.0625,0,0,0.5,0.5625,0.0625,0,0.125,0.5,0.625,0.0625,0,0.25,0.5,0.6875,0.0625,0,0.375,0.5,0.75,0.0625,0,0.5,0.5,0.8125,0.0625,0,0.625,0.5,0.875,0.0625,0,0.75,0.5,0.9375,0.0625,0,0.875,0.5,1,0,0,1,0.5
+Type=GESTURE
+
+[Data_2_7_1Triggers1]
+GesturePointData=0,0.0833333,1,0.5,0.5,0.0833333,0.0833333,1,0.375,0.5,0.166667,0.0833333,1,0.25,0.5,0.25,0.0833333,1,0.125,0.5,0.333333,0.0833333,0,0,0.5,0.416667,0.0833333,0,0.125,0.5,0.5,0.0833333,0,0.25,0.5,0.583333,0.0833333,0,0.375,0.5,0.666667,0.0833333,0,0.5,0.5,0.75,0.0833333,0,0.625,0.5,0.833333,0.0833333,0,0.75,0.5,0.916667,0.0833333,0,0.875,0.5,1,0,0,1,0.5
+Type=GESTURE
+
+[Data_2_7_1Triggers2]
+GesturePointData=0,0.0833333,1,1,0.5,0.0833333,0.0833333,1,0.875,0.5,0.166667,0.0833333,1,0.75,0.5,0.25,0.0833333,1,0.625,0.5,0.333333,0.0833333,1,0.5,0.5,0.416667,0.0833333,1,0.375,0.5,0.5,0.0833333,1,0.25,0.5,0.583333,0.0833333,1,0.125,0.5,0.666667,0.0833333,0,0,0.5,0.75,0.0833333,0,0.125,0.5,0.833333,0.0833333,0,0.25,0.5,0.916667,0.0833333,0,0.375,0.5,1,0,0,0.5,0.5
+Type=GESTURE
+
+[Data_2_7_2]
+Comment=
+Enabled=false
+Name=Forward
+Type=SIMPLE_ACTION_DATA
+
+[Data_2_7_2Actions]
+ActionsCount=1
+
+[Data_2_7_2Actions0]
+DestinationWindow=2
+Input=Alt+Right
+Type=KEYBOARD_INPUT
+
+[Data_2_7_2Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_2_7_2Triggers]
+Comment=Gesture_triggers
+TriggersCount=3
+
+[Data_2_7_2Triggers0]
+GesturePointData=0,0.0625,0,0,0.5,0.0625,0.0625,0,0.125,0.5,0.125,0.0625,0,0.25,0.5,0.1875,0.0625,0,0.375,0.5,0.25,0.0625,0,0.5,0.5,0.3125,0.0625,0,0.625,0.5,0.375,0.0625,0,0.75,0.5,0.4375,0.0625,0,0.875,0.5,0.5,0.0625,1,1,0.5,0.5625,0.0625,1,0.875,0.5,0.625,0.0625,1,0.75,0.5,0.6875,0.0625,1,0.625,0.5,0.75,0.0625,1,0.5,0.5,0.8125,0.0625,1,0.375,0.5,0.875,0.0625,1,0.25,0.5,0.9375,0.0625,1,0.125,0.5,1,0,0,0,0.5
+Type=GESTURE
+
+[Data_2_7_2Triggers1]
+GesturePointData=0,0.0833333,0,0.5,0.5,0.0833333,0.0833333,0,0.625,0.5,0.166667,0.0833333,0,0.75,0.5,0.25,0.0833333,0,0.875,0.5,0.333333,0.0833333,1,1,0.5,0.416667,0.0833333,1,0.875,0.5,0.5,0.0833333,1,0.75,0.5,0.583333,0.0833333,1,0.625,0.5,0.666667,0.0833333,1,0.5,0.5,0.75,0.0833333,1,0.375,0.5,0.833333,0.0833333,1,0.25,0.5,0.916667,0.0833333,1,0.125,0.5,1,0,0,0,0.5
+Type=GESTURE
+
+[Data_2_7_2Triggers2]
+GesturePointData=0,0.0833333,0,0,0.5,0.0833333,0.0833333,0,0.125,0.5,0.166667,0.0833333,0,0.25,0.5,0.25,0.0833333,0,0.375,0.5,0.333333,0.0833333,0,0.5,0.5,0.416667,0.0833333,0,0.625,0.5,0.5,0.0833333,0,0.75,0.5,0.583333,0.0833333,0,0.875,0.5,0.666667,0.0833333,1,1,0.5,0.75,0.0833333,1,0.875,0.5,0.833333,0.0833333,1,0.75,0.5,0.916667,0.0833333,1,0.625,0.5,1,0,0,0.5,0.5
+Type=GESTURE
+
+[Data_2_7_3]
+Comment=
+Enabled=false
+Name=Up
+Type=SIMPLE_ACTION_DATA
+
+[Data_2_7_3Actions]
+ActionsCount=1
+
+[Data_2_7_3Actions0]
+DestinationWindow=2
+Input=Alt+Up
+Type=KEYBOARD_INPUT
+
+[Data_2_7_3Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_2_7_3Triggers]
+Comment=Gesture_triggers
+TriggersCount=3
+
+[Data_2_7_3Triggers0]
+GesturePointData=0,0.0625,-0.5,0.5,1,0.0625,0.0625,-0.5,0.5,0.875,0.125,0.0625,-0.5,0.5,0.75,0.1875,0.0625,-0.5,0.5,0.625,0.25,0.0625,-0.5,0.5,0.5,0.3125,0.0625,-0.5,0.5,0.375,0.375,0.0625,-0.5,0.5,0.25,0.4375,0.0625,-0.5,0.5,0.125,0.5,0.0625,0.5,0.5,0,0.5625,0.0625,0.5,0.5,0.125,0.625,0.0625,0.5,0.5,0.25,0.6875,0.0625,0.5,0.5,0.375,0.75,0.0625,0.5,0.5,0.5,0.8125,0.0625,0.5,0.5,0.625,0.875,0.0625,0.5,0.5,0.75,0.9375,0.0625,0.5,0.5,0.875,1,0,0,0.5,1
+Type=GESTURE
+
+[Data_2_7_3Triggers1]
+GesturePointData=0,0.0833333,-0.5,0.5,1,0.0833333,0.0833333,-0.5,0.5,0.875,0.166667,0.0833333,-0.5,0.5,0.75,0.25,0.0833333,-0.5,0.5,0.625,0.333333,0.0833333,-0.5,0.5,0.5,0.416667,0.0833333,-0.5,0.5,0.375,0.5,0.0833333,-0.5,0.5,0.25,0.583333,0.0833333,-0.5,0.5,0.125,0.666667,0.0833333,0.5,0.5,0,0.75,0.0833333,0.5,0.5,0.125,0.833333,0.0833333,0.5,0.5,0.25,0.916667,0.0833333,0.5,0.5,0.375,1,0,0,0.5,0.5
+Type=GESTURE
+
+[Data_2_7_3Triggers2]
+GesturePointData=0,0.0833333,-0.5,0.5,0.5,0.0833333,0.0833333,-0.5,0.5,0.375,0.166667,0.0833333,-0.5,0.5,0.25,0.25,0.0833333,-0.5,0.5,0.125,0.333333,0.0833333,0.5,0.5,0,0.416667,0.0833333,0.5,0.5,0.125,0.5,0.0833333,0.5,0.5,0.25,0.583333,0.0833333,0.5,0.5,0.375,0.666667,0.0833333,0.5,0.5,0.5,0.75,0.0833333,0.5,0.5,0.625,0.833333,0.0833333,0.5,0.5,0.75,0.916667,0.0833333,0.5,0.5,0.875,1,0,0,0.5,1
+Type=GESTURE
+
+[Data_2_7_4]
+Comment=
+Enabled=false
+Name=Reload
+Type=SIMPLE_ACTION_DATA
+
+[Data_2_7_4Actions]
+ActionsCount=1
+
+[Data_2_7_4Actions0]
+DestinationWindow=2
+Input=F5
+Type=KEYBOARD_INPUT
+
+[Data_2_7_4Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_2_7_4Triggers]
+Comment=Gesture_triggers
+TriggersCount=3
+
+[Data_2_7_4Triggers0]
+GesturePointData=0,0.03125,0,0,1,0.03125,0.03125,0,0.125,1,0.0625,0.03125,0,0.25,1,0.09375,0.03125,0,0.375,1,0.125,0.03125,0,0.5,1,0.15625,0.03125,0,0.625,1,0.1875,0.03125,0,0.75,1,0.21875,0.03125,0,0.875,1,0.25,0.03125,-0.5,1,1,0.28125,0.03125,-0.5,1,0.875,0.3125,0.03125,-0.5,1,0.75,0.34375,0.03125,-0.5,1,0.625,0.375,0.03125,-0.5,1,0.5,0.40625,0.03125,-0.5,1,0.375,0.4375,0.03125,-0.5,1,0.25,0.46875,0.03125,-0.5,1,0.125,0.5,0.03125,1,1,0,0.53125,0.03125,1,0.875,0,0.5625,0.03125,1,0.75,0,0.59375,0.03125,1,0.625,0,0.625,0.03125,1,0.5,0,0.65625,0.03125,1,0.375,0,0.6875,0.03125,1,0.25,0,0.71875,0.03125,1,0.125,0,0.75,0.03125,0.5,0,0,0.78125,0.03125,0.5,0,0.125,0.8125,0.03125,0.5,0,0.25,0.84375,0.03125,0.5,0,0.375,0.875,0.03125,0.5,0,0.5,0.90625,0.03125,0.5,0,0.625,0.9375,0.03125,0.5,0,0.75,0.96875,0.03125,0.5,0,0.875,1,0,0,0,1
+Type=GESTURE
+
+[Data_2_7_4Triggers1]
+GesturePointData=0,0.0277778,0,0,1,0.0277778,0.0277778,0,0.125,1,0.0555556,0.0277778,0,0.25,1,0.0833333,0.0277778,0,0.375,1,0.111111,0.0277778,0,0.5,1,0.138889,0.0277778,0,0.625,1,0.166667,0.0277778,0,0.75,1,0.194444,0.0277778,0,0.875,1,0.222222,0.0277778,-0.5,1,1,0.25,0.0277778,-0.5,1,0.875,0.277778,0.0277778,-0.5,1,0.75,0.305556,0.0277778,-0.5,1,0.625,0.333333,0.0277778,-0.5,1,0.5,0.361111,0.0277778,-0.5,1,0.375,0.388889,0.0277778,-0.5,1,0.25,0.416667,0.0277778,-0.5,1,0.125,0.444444,0.0277778,1,1,0,0.472222,0.0277778,1,0.875,0,0.5,0.0277778,1,0.75,0,0.527778,0.0277778,1,0.625,0,0.555556,0.0277778,1,0.5,0,0.583333,0.0277778,1,0.375,0,0.611111,0.0277778,1,0.25,0,0.638889,0.0277778,1,0.125,0,0.666667,0.0277778,0.5,0,0,0.694444,0.0277778,0.5,0,0.125,0.722222,0.0277778,0.5,0,0.25,0.75,0.0277778,0.5,0,0.375,0.777778,0.0277778,0.5,0,0.5,0.805556,0.0277778,0.5,0,0.625,0.833333,0.0277778,0.5,0,0.75,0.861111,0.0277778,0.5,0,0.875,0.888889,0.0277778,0,0,1,0.916667,0.0277778,0,0.125,1,0.944444,0.0277778,0,0.25,1,0.972222,0.0277778,0,0.375,1,1,0,0,0.5,1
+Type=GESTURE
+
+[Data_2_7_4Triggers2]
+GesturePointData=0,0.0277778,0.5,0,0.5,0.0277778,0.0277778,0.5,0,0.625,0.0555556,0.0277778,0.5,0,0.75,0.0833333,0.0277778,0.5,0,0.875,0.111111,0.0277778,0,0,1,0.138889,0.0277778,0,0.125,1,0.166667,0.0277778,0,0.25,1,0.194444,0.0277778,0,0.375,1,0.222222,0.0277778,0,0.5,1,0.25,0.0277778,0,0.625,1,0.277778,0.0277778,0,0.75,1,0.305556,0.0277778,0,0.875,1,0.333333,0.0277778,-0.5,1,1,0.361111,0.0277778,-0.5,1,0.875,0.388889,0.0277778,-0.5,1,0.75,0.416667,0.0277778,-0.5,1,0.625,0.444444,0.0277778,-0.5,1,0.5,0.472222,0.0277778,-0.5,1,0.375,0.5,0.0277778,-0.5,1,0.25,0.527778,0.0277778,-0.5,1,0.125,0.555556,0.0277778,1,1,0,0.583333,0.0277778,1,0.875,0,0.611111,0.0277778,1,0.75,0,0.638889,0.0277778,1,0.625,0,0.666667,0.0277778,1,0.5,0,0.694444,0.0277778,1,0.375,0,0.722222,0.0277778,1,0.25,0,0.75,0.0277778,1,0.125,0,0.777778,0.0277778,0.5,0,0,0.805556,0.0277778,0.5,0,0.125,0.833333,0.0277778,0.5,0,0.25,0.861111,0.0277778,0.5,0,0.375,0.888889,0.0277778,0.5,0,0.5,0.916667,0.0277778,0.5,0,0.625,0.944444,0.0277778,0.5,0,0.75,0.972222,0.0277778,0.5,0,0.875,1,0,0,0,1
+Type=GESTURE
+
+[Data_2_8]
+Comment=After pressing Win+E (Tux+E) a WWW browser will be launched, and it will open http://www.kde.org . You may run all kind of commands you can run in minicli (Alt+F2).
+Enabled=false
+Name=Go to KDE Website
+Type=SIMPLE_ACTION_DATA
+
+[Data_2_8Actions]
+ActionsCount=1
+
+[Data_2_8Actions0]
+CommandURL=http://www.kde.org
+Type=COMMAND_URL
+
+[Data_2_8Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_2_8Triggers]
+Comment=Simple_action
+TriggersCount=1
+
+[Data_2_8Triggers0]
+Key=Meta+E
+Type=SHORTCUT
+Uuid={80e1b39e-73da-4816-bdc3-6b1cf0cac72f}
+
+[Data_3]
+Comment=Basic Konqueror gestures.
+DataCount=14
+Enabled=true
+ImportId=konqueror_gestures_kde321
+Name=Konqueror Gestures
+SystemGroup=0
+Type=ACTION_DATA_GROUP
+
+[Data_3Conditions]
+Comment=Konqueror window
+ConditionsCount=1
+
+[Data_3Conditions0]
+Type=ACTIVE_WINDOW
+
+[Data_3Conditions0Window]
+Comment=Konqueror
+WindowsCount=1
+
+[Data_3Conditions0Window0]
+Class=^konqueror\s
+ClassType=3
+Comment=Konqueror
+Role=konqueror-mainwindow#1
+RoleType=0
+Title=file:/ - Konqueror
+TitleType=0
+Type=SIMPLE
+WindowTypes=1
+
+[Data_3_1]
+Comment=Press, move left, release.
+Enabled=true
+Name=Back
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_10]
+Comment=Opera-style: Press, move up, release.\nNOTE: Conflicts with 'New Tab', and as such is disabled by default.
+Enabled=false
+Name=Stop Loading
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_10Actions]
+ActionsCount=1
+
+[Data_3_10Actions0]
+DestinationWindow=2
+Input=Escape\n
+Type=KEYBOARD_INPUT
+
+[Data_3_10Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_10Triggers]
+Comment=Gesture_triggers
+TriggersCount=1
+
+[Data_3_10Triggers0]
+GesturePointData=0,0.125,-0.5,0.5,1,0.125,0.125,-0.5,0.5,0.875,0.25,0.125,-0.5,0.5,0.75,0.375,0.125,-0.5,0.5,0.625,0.5,0.125,-0.5,0.5,0.5,0.625,0.125,-0.5,0.5,0.375,0.75,0.125,-0.5,0.5,0.25,0.875,0.125,-0.5,0.5,0.125,1,0,0,0.5,0
+Type=GESTURE
+
+[Data_3_11]
+Comment=Going up in URL/directory structure.\nMozilla-style: Press, move up, move left, move up, release.
+Enabled=true
+Name=Up
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_11Actions]
+ActionsCount=1
+
+[Data_3_11Actions0]
+DestinationWindow=2
+Input=Alt+Up
+Type=KEYBOARD_INPUT
+
+[Data_3_11Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_11Triggers]
+Comment=Gesture_triggers
+TriggersCount=1
+
+[Data_3_11Triggers0]
+GesturePointData=0,0.0625,-0.5,1,1,0.0625,0.0625,-0.5,1,0.875,0.125,0.0625,-0.5,1,0.75,0.1875,0.0625,-0.5,1,0.625,0.25,0.0625,1,1,0.5,0.3125,0.0625,1,0.875,0.5,0.375,0.0625,1,0.75,0.5,0.4375,0.0625,1,0.625,0.5,0.5,0.0625,1,0.5,0.5,0.5625,0.0625,1,0.375,0.5,0.625,0.0625,1,0.25,0.5,0.6875,0.0625,1,0.125,0.5,0.75,0.0625,-0.5,0,0.5,0.8125,0.0625,-0.5,0,0.375,0.875,0.0625,-0.5,0,0.25,0.9375,0.0625,-0.5,0,0.125,1,0,0,0,0
+Type=GESTURE
+
+[Data_3_12]
+Comment=Going up in URL/directory structure.\nOpera-style: Press, move up, move left, move up, release.\nNOTE: Conflicts with  "Activate Previous Tab", and as such is disabled by default.
+Enabled=false
+Name=Up #2
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_12Actions]
+ActionsCount=1
+
+[Data_3_12Actions0]
+DestinationWindow=2
+Input=Alt+Up\n
+Type=KEYBOARD_INPUT
+
+[Data_3_12Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_12Triggers]
+Comment=Gesture_triggers
+TriggersCount=1
+
+[Data_3_12Triggers0]
+GesturePointData=0,0.0625,-0.5,1,1,0.0625,0.0625,-0.5,1,0.875,0.125,0.0625,-0.5,1,0.75,0.1875,0.0625,-0.5,1,0.625,0.25,0.0625,-0.5,1,0.5,0.3125,0.0625,-0.5,1,0.375,0.375,0.0625,-0.5,1,0.25,0.4375,0.0625,-0.5,1,0.125,0.5,0.0625,1,1,0,0.5625,0.0625,1,0.875,0,0.625,0.0625,1,0.75,0,0.6875,0.0625,1,0.625,0,0.75,0.0625,1,0.5,0,0.8125,0.0625,1,0.375,0,0.875,0.0625,1,0.25,0,0.9375,0.0625,1,0.125,0,1,0,0,0,0
+Type=GESTURE
+
+[Data_3_13]
+Comment=Press, move up, move right, release.
+Enabled=true
+Name=Activate Next Tab
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_13Actions]
+ActionsCount=1
+
+[Data_3_13Actions0]
+DestinationWindow=2
+Input=Ctrl+.\n
+Type=KEYBOARD_INPUT
+
+[Data_3_13Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_13Triggers]
+Comment=Gesture_triggers
+TriggersCount=1
+
+[Data_3_13Triggers0]
+GesturePointData=0,0.0625,-0.5,0,1,0.0625,0.0625,-0.5,0,0.875,0.125,0.0625,-0.5,0,0.75,0.1875,0.0625,-0.5,0,0.625,0.25,0.0625,-0.5,0,0.5,0.3125,0.0625,-0.5,0,0.375,0.375,0.0625,-0.5,0,0.25,0.4375,0.0625,-0.5,0,0.125,0.5,0.0625,0,0,0,0.5625,0.0625,0,0.125,0,0.625,0.0625,0,0.25,0,0.6875,0.0625,0,0.375,0,0.75,0.0625,0,0.5,0,0.8125,0.0625,0,0.625,0,0.875,0.0625,0,0.75,0,0.9375,0.0625,0,0.875,0,1,0,0,1,0
+Type=GESTURE
+
+[Data_3_14]
+Comment=Press, move up, move left, release.
+Enabled=true
+Name=Activate Previous Tab
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_14Actions]
+ActionsCount=1
+
+[Data_3_14Actions0]
+DestinationWindow=2
+Input=Ctrl+,
+Type=KEYBOARD_INPUT
+
+[Data_3_14Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_14Triggers]
+Comment=Gesture_triggers
+TriggersCount=1
+
+[Data_3_14Triggers0]
+GesturePointData=0,0.0625,-0.5,1,1,0.0625,0.0625,-0.5,1,0.875,0.125,0.0625,-0.5,1,0.75,0.1875,0.0625,-0.5,1,0.625,0.25,0.0625,-0.5,1,0.5,0.3125,0.0625,-0.5,1,0.375,0.375,0.0625,-0.5,1,0.25,0.4375,0.0625,-0.5,1,0.125,0.5,0.0625,1,1,0,0.5625,0.0625,1,0.875,0,0.625,0.0625,1,0.75,0,0.6875,0.0625,1,0.625,0,0.75,0.0625,1,0.5,0,0.8125,0.0625,1,0.375,0,0.875,0.0625,1,0.25,0,0.9375,0.0625,1,0.125,0,1,0,0,0,0
+Type=GESTURE
+
+[Data_3_1Actions]
+ActionsCount=1
+
+[Data_3_1Actions0]
+DestinationWindow=2
+Input=Alt+Left
+Type=KEYBOARD_INPUT
+
+[Data_3_1Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_1Triggers]
+Comment=Gesture_triggers
+TriggersCount=1
+
+[Data_3_1Triggers0]
+GesturePointData=0,0.125,1,1,0.5,0.125,0.125,1,0.875,0.5,0.25,0.125,1,0.75,0.5,0.375,0.125,1,0.625,0.5,0.5,0.125,1,0.5,0.5,0.625,0.125,1,0.375,0.5,0.75,0.125,1,0.25,0.5,0.875,0.125,1,0.125,0.5,1,0,0,0,0.5
+Type=GESTURE
+
+[Data_3_2]
+Comment=Press, move down, move up, move down, release.
+Enabled=true
+Name=Duplicate Tab
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_2Actions]
+ActionsCount=1
+
+[Data_3_2Actions0]
+DestinationWindow=2
+Input=Ctrl+Shift+D\n
+Type=KEYBOARD_INPUT
+
+[Data_3_2Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_2Triggers]
+Comment=Gesture_triggers
+TriggersCount=1
+
+[Data_3_2Triggers0]
+GesturePointData=0,0.0416667,0.5,0.5,0,0.0416667,0.0416667,0.5,0.5,0.125,0.0833333,0.0416667,0.5,0.5,0.25,0.125,0.0416667,0.5,0.5,0.375,0.166667,0.0416667,0.5,0.5,0.5,0.208333,0.0416667,0.5,0.5,0.625,0.25,0.0416667,0.5,0.5,0.75,0.291667,0.0416667,0.5,0.5,0.875,0.333333,0.0416667,-0.5,0.5,1,0.375,0.0416667,-0.5,0.5,0.875,0.416667,0.0416667,-0.5,0.5,0.75,0.458333,0.0416667,-0.5,0.5,0.625,0.5,0.0416667,-0.5,0.5,0.5,0.541667,0.0416667,-0.5,0.5,0.375,0.583333,0.0416667,-0.5,0.5,0.25,0.625,0.0416667,-0.5,0.5,0.125,0.666667,0.0416667,0.5,0.5,0,0.708333,0.0416667,0.5,0.5,0.125,0.75,0.0416667,0.5,0.5,0.25,0.791667,0.0416667,0.5,0.5,0.375,0.833333,0.0416667,0.5,0.5,0.5,0.875,0.0416667,0.5,0.5,0.625,0.916667,0.0416667,0.5,0.5,0.75,0.958333,0.0416667,0.5,0.5,0.875,1,0,0,0.5,1
+Type=GESTURE
+
+[Data_3_3]
+Comment=Press, move down, move up, release.
+Enabled=true
+Name=Duplicate Window
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_3Actions]
+ActionsCount=1
+
+[Data_3_3Actions0]
+DestinationWindow=2
+Input=Ctrl+D\n
+Type=KEYBOARD_INPUT
+
+[Data_3_3Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_3Triggers]
+Comment=Gesture_triggers
+TriggersCount=1
+
+[Data_3_3Triggers0]
+GesturePointData=0,0.0625,0.5,0.5,0,0.0625,0.0625,0.5,0.5,0.125,0.125,0.0625,0.5,0.5,0.25,0.1875,0.0625,0.5,0.5,0.375,0.25,0.0625,0.5,0.5,0.5,0.3125,0.0625,0.5,0.5,0.625,0.375,0.0625,0.5,0.5,0.75,0.4375,0.0625,0.5,0.5,0.875,0.5,0.0625,-0.5,0.5,1,0.5625,0.0625,-0.5,0.5,0.875,0.625,0.0625,-0.5,0.5,0.75,0.6875,0.0625,-0.5,0.5,0.625,0.75,0.0625,-0.5,0.5,0.5,0.8125,0.0625,-0.5,0.5,0.375,0.875,0.0625,-0.5,0.5,0.25,0.9375,0.0625,-0.5,0.5,0.125,1,0,0,0.5,0
+Type=GESTURE
+
+[Data_3_4]
+Comment=Press, move right, release.
+Enabled=true
+Name=Forward
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_4Actions]
+ActionsCount=1
+
+[Data_3_4Actions0]
+DestinationWindow=2
+Input=Alt+Right
+Type=KEYBOARD_INPUT
+
+[Data_3_4Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_4Triggers]
+Comment=Gesture_triggers
+TriggersCount=1
+
+[Data_3_4Triggers0]
+GesturePointData=0,0.125,0,0,0.5,0.125,0.125,0,0.125,0.5,0.25,0.125,0,0.25,0.5,0.375,0.125,0,0.375,0.5,0.5,0.125,0,0.5,0.5,0.625,0.125,0,0.625,0.5,0.75,0.125,0,0.75,0.5,0.875,0.125,0,0.875,0.5,1,0,0,1,0.5
+Type=GESTURE
+
+[Data_3_5]
+Comment=Press, move down, move half up, move right, move down, release.\n(Drawing a lowercase 'h'.)
+Enabled=true
+Name=Home
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_5Actions]
+ActionsCount=1
+
+[Data_3_5Actions0]
+DestinationWindow=2
+Input=Alt+Home\n
+Type=KEYBOARD_INPUT
+
+[Data_3_5Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_5Triggers]
+Comment=Gesture_triggers
+TriggersCount=2
+
+[Data_3_5Triggers0]
+GesturePointData=0,0.0461748,0.5,0,0,0.0461748,0.0461748,0.5,0,0.125,0.0923495,0.0461748,0.5,0,0.25,0.138524,0.0461748,0.5,0,0.375,0.184699,0.0461748,0.5,0,0.5,0.230874,0.0461748,0.5,0,0.625,0.277049,0.0461748,0.5,0,0.75,0.323223,0.0461748,0.5,0,0.875,0.369398,0.065301,-0.25,0,1,0.434699,0.065301,-0.25,0.125,0.875,0.5,0.065301,-0.25,0.25,0.75,0.565301,0.065301,-0.25,0.375,0.625,0.630602,0.0461748,0,0.5,0.5,0.676777,0.0461748,0,0.625,0.5,0.722951,0.0461748,0,0.75,0.5,0.769126,0.0461748,0,0.875,0.5,0.815301,0.0461748,0.5,1,0.5,0.861476,0.0461748,0.5,1,0.625,0.90765,0.0461748,0.5,1,0.75,0.953825,0.0461748,0.5,1,0.875,1,0,0,1,1
+Type=GESTURE
+
+[Data_3_5Triggers1]
+GesturePointData=0,0.0416667,0.5,0,0,0.0416667,0.0416667,0.5,0,0.125,0.0833333,0.0416667,0.5,0,0.25,0.125,0.0416667,0.5,0,0.375,0.166667,0.0416667,0.5,0,0.5,0.208333,0.0416667,0.5,0,0.625,0.25,0.0416667,0.5,0,0.75,0.291667,0.0416667,0.5,0,0.875,0.333333,0.0416667,-0.5,0,1,0.375,0.0416667,-0.5,0,0.875,0.416667,0.0416667,-0.5,0,0.75,0.458333,0.0416667,-0.5,0,0.625,0.5,0.0416667,0,0,0.5,0.541667,0.0416667,0,0.125,0.5,0.583333,0.0416667,0,0.25,0.5,0.625,0.0416667,0,0.375,0.5,0.666667,0.0416667,0,0.5,0.5,0.708333,0.0416667,0,0.625,0.5,0.75,0.0416667,0,0.75,0.5,0.791667,0.0416667,0,0.875,0.5,0.833333,0.0416667,0.5,1,0.5,0.875,0.0416667,0.5,1,0.625,0.916667,0.0416667,0.5,1,0.75,0.958333,0.0416667,0.5,1,0.875,1,0,0,1,1
+Type=GESTURE
+
+[Data_3_6]
+Comment=Press, move right, move down, move right, release.\nMozilla-style: Press, move down, move right, release.
+Enabled=true
+Name=Close Tab
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_6Actions]
+ActionsCount=1
+
+[Data_3_6Actions0]
+DestinationWindow=2
+Input=Ctrl+W\n
+Type=KEYBOARD_INPUT
+
+[Data_3_6Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_6Triggers]
+Comment=Gesture_triggers
+TriggersCount=2
+
+[Data_3_6Triggers0]
+GesturePointData=0,0.0625,0,0,0,0.0625,0.0625,0,0.125,0,0.125,0.0625,0,0.25,0,0.1875,0.0625,0,0.375,0,0.25,0.0625,0.5,0.5,0,0.3125,0.0625,0.5,0.5,0.125,0.375,0.0625,0.5,0.5,0.25,0.4375,0.0625,0.5,0.5,0.375,0.5,0.0625,0.5,0.5,0.5,0.5625,0.0625,0.5,0.5,0.625,0.625,0.0625,0.5,0.5,0.75,0.6875,0.0625,0.5,0.5,0.875,0.75,0.0625,0,0.5,1,0.8125,0.0625,0,0.625,1,0.875,0.0625,0,0.75,1,0.9375,0.0625,0,0.875,1,1,0,0,1,1
+Type=GESTURE
+
+[Data_3_6Triggers1]
+GesturePointData=0,0.0625,0.5,0,0,0.0625,0.0625,0.5,0,0.125,0.125,0.0625,0.5,0,0.25,0.1875,0.0625,0.5,0,0.375,0.25,0.0625,0.5,0,0.5,0.3125,0.0625,0.5,0,0.625,0.375,0.0625,0.5,0,0.75,0.4375,0.0625,0.5,0,0.875,0.5,0.0625,0,0,1,0.5625,0.0625,0,0.125,1,0.625,0.0625,0,0.25,1,0.6875,0.0625,0,0.375,1,0.75,0.0625,0,0.5,1,0.8125,0.0625,0,0.625,1,0.875,0.0625,0,0.75,1,0.9375,0.0625,0,0.875,1,1,0,0,1,1
+Type=GESTURE
+
+[Data_3_7]
+Comment=Press, move up, release.\nConflicts with Opera-style 'Up #2', which is disabled by default.
+Enabled=true
+Name=New Tab
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_7Actions]
+ActionsCount=1
+
+[Data_3_7Actions0]
+DestinationWindow=2
+Input=Ctrl+Shift+N
+Type=KEYBOARD_INPUT
+
+[Data_3_7Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_7Triggers]
+Comment=Gesture_triggers
+TriggersCount=1
+
+[Data_3_7Triggers0]
+GesturePointData=0,0.125,-0.5,0.5,1,0.125,0.125,-0.5,0.5,0.875,0.25,0.125,-0.5,0.5,0.75,0.375,0.125,-0.5,0.5,0.625,0.5,0.125,-0.5,0.5,0.5,0.625,0.125,-0.5,0.5,0.375,0.75,0.125,-0.5,0.5,0.25,0.875,0.125,-0.5,0.5,0.125,1,0,0,0.5,0
+Type=GESTURE
+
+[Data_3_8]
+Comment=Press, move down, release.
+Enabled=true
+Name=New Window
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_8Actions]
+ActionsCount=1
+
+[Data_3_8Actions0]
+DestinationWindow=2
+Input=Ctrl+N\n
+Type=KEYBOARD_INPUT
+
+[Data_3_8Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_8Triggers]
+Comment=Gesture_triggers
+TriggersCount=1
+
+[Data_3_8Triggers0]
+GesturePointData=0,0.125,0.5,0.5,0,0.125,0.125,0.5,0.5,0.125,0.25,0.125,0.5,0.5,0.25,0.375,0.125,0.5,0.5,0.375,0.5,0.125,0.5,0.5,0.5,0.625,0.125,0.5,0.5,0.625,0.75,0.125,0.5,0.5,0.75,0.875,0.125,0.5,0.5,0.875,1,0,0,0.5,1
+Type=GESTURE
+
+[Data_3_9]
+Comment=Press, move up, move down, release.
+Enabled=true
+Name=Reload
+Type=SIMPLE_ACTION_DATA
+
+[Data_3_9Actions]
+ActionsCount=1
+
+[Data_3_9Actions0]
+DestinationWindow=2
+Input=F5
+Type=KEYBOARD_INPUT
+
+[Data_3_9Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_3_9Triggers]
+Comment=Gesture_triggers
+TriggersCount=1
+
+[Data_3_9Triggers0]
+GesturePointData=0,0.0625,-0.5,0.5,1,0.0625,0.0625,-0.5,0.5,0.875,0.125,0.0625,-0.5,0.5,0.75,0.1875,0.0625,-0.5,0.5,0.625,0.25,0.0625,-0.5,0.5,0.5,0.3125,0.0625,-0.5,0.5,0.375,0.375,0.0625,-0.5,0.5,0.25,0.4375,0.0625,-0.5,0.5,0.125,0.5,0.0625,0.5,0.5,0,0.5625,0.0625,0.5,0.5,0.125,0.625,0.0625,0.5,0.5,0.25,0.6875,0.0625,0.5,0.5,0.375,0.75,0.0625,0.5,0.5,0.5,0.8125,0.0625,0.5,0.5,0.625,0.875,0.0625,0.5,0.5,0.75,0.9375,0.0625,0.5,0.5,0.875,1,0,0,0.5,1
+Type=GESTURE
+
+[Data_4]
+AllowMerge=true
+Comment=This group contains actions that are set up by default.
+DataCount=1
+Enabled=true
+ImportId=printscreen
+Name=Preset Actions
+SystemGroup=0
+Type=ACTION_DATA_GROUP
+
+[Data_4Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_4_1]
+Comment=Launches KSnapShot when PrintScrn is pressed.
+Enabled=true
+Name=PrintScreen
+Type=SIMPLE_ACTION_DATA
+
+[Data_4_1Actions]
+ActionsCount=1
+
+[Data_4_1Actions0]
+CommandURL=ksnapshot
+Type=COMMAND_URL
+
+[Data_4_1Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_4_1Triggers]
+Comment=Simple_action
+TriggersCount=1
+
+[Data_4_1Triggers0]
+Key=Print
+Type=SHORTCUT
+Uuid={72302d03-d536-4d08-a903-c80d7e9f7c23}
+
+[Data_5]
+Comment=Comment
+Enabled=true
+Name=Start Konsole
+Type=SIMPLE_ACTION_DATA
+
+[Data_5Actions]
+ActionsCount=1
+
+[Data_5Actions0]
+CommandURL=konsole
+Type=COMMAND_URL
+
+[Data_5Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_5Triggers]
+Comment=Simple_action
+TriggersCount=1
+
+[Data_5Triggers0]
+Key=Ctrl+Alt+T
+Type=SHORTCUT
+Uuid={99d9d36b-54f0-40c3-860a-d7bf5966a3f2}
+
+[Data_6]
+Comment=Comment
+Enabled=true
+Name=Start Konsole
+Type=SIMPLE_ACTION_DATA
+
+[Data_6Actions]
+ActionsCount=1
+
+[Data_6Actions0]
+CommandURL=konsole
+Type=COMMAND_URL
+
+[Data_6Conditions]
+Comment=
+ConditionsCount=0
+
+[Data_6Triggers]
+Comment=Simple_action
+TriggersCount=1
+
+[Data_6Triggers0]
+Key=Meta+Return
+Type=SHORTCUT
+Uuid={4f187baa-bed0-46dc-abba-fc8e99c221e8}
+
+[Directories-default]
+prefixes[$d]
+
+[Emoticons]
+emoticonsTheme[$d]
+
+[General]
+BrowserApplication[$d]
+XftHintStyle[$d]
+desktopFont[$d]
+font[$d]
+menuFont[$d]
+smallestReadableFont[$d]
+taskbarFont[$d]
+toolBarFont[$d]
+
+[Gestures]
+Disabled=true
+MouseButton=2
+Timeout=300
+
+[GesturesExclude]
+Comment=
+WindowsCount=0
+
+[Main]
+AlreadyImported=defaults,kde32b1,konqueror_gestures_kde321,printscreen
+Disabled=false
+Version=2
+
+[Notification Messages]
+:confirmNewSession[$d]
+
+[PreviewSettings]
+UseFileThumbnails[$d]
+
+[Toolbar style]
+ToolButtonStyle[$d]
+
+[Voice]
+Shortcut=
+
+[WM]
+activeFont[$d]
diff --git a/UbuntuCustomizationKit/customize-lip/kde_config/kickoffrc b/UbuntuCustomizationKit/customize-lip/kde_config/kickoffrc
new file mode 100644
index 0000000000000000000000000000000000000000..cbeeeac362a7e44f1b8e4be091557cc08b43b7d4
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/kde_config/kickoffrc
@@ -0,0 +1,8 @@
+[Favorites]
+FavoriteURLs=/usr/share/applications/firefox.desktop,/usr/share/applications/thunderbird.desktop,/usr/share/applications/kde4/systemsettings.desktop,/usr/share/applications/kde4/dolphin.desktop,/usr/share/applications/kde4/amarok.desktop
+
+[KRunner]
+loadAll=false
+
+[KRunner][PlasmaRunnerManager]
+pluginWhiteList=places,shell,services,bookmarks,recentdocuments,locations
diff --git a/UbuntuCustomizationKit/customize-lip/kde_config/ksplashrc b/UbuntuCustomizationKit/customize-lip/kde_config/ksplashrc
new file mode 100644
index 0000000000000000000000000000000000000000..14ac66d692a889ab2b7aeca79280a73f8a770b5f
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/kde_config/ksplashrc
@@ -0,0 +1,3 @@
+[KSplash]
+Engine=None
+Theme=None
diff --git a/UbuntuCustomizationKit/customize-lip/keep_initrd_extraction b/UbuntuCustomizationKit/customize-lip/keep_initrd_extraction
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/UbuntuCustomizationKit/customize-lip/keep_iso_cache b/UbuntuCustomizationKit/customize-lip/keep_iso_cache
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/UbuntuCustomizationKit/customize-lip/keep_iso_extraction b/UbuntuCustomizationKit/customize-lip/keep_iso_extraction
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/UbuntuCustomizationKit/customize-lip/keep_root_home b/UbuntuCustomizationKit/customize-lip/keep_root_home
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/UbuntuCustomizationKit/customize-lip/keep_rootfs_cache b/UbuntuCustomizationKit/customize-lip/keep_rootfs_cache
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/UbuntuCustomizationKit/customize-lip/keep_rootfs_extraction b/UbuntuCustomizationKit/customize-lip/keep_rootfs_extraction
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/UbuntuCustomizationKit/customize-lip/language_packs b/UbuntuCustomizationKit/customize-lip/language_packs
new file mode 100644
index 0000000000000000000000000000000000000000..996888bcd6d56f1a032f598d7ed3916d347f4fa5
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/language_packs
@@ -0,0 +1,2 @@
+de
+en
diff --git a/UbuntuCustomizationKit/customize-lip/libnsa/26libnsa b/UbuntuCustomizationKit/customize-lip/libnsa/26libnsa
new file mode 100755
index 0000000000000000000000000000000000000000..0e6c1ffe16746b6dc5bf59d425ab90ba214e00d4
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/libnsa/26libnsa
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+PREREQ=""
+DESCRIPTION="libnsa loader"
+
+prereqs()
+{
+       echo "$PREREQ"
+}
+
+case $1 in
+# get pre-requisites
+prereqs)
+       prereqs
+       exit 0
+       ;;
+esac
+
+. /scripts/casper-functions
+load_confmodule
+
+log_begin_msg "$DESCRIPTION"
+
+# Install libnsa
+cp /lip/libnsa/libnsa.sh /root/usr/bin/
+chroot /root mkdir -m 755 -p /home/${USERNAME}/.config/autostart
+cp /lip/libnsa/libnsa.desktop /root/home/${USERNAME}/.config/autostart
+chroot /root chmod 755 /home/${USERNAME}/.config/autostart/libnsa.desktop
+chroot /root chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.config
+
+log_end_msg
+
diff --git a/UbuntuCustomizationKit/customize-lip/libnsa/libnsa.desktop b/UbuntuCustomizationKit/customize-lip/libnsa/libnsa.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..3f5aaa6dff6bb0be9cb2e5c6ae5150671f502003
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/libnsa/libnsa.desktop
@@ -0,0 +1,11 @@
+
+[Desktop Entry]
+Type=Application
+Exec=/bin/bash /usr/bin/libnsa.sh
+Hidden=false
+NoDisplay=false
+X-GNOME-Autostart-enabled=true
+Name[de_DE]=LIP Statistik
+Name=LIP statistic
+Comment[de_DE]=Speichert statistische Hardware Informationen auf dem LIP-Stick
+Comment=Speichert statistische Hardware Informationen auf dem LIP-Stick
diff --git a/UbuntuCustomizationKit/customize-lip/libnsa/libnsa.sh b/UbuntuCustomizationKit/customize-lip/libnsa/libnsa.sh
new file mode 100755
index 0000000000000000000000000000000000000000..74f4fa8f4c80584f1a69a0a6b513405addc5e8b8
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/libnsa/libnsa.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+DUMPDIR="$(mktemp -d --tmpdir /cdrom/lipstats/ .stats.XXXXXXXXXXXX)"
+
+mkdir -p "$DUMPDIR"
+
+uname -a > "$DUMPDIR/uname" 2> "$DUMPDIR/uname.err"
+dmidecode > "$DUMPDIR/dmidecode" 2> "$DUMPDIR/dmidecode.err"
+lspci -k > "$DUMPDIR/lspci" 2> "$DUMPDIR/lspci.err"
+lsusb > "$DUMPDIR/lsusb" 2> "$DUMPDIR/lsusb.err"
diff --git a/UbuntuCustomizationKit/customize-lip/lip_sources.list b/UbuntuCustomizationKit/customize-lip/lip_sources.list
new file mode 100644
index 0000000000000000000000000000000000000000..c85e9921570ef850653b34e3cf04377287998940
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/lip_sources.list
@@ -0,0 +1,54 @@
+# deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release i386 (20120423)]/ precise main restricted
+
+# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
+# newer versions of the distribution.
+deb http://ftp.halifax.rwth-aachen.de/ubuntu/ precise main restricted
+deb-src http://ftp.halifax.rwth-aachen.de/ubuntu/ precise main restricted
+
+## Major bug fix updates produced after the final release of the
+## distribution.
+deb http://ftp.halifax.rwth-aachen.de/ubuntu/ precise-updates main restricted
+deb-src http://ftp.halifax.rwth-aachen.de/ubuntu/ precise-updates main restricted
+
+## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
+## team. Also, please note that software in universe WILL NOT receive any
+## review or updates from the Ubuntu security team.
+deb http://ftp.halifax.rwth-aachen.de/ubuntu/ precise universe
+deb-src http://ftp.halifax.rwth-aachen.de/ubuntu/ precise universe
+deb http://ftp.halifax.rwth-aachen.de/ubuntu/ precise-updates universe
+deb-src http://ftp.halifax.rwth-aachen.de/ubuntu/ precise-updates universe
+
+## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
+## team, and may not be under a free licence. Please satisfy yourself as to 
+## your rights to use the software. Also, please note that software in 
+## multiverse WILL NOT receive any review or updates from the Ubuntu
+## security team.
+deb http://ftp.halifax.rwth-aachen.de/ubuntu/ precise multiverse
+deb-src http://ftp.halifax.rwth-aachen.de/ubuntu/ precise multiverse
+deb http://ftp.halifax.rwth-aachen.de/ubuntu/ precise-updates multiverse
+deb-src http://ftp.halifax.rwth-aachen.de/ubuntu/ precise-updates multiverse
+
+## N.B. software from this repository may not have been tested as
+## extensively as that contained in the main release, although it includes
+## newer versions of some applications which may provide useful features.
+## Also, please note that software in backports WILL NOT receive any review
+## or updates from the Ubuntu security team.
+
+deb http://ftp.halifax.rwth-aachen.de/ubuntu/ precise-security main restricted
+deb-src http://ftp.halifax.rwth-aachen.de/ubuntu/ precise-security main restricted
+deb http://ftp.halifax.rwth-aachen.de/ubuntu/ precise-security universe
+deb-src http://ftp.halifax.rwth-aachen.de/ubuntu/ precise-security universe
+deb http://ftp.halifax.rwth-aachen.de/ubuntu/ precise-security multiverse
+deb-src http://ftp.halifax.rwth-aachen.de/ubuntu/ precise-security multiverse
+
+## Uncomment the following two lines to add software from Canonical's
+## 'partner' repository.
+## This software is not part of Ubuntu, but is offered by Canonical and the
+## respective vendors as a service to Ubuntu users.
+# deb http://archive.canonical.com/ubuntu precise partner
+# deb-src http://archive.canonical.com/ubuntu precise partner
+
+## This software is not part of Ubuntu, but is offered by third-party
+## developers who want to ship their latest software.
+deb http://extras.ubuntu.com/ubuntu precise main
+deb-src http://extras.ubuntu.com/ubuntu precise main
diff --git a/UbuntuCustomizationKit/customize-lip/livecd_locale b/UbuntuCustomizationKit/customize-lip/livecd_locale
new file mode 100644
index 0000000000000000000000000000000000000000..c574d073d1e394c90481ad201a5aad6a153c28e2
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/livecd_locale
@@ -0,0 +1 @@
+en
diff --git a/UbuntuCustomizationKit/customize-lip/livecd_locales b/UbuntuCustomizationKit/customize-lip/livecd_locales
new file mode 100644
index 0000000000000000000000000000000000000000..996888bcd6d56f1a032f598d7ed3916d347f4fa5
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/livecd_locales
@@ -0,0 +1,2 @@
+de
+en
diff --git a/UbuntuCustomizationKit/customize-lip/nmtelekinese/26mopsmops b/UbuntuCustomizationKit/customize-lip/nmtelekinese/26mopsmops
new file mode 100755
index 0000000000000000000000000000000000000000..c1c047d116741b66ba524d8ae30b0e9c0dff6b83
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/nmtelekinese/26mopsmops
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+PREREQ=""
+DESCRIPTION="Enforcing MoPS disconnect"
+
+prereqs()
+{
+       echo "$PREREQ"
+}
+
+case $1 in
+# get pre-requisites
+prereqs)
+       prereqs
+       exit 0
+       ;;
+esac
+
+. /scripts/casper-functions
+load_confmodule
+
+log_begin_msg "$DESCRIPTION"
+
+# Starting nmtelekinese with the MoPS network
+cp /lip/nm/nmtelekinese.py /root/usr/bin/
+chroot /root mkdir -m 755 -p /home/${USERNAME}/.config/autostart
+cp /lip/nm/nmtelekinese.desktop /root/home/${USERNAME}/.config/autostart
+chroot /root chmod 755 /home/${USERNAME}/.config/autostart/nmtelekinese.desktop
+chroot /root chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.config
+
+# Denying all connections to redirector.wlan.rwth-aachen.de
+mount -t proc none /root/proc
+chroot /root modprobe ip_tables
+chroot /root modprobe iptable_filter
+chroot /root modprobe ipt_REJECT
+chroot /root iptables -I OUTPUT 1 -d 137.226.8.34 -j REJECT --reject-with icmp-host-prohibited
+chroot /root iptables -I OUTPUT 1 -d 137.226.8.34 -p tcp -j REJECT --reject-with tcp-rst
+umount /root/proc
+
+log_end_msg
+
diff --git a/UbuntuCustomizationKit/customize-lip/nmtelekinese/nmtelekinese.desktop b/UbuntuCustomizationKit/customize-lip/nmtelekinese/nmtelekinese.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..3f90e6fc778b25cd0a319f812927aeca5b9ee627
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/nmtelekinese/nmtelekinese.desktop
@@ -0,0 +1,11 @@
+
+[Desktop Entry]
+Type=Application
+Exec=/usr/bin/python /usr/bin/nmtelekinese.py 134.61.32.0/21
+Hidden=false
+NoDisplay=false
+X-GNOME-Autostart-enabled=true
+Name[de_DE]=NM Telekinese 
+Name=NM Telekinese 
+Comment[de_DE]=Verdindert das Verbinden zu gefärlichen Netzwerken
+Comment=Verdindert das Verbinden zu gefärlichen Netzwerken
diff --git a/UbuntuCustomizationKit/customize-lip/nmtelekinese/nmtelekinese.py b/UbuntuCustomizationKit/customize-lip/nmtelekinese/nmtelekinese.py
new file mode 100755
index 0000000000000000000000000000000000000000..acf413c53f7af75a78a625375feda3bfba195347
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/nmtelekinese/nmtelekinese.py
@@ -0,0 +1,436 @@
+#! /usr/bin/python
+# -*- coding: UTF-8 -*-
+"""
+Network Manager Telekinesis - Interdicts connections to unwanted networks
+
+This program controls NetworkManager via DBUS
+in order to prevent it from connecting to certain networks.
+
+(Copyleft) 2012 Mmoebius/ALUG
+License: GPLv3 http://www.gnu.org/licenses/gpl.html
+
+Version 1.0a - Fragt nicht nach dem Abschalten des Mops-Netz-Killers
+"""
+
+###
+### Configuration 
+###
+#now: Cmdline Parameter
+#IPv4unwanted = [
+#  '134.61.32.0/21'       # MoPS range
+#]
+IPv4unwantedRng=[]
+DoDisableUnwanted=True   # set to false to stop turning off the network
+
+###
+### /Configuration
+###
+
+SessionBusListener=None  # gets set if waiting for the user to dismiss the action
+
+from pprint import pformat,pprint
+import logging
+logger = logging.getLogger(__name__)
+logging.basicConfig(level=logging.INFO)
+
+import dbus, sys
+from time import sleep
+
+# Need a Mainloop for signals
+from dbus.mainloop.glib import DBusGMainLoop
+import gobject
+DBusGMainLoop(set_as_default=True)
+
+# Need struct for network byte order handling
+from struct import pack,unpack
+
+#Parse comdline options
+import argparse
+
+parser = argparse.ArgumentParser(description='Control NetworkManager to stay off some networks')
+parser.add_argument('ipranges', metavar='IPv4range', type=str, nargs='+',
+                   help='IPv4 range/mask to disconnect automatically. e.g. "10.11.12.0/24"')
+parser.add_argument('-v', '--verbose', dest='verbose', action='store_true',
+                   help='Set debug level to DEBUG (default INFO)')
+
+parser.description="""Network Manager Telekinesis - Interdicts connections to unwanted networks"""
+parser.epilog="""(Copyleft) 2012 Mmoebius/ALUG
+License: GPLv3 http://www.gnu.org/licenses/gpl.html"""
+
+args = parser.parse_args()
+
+if args.verbose:
+  logger.level=logging.DEBUG
+  logger.debug('Verbose debug messages')
+
+IPv4unwanted=args.ipranges
+
+NMdevtype = { 1: "Ethernet",
+             2: "Wi-Fi",
+             5: "Bluetooth",
+             6: "OLPC",
+             7: "WiMAX",
+             8: "Modem",
+             9: "InfiniBand",
+             10: "Bond",
+             11: "VLAN",
+             12: "ADSL" }
+
+NMstate = { 0: "Unknown",
+           10: "Unmanaged",
+           20: "Unavailable",
+           30: "Disconnected",
+           40: "Prepare",
+           50: "Config",
+           60: "Need Auth",
+           70: "IP Config",
+           80: "IP Check",
+           90: "Secondaries",
+           100: "Activated",
+           110: "Deactivating",
+           120: "Failed" }
+
+bus = dbus.SystemBus()
+
+# Get a proxy for the base NetworkManager object
+proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager")
+manager = dbus.Interface(proxy, "org.freedesktop.NetworkManager")
+
+def handle_Carrier(sender=None,**kwargs):
+  logger.debug("handle_Carrier from %s with %s",sender,pformat(kwargs))
+
+def handle_PropertiesChanged(sender=None,**kwargs):
+  logger.debug("handle_PropertiesChanged from %s with %s",sender,pformat(kwargs))
+
+def getProp(oPath,propIface,propName):
+  """Gets a 'org.freedesktop.DBus.Properties' from any interface on any object path 'org.freedesktop.NetworkManager' serves """
+  proxy    = bus.get_object("org.freedesktop.NetworkManager", oPath)
+  proxy_if = dbus.Interface(proxy, "org.freedesktop.DBus.Properties")
+  props    = proxy_if.Get(propIface, propName)
+  return props
+
+def getAllProps(oPath,propIface):
+  """Gets all 'org.freedesktop.DBus.Properties' from any interface on any object path 'org.freedesktop.NetworkManager' serves """
+  proxy    = bus.get_object("org.freedesktop.NetworkManager", oPath)
+  proxy_if = dbus.Interface(proxy, "org.freedesktop.DBus.Properties")
+  props    = proxy_if.GetAll(propIface)
+  return props
+
+#IP Address format conversions:
+def IpDbus2Tuple(IpDbus):
+  return unpack('>BBBB',pack('>L',IpDbus)) #dbus order to tuple
+
+def IpDbus2Int(IpDbus):
+  return unpack('=L',pack('>L',IpDbus))[0] #dbus order to and'able int
+
+def IpInt2Tuple(IpInt):
+  return unpack('>BBBB',pack('=L',IpInt))
+
+def IpStr2Tuple(IpStr):
+  return map(int,IpStr.split('.',3))
+
+def IpTuple2String(IpTuple):
+  return ".".join(map(str,IpTuple[::-1]))
+
+def IpTuple2Int(IpTuple):
+  ipa=0
+  for i in [0,1,2,3]:
+    ipa+=int(IpTuple[i])<<(24-8*i)
+  return ipa
+
+def IpMaskStr2StrA(IpMaskStr):
+  return IpMaskStr.rsplit('/',1)
+
+def IpStr2Tuple(IpStr):
+  tupl=map(int,IpStr.split('.',3))
+  for i in tupl:
+    if (0>i) or (255<i):
+      raise ValueError("Ip address quad not in range 0..255: %d"%i)
+  return tupl
+
+def IpGetMasked(adr,mask):
+  # mask two IP addresses in 'int' - style. All host-specific bits cleared
+  return adr&(2**32-2**(32-mask)) #cutting at the right end
+
+def IpGetAntiMasked(adr,mask):
+  # return all nonmasked bits set '1'. All host-specific bits set
+  return adr|(2**(32-mask)-1) #cutting at the right end
+
+def handle_NotifyUserAction(replaces_id,ActionStrA):
+  global SessionBusListener
+  global DoDisableUnwanted
+  logger.debug('handle_NotifyUserAction: got %s %s',str(replaces_id),str(ActionStrA))
+  if 'Mops-off-wantMops' in ActionStrA:
+    DoDisableUnwanted=False
+    logger.warn('User stops disabling networks.')
+  
+def NotifyUser():
+  global SessionBusListener
+  global DoDisableUnwanted
+  sbus = dbus.SessionBus()
+  oNotifier = sbus.get_object("org.freedesktop.Notifications", "/org/freedesktop/Notifications")
+  iNotifier=dbus.Interface(oNotifier, "org.freedesktop.Notifications")
+  
+  
+  if SessionBusListener is None:
+    SessionBusListener = sbus.add_signal_receiver(handle_NotifyUserAction, signal_name="ActionInvoked", 
+                        dbus_interface="org.freedesktop.Notifications" )
+    logger.debug('Added Dbus listener for session bus: %s',str(SessionBusListener)) 
+
+  NotifyOptionsArray=[]  
+# Uncomment these 4 Lines if you want to be able to turn off disconnecting MoPS Networks
+#  if DoDisableUnwanted:
+#    NotifyOptionsArray=[
+#        'Mops-off-Ok', 'Ok',
+#        'Mops-off-wantMops','MoPS nicht mehr trennen'
+#      ]
+
+  sleep(3) # Wait until nm-dispatcher sends it smessage, do not overflood the NotifyOS, try not to get buried.
+
+  iNotifier.Notify(
+    "nmtelekinesis", # Applicateion Identifier
+    0,               # replaces_id (hardcoded)
+                     # Note: if replaces_id is 0, the return value is a UINT32 that represent the notification. 
+    "network-error", # "notification-network-disconnected",
+    "Forced MoPS disconnect",
+    u"""Das MoPS Netzwerk ist während der Installation
+unerwuenscht. Es wurde automatisch getrennt.
+
+Bitte aktiviere das Eduroam-Netzwerk gemäß 
+Anleitung mit 802.1X Authentifikation.
+
+Frage ein Installhelferhörnchen, 
+falls Du dabei Hilfe brauchst.""",
+    NotifyOptionsArray,
+    {}, #Application specific hint parameter
+    30000 # OSD Notifier will not take long times
+  )
+
+def WarnUser():
+  sbus = dbus.SessionBus()
+  oNotifier = sbus.get_object("org.freedesktop.Notifications", "/org/freedesktop/Notifications")
+  iNotifier=dbus.Interface(oNotifier, "org.freedesktop.Notifications")
+  sleep(3)
+  iNotifier.Notify(
+    "nmtelekinesis", # Applicateion Identifier
+    0,               # replaces_id (hardcoded)
+                     # Note: if replaces_id is 0, the return value is a UINT32 that represent the notification. 
+    "network", # "notification-network-disconnected",
+    "MoPS discovered",
+    u"""Das MoPS Netzwerk ist während der Installation
+unerwuenscht. Du bist gewarnt.
+
+Bitte aktiviere das Eduroam-Netzwerk gemäß 
+Anleitung mit 802.1X Authentifikation.
+
+Frage ein Installhelferhörnchen, 
+falls Du dabei Hilfe brauchst.""",
+    [],
+    {}, #Application specific hint parameter
+    30000 # OSD Notifier will not take long times
+  )
+
+def DisableAutoConnect(oConn):
+  """Disable AutoConnect for the currently active setting object in oConn"""
+  try:
+    Psetting=getProp(oConn,"org.freedesktop.NetworkManager.Connection.Active",'Connection')
+    proxy    = bus.get_object("org.freedesktop.NetworkManager", Psetting)
+    proxy_if = dbus.Interface(proxy, "org.freedesktop.NetworkManager.Settings.Connection")
+    props    = proxy_if.GetSettings()    # read
+    logger.debug('DisableAutoConnect: Got settings %s',pformat(props))
+    props['connection']['autoconnect']=0 # modify
+    proxy_if.Update(props)               # write. Simple.
+  except Exception as err:
+    logger.warn('Error setting Autocconnect false for %s: (%s)',oConn,str(err))
+  
+
+def DisconnectDevice(oPath, oConn):
+  global DoDisableUnwanted
+  if DoDisableUnwanted:
+    logger.debug('Disconnecting %s',str(oPath))
+    proxy    = bus.get_object("org.freedesktop.NetworkManager", oPath)
+    proxy_if = dbus.Interface(proxy, "org.freedesktop.NetworkManager.Device")
+    # about to disconnect something.
+    # See if there is a setting that can be set to "autoconnect=false" along with this
+    DisableAutoConnect(oConn)
+    #result = "Demo-NoDisconnect"
+    result = "failed"
+    result    = proxy_if.Disconnect()
+    logger.info('Disconnected %s result %s',str(oPath),result)
+    NotifyUser()
+  else:
+    WarnUser()
+    logger.info('Not disconnecting %s (DoDisableUnwanted is false)',str(oPath))
+
+def ScanIp4Config2(oIp4Config, oDevice, oConn):
+  try:
+    Pip4 = getProp(oIp4Config,"org.freedesktop.NetworkManager.IP4Config",'Addresses')
+  except dbus.exceptions.DBusException:
+    logger.debug("ScanIp4Config2(oDevice %s, oIp4Config %s, oConn %s): no IP4Config",oIp4Config, oDevice, oConn)
+    return
+
+  CanDisconnect=False
+  for addr in Pip4:
+    logger.debug(
+      'IP Address: %s/%d gw:%s',
+      IpTuple2String(IpDbus2Tuple(addr[0])),
+      addr[1],
+      IpTuple2String(IpDbus2Tuple(addr[2]))
+    )
+    # check ip range against known unwanted range
+    ipa=IpDbus2Int(addr[0])
+    if (0>ipa) or (2**32<ipa):
+      logger.warn('IPv4 address exceeds range: %d',ipa)
+      return
+    
+    for (iplo,iphi) in IPv4unwantedRng:
+      if (ipa>=iplo) and (ipa<=iphi):
+        logger.info('Detected ip in unwanted range: %s <= %s <= %s on %s',
+          IpTuple2String(IpInt2Tuple(iplo)),
+          IpTuple2String(IpInt2Tuple(ipa)),
+          IpTuple2String(IpInt2Tuple(iphi)),
+          str(oDevice)
+          )
+        CanDisconnect=True
+  if CanDisconnect:
+    DisconnectDevice(oDevice, oConn)
+  return CanDisconnect
+
+def ScanActiveDevice2(adev,aconn):
+  logger.debug("Examining device: %s", str(adev))
+  # IPv4Config may not be available instantly
+  pDev = getAllProps(adev,"org.freedesktop.NetworkManager.Device")
+  logger.debug('dev props %s',pDev)
+  if pDev.has_key('Ip4Config'):
+    oIPv4=pDev['Ip4Config']
+    logger.debug('dev props ipv4config %s',oIPv4)      
+    ScanIp4Config2(oIPv4,adev,aconn)
+
+def ScanActiveConnections2(ActiveConnections):
+  """Scans an array of connection objects for unwanted IP addresses"""
+  for aconn in ActiveConnections:
+    try:
+      logger.debug("Examining connection: %s", str(aconn))
+      # read props from the Active Connection
+      Pconn = getProp(aconn,"org.freedesktop.NetworkManager.Connection.Active",'Devices')
+      Pmaster = getProp(aconn,"org.freedesktop.NetworkManager.Connection.Active",'Master')
+      if str(Pmaster) in map(str,ActiveConnections):    
+        logger.debug("connection: %s has a master device %s that is examined elsewhere. Stop.", 
+          str(aconn),
+          str(Pmaster)
+        )
+        logger.debug("other location is %s in %s",sAconn,str(map(str,aconn)))
+        Pconn=[]
+        break
+      
+      for adev in Pconn:
+	ScanActiveDevice2(adev,aconn)
+              
+    except Exception as err:
+      logger.warn('Exception while examining connection %s: >>>%s<<<',
+        str(aconn),
+        str(err),
+      )
+
+def handle_NmPropertiesChanged(sender=None,*args,**kwargs):
+  logger.debug("handle_NmPropertiesChanged with %s and %s and %s",str(sender),str(args),str(kwargs))
+  logger.debug("handle_NmPropertiesChanged keys %s",str(sender.keys()))
+  # check if new connection active
+  if sender.has_key('ActiveConnections'):
+    conn=sender['ActiveConnections']
+    logger.info("Scanning ActiveConnections: %s",str(conn))
+    ScanActiveConnections2(conn)
+  if sender.has_key('Ip4Config'):
+    ipv4cfg=sender['Ip4Config']
+    logger.info("Scanning Ip4Config: %s",str(ipv4cfg))
+    ScanIp4Config2(ipv4cfg)
+  if sender.has_key('State'):
+    try:
+      StateHint=NMstate[sender['State']]
+    except KeyError:
+      StateHint='<unknown>'
+    logger.debug('State Change to >>>%s<<< (%s)',str(sender['State']),StateHint)
+    
+def NmStateStr(iState):
+  try:
+    return NMstate[iState]
+  except KeyError:
+    return '<unknown>'
+
+def handle_NmDeviceStateChanged(sNew,sOld,sReason,**kwargs):
+  logger.debug("handle_NmDeviceStateChanged with %s",str(kwargs))
+  logger.debug("handle_NmDeviceStateChanged %s (%d) -> %s (%d) Reason: %d",
+               NmStateStr(sOld), sOld,   NmStateStr(sNew), sNew, sReason  )
+  if kwargs.has_key('oPath'):
+    oPath=kwargs['oPath']
+    if 100 == sNew:
+      logger.info("Scanning Activated Device: %s",str(oPath))
+      # need aconn so scan.
+      oAConn=getProp(oPath,'org.freedesktop.NetworkManager.Device','ActiveConnection')
+      ScanActiveDevice2(oPath,oAConn)
+
+#Device-Add is not yet required to be watch for
+#def handle_addDevice(oDev,*args):
+#  logger.debug("handle_addDevice from %s with %s",str(oDev),str(args))
+
+def ParseIPv4unwantedRng(IpStrList):
+  """filling IPv4unwantedRng from IPv4unwanted"""
+  global IPv4unwantedRng
+  for s in IpStrList:
+    try:
+      logger.debug('Unwanted IP: parsing >>>%s<<<',s)
+      [ips,masks]=IpMaskStr2StrA(s)
+      mask=int(masks)
+      ip=IpTuple2Int(IpStr2Tuple(ips))
+      #logger.debug('Unwanted IP %s / %d',str(ip),mask)
+      if (0>mask) or (32<mask):
+        raise ValueError('Mask range 0..32 error')
+      if (0>ip) or (2**32<ip):
+        raise ValueError('ip range 0..2^32 error')
+      iplow=IpGetMasked(ip,mask)
+      iphigh=IpGetAntiMasked(ip,mask)
+      logger.info('Unwanted IP range %s - %s',IpTuple2String(IpInt2Tuple(iplow)),IpTuple2String(IpInt2Tuple(iphigh)))
+      IPv4unwantedRng.append((iplow,iphigh))
+    except ValueError as err:
+      logger.warn('That is not a valid ip/mask: >>>%s<<< (%s)',str(s),err.message)
+
+logger.debug("Startup - preparing unwanted address ranges")
+ParseIPv4unwantedRng(IPv4unwanted)
+
+if len(IPv4unwantedRng)<1:
+  logger.warn('No unwanted IP range given. Quit.')
+  quit(1)
+
+# Adding bus signal receivers
+# See interface spec at http://projects.gnome.org/NetworkManager/developers/api/09/spec.html#org.freedesktop.NetworkManager
+# Chapter "Signal" -> defines "DeviceAdded" on the interface "org.freedesktop.NetworkManager"
+
+#Device-Add is not yet required to be watch for 
+#bus.add_signal_receiver(handle_addDevice, signal_name="DeviceAdded", 
+#                        dbus_interface="org.freedesktop.NetworkManager" )
+
+bus.add_signal_receiver(handle_NmPropertiesChanged, signal_name="PropertiesChanged", 
+                        dbus_interface="org.freedesktop.NetworkManager" )
+
+# see path_keyword etc. in http://dbus.freedesktop.org/doc/dbus-python/api/dbus.service-module.html
+bus.add_signal_receiver(handle_NmDeviceStateChanged, signal_name="StateChanged", 
+                        dbus_interface="org.freedesktop.NetworkManager.Device",
+                        path_keyword='oPath')
+
+#Device-Add is not yet required to be watch for 
+## Adding all devices via the DeviceAdded callback
+#Devices=manager.GetDevices()
+#logger.debug("Startup - getting Devices: %s",str(Devices))
+#for oDev in Devices:
+#  handle_addDevice(oDev) 
+
+ConnAct=getProp('/org/freedesktop/NetworkManager','org.freedesktop.NetworkManager','ActiveConnections')
+logger.debug("Startup - getting active Connections: %s",str(ConnAct))
+# plug that into the active connection changed handler
+ScanActiveConnections2(ConnAct)
+
+loop = gobject.MainLoop()
+logger.debug("Entering MainLoop")
+loop.run() # To stop, call loop.quit().
+
+#end;
diff --git a/UbuntuCustomizationKit/customize-lip/no-bootloader-icon/25adduser b/UbuntuCustomizationKit/customize-lip/no-bootloader-icon/25adduser
new file mode 100755
index 0000000000000000000000000000000000000000..0462c5f5c608559fdb5386ed8d2b423594e97f20
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/no-bootloader-icon/25adduser
@@ -0,0 +1,126 @@
+#!/bin/sh
+
+PREREQ=""
+DESCRIPTION="Adding live session user..."
+
+prereqs()
+{
+       echo "$PREREQ"
+}
+
+case $1 in
+# get pre-requisites
+prereqs)
+       prereqs
+       exit 0
+       ;;
+esac
+
+. /scripts/casper-functions
+load_confmodule
+
+log_begin_msg "$DESCRIPTION"
+
+debconf_backup () {
+    local question backup
+    for question; do
+	backup="$question-casper-backup"
+	db_register debian-installer/dummy "$backup"
+	db_get "$question"
+	db_set "$backup" "$RET"
+	db_fget "$question" seen
+	db_fset "$backup" seen "$RET"
+    done
+}
+
+debconf_restore () {
+    local question backup
+    for question; do
+	backup="$question-casper-backup"
+	db_get "$backup"
+	db_set "$question" "$RET"
+	db_fget "$backup" seen
+	db_fset "$question" seen "$RET"
+	db_unregister "$backup"
+    done
+}
+
+debconf_backup \
+    passwd/root-password-crypted \
+    passwd/root-password passwd/root-password-again \
+    passwd/user-password-crypted \
+    passwd/user-password passwd/user-password-again \
+    passwd/user-fullname passwd/username passwd/user-uid
+
+# U6aMy0wojraho is just a blank password
+db_set passwd/root-password-crypted '*'
+db_set passwd/user-password-crypted U6aMy0wojraho
+db_set passwd/user-fullname "$USERFULLNAME"
+db_set passwd/username "$USERNAME"
+db_set passwd/user-uid 999
+
+chroot /root /usr/lib/user-setup/user-setup-apply > /dev/null
+
+# Clear out debconf database again to avoid confusing ubiquity later.
+debconf_restore \
+    passwd/root-password-crypted \
+    passwd/root-password passwd/root-password-again \
+    passwd/user-password-crypted \
+    passwd/user-password passwd/user-password-again \
+    passwd/user-fullname passwd/username passwd/user-uid
+
+if [ -d /root/etc/sudoers.d/ ]; then
+    echo "${USERNAME}  ALL=(ALL) NOPASSWD: ALL" > /root/etc/sudoers.d/casper
+fi
+
+LTS="$(cut -d' ' -f3 /root/cdrom/.disk/info 2>/dev/null)" || LTS=
+RELEASE="$(cut -d' ' -f1-2 /root/cdrom/.disk/info 2>/dev/null | sed 's/-/ /')" || RELEASE=
+if [ "$LTS" = "LTS" ] && [ -n "$RELEASE" ]; then
+	RELEASE="$RELEASE LTS"
+fi
+for file in /usr/share/applications/ubiquity.desktop /usr/share/applications/kde4/ubiquity-kdeui.desktop /usr/share/applications/kde4/ubiquity-kdeui-no-bootloader.desktop; do
+    if [ -f "/root/$file" ]; then
+        sed -i "s/RELEASE/$RELEASE/" "/root$file"
+        chroot /root install -d -o $USERNAME -g $USERNAME /home/$USERNAME/Desktop
+        chroot /root install -D -o $USERNAME -g $USERNAME $file /home/$USERNAME/Desktop/$(basename "$file")
+    fi
+done
+
+if [ -L /root/home/$USERNAME/Examples ]; then
+    chroot /root install -o $USERNAME -g $USERNAME -d /home/$USERNAME/Desktop/
+    mv /root/home/$USERNAME/Examples /root/home/$USERNAME/Desktop/
+fi
+
+if [ -f /root/home/$USERNAME/examples.desktop ]; then
+    chroot /root install -o $USERNAME -g $USERNAME -d /home/$USERNAME/Desktop/
+    mv /root/home/$USERNAME/examples.desktop /root/home/$USERNAME/Desktop/
+fi
+
+#GDM
+if [ -d /root/etc/gdm ]; then
+    sed -i '/^[UG]ID_MIN/s/\<1000$/ 999/' /root/etc/login.defs
+fi
+
+#Kubuntu
+if [ -f "/root/usr/bin/plasma-desktop" ]; then
+    if [ -f "/root/usr/share/kde4/apps/khelpcenter/plugins/kubuntu/a_welcome.desktop" ]; then
+      chroot /root install -d -o $USERNAME -g $USERNAME /home/$USERNAME/Desktop
+      chroot /root install -D -o $USERNAME -g $USERNAME /usr/share/kde4/apps/khelpcenter/plugins/kubuntu/a_welcome.desktop /home/$USERNAME/Desktop/a_welcome.desktop
+    fi
+fi
+
+#Ubuntu MID wants to be installed with --automatic
+if [ -f "/root/usr/share/ubuntu-mid-default-settings/mid-gui-start" ]; then
+  if [ -f "/root/usr/share/applications/ubiquity.desktop" ]; then
+    sed -i 's/--desktop/--automatic --desktop/' "/root/usr/share/applications/ubiquity.desktop"
+  fi
+fi
+
+#Ubuntu MID uses kourou, and the ubiquity icon should be easy to find
+if [ -f "/root/usr/lib/hildon-desktop/kourou.py" ]; then
+  if [ -f "/root/etc/xdg/menus/home.menu" ]; then
+    sed -i '/<\/Include>/i\		<Filename>ubiquity.desktop</Filename>' "/root/etc/xdg/menus/home.menu"
+  fi
+fi
+
+log_end_msg
diff --git a/UbuntuCustomizationKit/customize-lip/no-bootloader-icon/ubiquity-gtkui-no-bootloader.desktop b/UbuntuCustomizationKit/customize-lip/no-bootloader-icon/ubiquity-gtkui-no-bootloader.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..5cd4718f7f716d3b6dbdb73a5866b36aa487548e
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/no-bootloader-icon/ubiquity-gtkui-no-bootloader.desktop
@@ -0,0 +1,130 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+# Do not translate the word "RELEASE".  It is used as a marker by casper.
+Name=Install RELEASE (No bootloader)
+Name[am]=የተለቀቀውን መግጠሚያ
+Name[ar]=ثبّت RELEASE
+Name[ast]=Instalar RELEASE
+Name[be]=Усталяваць RELEASE
+Name[bg]=Инсталиране на RELEASE
+Name[bn]=RELEASE ইনস্টল করুন
+Name[bs]=Instaliraj izdanje
+Name[ca]=Instal·la la versió RELEASE
+Name[cs]=Nainstalovat RELEASE
+Name[da]=Installér RELEASE
+Name[de]=RELEASE installieren (kein Bootloader)
+Name[el]=Εγκατάσταση RELEASE
+Name[eo]=Instali RELEASE
+Name[es]=Instalar RELEASE
+Name[et]=Paigalda RELEASE
+Name[eu]=Instalatu RELEASE
+Name[fi]=Asenna RELEASE
+Name[fr]=Installer  RELEASE
+Name[ga]=Suiteáil RELEASE
+Name[gl]=Instalar RELEASE
+Name[gu]=રિલીઝ નું સ્થાપન કરો.
+Name[he]=התקנת RELEASE
+Name[hi]=प्रकाशन को संस्थापित करें
+Name[hr]=Instaliraj RELEASE
+Name[hu]=RELEASE telepítése
+Name[id]=Pasang RELEASE
+Name[it]=Installa RELEASE
+Name[ja]=RELEASE のインストール
+Name[ka]=RELEASE-ის დაყენება
+Name[kk]=RELEASE орнату
+Name[km]=ដំឡើង​ឯកសារ​ចេញ​ផ្សាយ
+Name[ko]=RELEASE 설치
+Name[ku]=RELEASE saz bike
+Name[lt]=Įdiegti RELEASE į kompiuterį
+Name[lv]=Instalēt RELEASE
+Name[mk]=Инсталирај RELEASE
+Name[ml]=RELEASE സജ്ജമാക്കുക
+Name[mr]=स्थापित RELEASE
+Name[nl]=RELEASE installeren
+Name[pa]=RELEASE ਰੀਲਿਜ਼
+Name[pl]=Zainstaluj RELEASE
+Name[pt]=Instalar RELEASE
+Name[pt_BR]=Instalar o RELEASE
+Name[ro]=Instalare RELEASE
+Name[ru]=Установить RELEASE
+Name[sk]=Inštalovať RELEASE
+Name[sl]=Namesti RELEASE
+Name[sq]=Instalo RELEASE
+Name[sr]=Инсталирајте RELEASE
+Name[sv]=Installera RELEASE
+Name[ta]=RELEASEஐ நிறுவு
+Name[th]=ติดตั้ง RELEASE
+Name[tl]=Iluklok ang RELEASE
+Name[tr]=RELEASE Kur
+Name[uk]=Встановити RELEASE
+Name[vi]=Cài đặt RELEASE
+Name[zh_CN]=安装 RELEASE
+Name[zh_TW]=安裝 RELEASE
+Comment=Install this system permanently to your hard disk
+Comment[am]=ይኼን ሲስተም ሀርድ ዲስክዎ ላይ በቋሚነት ይጫኑት
+Comment[ar]=ثبّت هذا النظام على القرص الصلب
+Comment[ast]=Instalar permanentemente esti sistema nel to discu duru
+Comment[be]=Усталяваць сістэму на жорсткі дыск
+Comment[bg]=Инсталиране на тази система за постоянно на твърдия диск
+Comment[bn]=এই সিস্টেমটি আপনার হার্ডডিস্কে স্থায়ীভাবে ইনস্টল করুন।
+Comment[bs]=Instaliraj ovaj sistem trajno na hard disk
+Comment[ca]=Instal·leu aquest sistema permanentment al vostre disc dur
+Comment[cs]=Nainstalovat tento systém natrvalo na váš disk
+Comment[da]=Installér dette system permanent på din harddisk
+Comment[de]=Dieses System dauerhaft auf der Festplatte installieren
+Comment[el]=Εγκαταστήστε αυτό το σύστημα μόνιμα στο σκληρό σας δίσκο
+Comment[eo]=Instali ĉi tiun sistemon daŭre en via disko
+Comment[es]=Instalar este sistema permanentemente en su disco duro
+Comment[et]=Paigalda see süsteem jäädavalt oma kõvakettale
+Comment[eu]=Sistema hau betiko instalatu disko gogorrean
+Comment[fi]=Asenna tämä järjestelmä pysyvästi kiintolevyllesi
+Comment[fr]=Installer ce système de façon permanente sur votre disque dur
+Comment[ga]=Suiteáil an córas seo go buan ar do chruadhiosca
+Comment[gl]=Instalar o sistema de xeito permanente no disco ríxido
+Comment[gu]=આ સિસ્ટમ તમારી હાર્ડ ડિસ્ક પર હંમેશ માટે સ્થાપિત કરો
+Comment[he]=התקנת המערכת באופן קבוע על הכונן הקשיח
+Comment[hi]=इस तंत्र को आपके हार्ड डिस्क में स्थायी रूप से संस्थापित करें
+Comment[hr]=Trajno instaliraj sustav na čvrsti disk
+Comment[hu]=A rendszer telepítése merevlemezre
+Comment[id]=Memasang sistem ini secara permanen pada diska Anda
+Comment[it]=Installa questo sistema in modo permanente sul disco rigido
+Comment[ja]=このシステムをハードディスクにインストールします
+Comment[ka]=მოცემული სისტემის მყარ დისკზე ჩაყენება
+Comment[kk]=Осы жүйені қатқыл дискіңізге тұрақты орнату
+Comment[km]=ដំឡើង​ប្រព័ន្ធ​នេះ​ជា​អចិន្ត្រៃយ៍​ទៅ​កាន់​ថាស​រឹង​របស់​អ្នក
+Comment[ko]=이 시스템을 당신의 하드 디스크에 설치합니다.
+Comment[ku]=Sîstemê di hard dîskê xwe de saz bike
+Comment[lt]=Įdiegti Linux operacinę sistemą į kompiuterio (standųjį) diską
+Comment[lv]=Instalēt šo sistēmu cietajā diskā
+Comment[mk]=Инсталирајте го системот трајно на Вашиот тврд диск
+Comment[ml]=സ്ഥിരമായി ഹാര്‍ഡ് ഡിസ്കിലേക്ക് ഇന്‍സ്റ്റാള്‍ ചെയ്യുക
+Comment[mr]=ही प्रणाली कायमची तुमच्या हार्ड डिस्कवर स्थापित करा
+Comment[ne]=यो प्रणाली तपाईको हार्ड डिस्कमा स्थाई रुपमा प्रतिस्थापन गर्नुहोस्
+Comment[nl]=Dit systeem definitief op uw harde schijf installeren
+Comment[pa]=ਇਹ ਸਿਸਟਮ ਪੱਕੇ ਤੌਰ ਉੱਤੇ ਆਪਣੀ ਹਾਰਡ ਡਿਸਕ ਉੱਤੇ ਇੰਸਟਾਲ
+Comment[pl]=Instaluje system na dysku twardym
+Comment[pt]=Instalar este sistema permanentemente no seu disco rígido
+Comment[pt_BR]=Instalar este sistema de maneira permanente no seu disco rígido
+Comment[ro]=Instalați acest sistem pe discul calculatorului
+Comment[ru]=Установить эту систему на жёсткий диск
+Comment[sk]=Nainštalovať systém natrvalo na pevný disk
+Comment[sl]=Trajno namesti sistem na trdi disk
+Comment[sq]=Instalo këtë sistem përgjithmonë në Hard Disk
+Comment[sr]=Инсталирајте овај систем трајно на ваш чврсти диск
+Comment[sv]=Installera detta system permanent på din hårddisk
+Comment[ta]=இந்த நிலையை நிரந்தரமாக தங்களது கணினியில் நிறுவுக
+Comment[th]=ติดตั้งระบบนี้อย่างถาวรลงบนฮาร์ดดิสก์ของคุณ
+Comment[tl]=Iluklok ng permanente ang systema sa iyong hard disk
+Comment[tr]=Bu sistemi sabit diskinize kalıcı olarak kurun
+Comment[uk]=Встановити цю систему на жорсткий диск
+Comment[vi]=Cài hệ thống vào đĩa cứng
+Comment[zh_CN]=将这个系统永久安装在您的硬盘上
+Comment[zh_TW]=將此系統安裝到您的硬碟中
+Exec=ubiquity --no-bootloader --desktop %k gtk_ui
+Icon=ubiquity
+Terminal=false
+Categories=GTK;System;Settings;
+OnlyShowIn=GNOME;XFCE;Unity;
+#X-Ubuntu-Gettext-Domain=ubiquity-desktop
+X-Ayatana-Appmenu-Show-Stubs=False
diff --git a/UbuntuCustomizationKit/customize-lip/no-bootloader-icon/ubiquity-kdeui-no-bootloader.desktop b/UbuntuCustomizationKit/customize-lip/no-bootloader-icon/ubiquity-kdeui-no-bootloader.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..134d86f67dcae995c8c4a679e526776e54b95513
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/no-bootloader-icon/ubiquity-kdeui-no-bootloader.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+# Do not translate the word "Kubuntu 13.10".  It is used as a marker by casper.
+Name=Install Kubuntu 13.10 (No Bootloader)
+Comment=Install this system permanently to your hard disk
+Keywords=ubiquity;
+Exec=ubiquity kde_ui --no-bootloader
+Icon=ubiquity-kde
+Terminal=false
+Categories=KDE;Qt;System;
+OnlyShowIn=KDE;
+X-Ubuntu-Gettext-Domain=ubiquity-desktop
\ No newline at end of file
diff --git a/UbuntuCustomizationKit/customize-lip/no-bootloader-icon/ubiquity-kdeui.desktop b/UbuntuCustomizationKit/customize-lip/no-bootloader-icon/ubiquity-kdeui.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..9a5940ca692a77e4df816108de644cf3f49513e0
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/no-bootloader-icon/ubiquity-kdeui.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+# Do not translate the word "Kubuntu 13.10".  It is used as a marker by casper.
+Name=Install Kubuntu 13.10
+Comment=Install this system permanently to your hard disk
+Keywords=ubiquity;
+Exec=ubiquity kde_ui
+Icon=ubiquity-kde
+Terminal=false
+Categories=KDE;Qt;System;
+OnlyShowIn=KDE;
+X-Ubuntu-Gettext-Domain=ubiquity-desktop
\ No newline at end of file
diff --git a/UbuntuCustomizationKit/customize-lip/remaster_initrd_standalone.sh b/UbuntuCustomizationKit/customize-lip/remaster_initrd_standalone.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a29b25d498ba15bbc0eaa3241fe8947671833a4c
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/remaster_initrd_standalone.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+set -e
+WORKDIR="$(pwd)"
+
+function unpack_initrd
+{
+    FILE="$1"
+    FOLDER="$2"
+    mkdir -p "$FOLDER/remaster-initrd"
+    pushd "$FOLDER/remaster-initrd" > /dev/null
+    lzma -d < "$FILE" | cpio -i
+    popd > /dev/null
+}
+
+function pack_initrd
+{
+    OUTDIR="$1"
+    INDIR="$2"
+    if [ ! -d "$INDIR/remaster-initrd" ]; then
+        echo "Temp directory does not exist. Bug?"
+        exit 1
+    fi
+    pushd "$INDIR/remaster-initrd" > /dev/null
+    find | cpio -H newc -o | lzma -z > "$OUTDIR/initrd.lz"
+    popd > /dev/null
+}
+
+if [ $# -eq 0 ]; then
+    echo "Usage: $0 INITRD_FILE PATH_TO_CUSTOMIZE_LIP"
+    exit 1
+fi
+
+INITRD_FILE="$1"
+PATH_TO_CUSTOMIZE_LIP="$2"
+
+if [ ! -f "$INITRD_FILE" ]; then
+    echo "Initrd file '$INITRD_FILE' not found"
+    exit 1
+fi
+
+if [ ! -d "$PATH_TO_CUSTOMIZE_LIP" ]; then
+    echo "You must specify the path to the customize-lip folder"
+    exit 1
+fi
+
+TMPDIR="$(mktemp -d)"
+
+unpack_initrd "$INITRD_FILE" "$TMPDIR"
+pushd "$PATH_TO_CUSTOMIZE_LIP" > /dev/null
+. $PATH_TO_CUSTOMIZE_LIP/customize_initrd "$TMPDIR"
+popd > /dev/null
+pack_initrd "$WORKDIR" "$TMPDIR"
+echo "Ok, all done"
+exit 0
diff --git a/UbuntuCustomizationKit/customize-lip/remove_win32_files b/UbuntuCustomizationKit/customize-lip/remove_win32_files
new file mode 100644
index 0000000000000000000000000000000000000000..7cfab5b05d620d8c6f386273d5d507975cef115f
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/remove_win32_files
@@ -0,0 +1 @@
+yes
diff --git a/UbuntuCustomizationKit/customize-lip/rootfs-patches/ubiquity-apt-clone-fix.patch b/UbuntuCustomizationKit/customize-lip/rootfs-patches/ubiquity-apt-clone-fix.patch
new file mode 100644
index 0000000000000000000000000000000000000000..94c0ff23562b679913335764a1ea6ffcc53b98ab
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/rootfs-patches/ubiquity-apt-clone-fix.patch
@@ -0,0 +1,12 @@
+--- a/lib/partman/finish.d/01apt_clone_save	2013-01-12 03:31:22.000000000 +0000
++++ b/lib/partman/finish.d/01apt_clone_save	2013-04-06 16:23:16.103678237 +0000
+@@ -39,6 +39,9 @@
+ 	close_dialog
+ done
+ 
++#lip patch to prevent the apt-clone save call
++root=""
++
+ if [ -z "$root" ]; then
+ 	# The partition is going to be formatted; there's nothing to preserve.
+ 	exit 0
diff --git a/UbuntuCustomizationKit/customize-lip/run_manual_customizations b/UbuntuCustomizationKit/customize-lip/run_manual_customizations
new file mode 100644
index 0000000000000000000000000000000000000000..7ecb56eb3fa3fa6f19dd48bca9f971950b119ede
--- /dev/null
+++ b/UbuntuCustomizationKit/customize-lip/run_manual_customizations
@@ -0,0 +1 @@
+no
diff --git a/UbuntuCustomizationKit/lip-remaster b/UbuntuCustomizationKit/lip-remaster
new file mode 100755
index 0000000000000000000000000000000000000000..78c59fb1d4e8209778f90169061cf9ddf0583751
--- /dev/null
+++ b/UbuntuCustomizationKit/lip-remaster
@@ -0,0 +1,269 @@
+#!/bin/bash
+
+#======= CONFIG BEGIN =======
+UCK_BIN_DIR="/home/chris/uck/bin/uck"
+UCK_WORKAREA="/home/chris/uck" #only used to define other config items
+LOG_DIR="/var/log/uck/"
+
+#32bit
+REMASTER_HOME32="$UCK_WORKAREA"/remaster-home32
+REMASTER_ISO32="$UCK_WORKAREA/isos/precise-desktop-i386.iso"
+CUSTOMIZE_DIR32="$UCK_WORKAREA/customize-lip32"
+
+#64bit
+REMASTER_HOME64="$UCK_WORKAREA"/remaster-home64
+REMASTER_ISO64="$UCK_WORKAREA/isos/precise-desktop-amd64.iso"
+CUSTOMIZE_DIR64="$UCK_WORKAREA/customize-lip64"
+
+REMASTER_BOTH="$UCK_WORKAREA/remaster-homeall"
+REMASTER_BOTH_SOURCE="$REMASTER_HOME64"
+
+function lip_uck_remaster32_base()
+{
+	schroot --quiet -c uck32 -- "$UCK_BIN_DIR/uck-remaster" $@
+}
+
+function lip_uck_remaster64_base()
+{
+        $UCK_BIN_DIR/uck-remaster $@
+}
+
+#======= CONFIG END =======
+
+lip_ok() {
+  echo
+  echo -ne "\033[32;7m"    # gruen
+  echo -n "$@"
+  echo -e "\033[0m"       # normal
+}
+
+lip_err() {
+  echo
+  echo -ne "\033[31;7m"    # rot
+  echo -n "$@"
+  echo -e "\033[0m"       # normal
+}
+
+function lip_create_md5sums()
+{
+        pushd "$1/remaster-root"
+        find . -type f -print0 | sort -z | xargs -0 md5sum > "$2"
+        popd
+}
+
+#if [[ $EUID -ne 0 ]]
+#  then
+#    echo "Du bist nicht ROOT ... verwende \"sudo bash $0\" !"
+#    exit 1
+#fi
+
+function lip_clean_dir()
+{
+	echo "Cleaning $1, make sure there is nothing mounted!"
+        rm -rf "$1/remaster-iso/"
+        rm -rf "$1/remaster-initrd/"
+        rm -rf "$1/remaster-root/"
+        rm -rf "$1/remaster-root-home/"
+        rm -rf "$1/customization-scripts/"
+
+        lip_ok "OK"
+}
+
+function lip_clean32()
+{
+	lip_clean_dir "$REMASTER_HOME32"
+}
+
+function lip_clean64()
+{
+	lip_clean_dir "$REMASTER_HOME64"
+}
+
+function lip_cleanboth()
+{
+	echo "Cleaning $REMASTER_BOTH, make sure there is nothing mounted!"
+	rm -rf "$REMASTER_BOTH/remaster-root/"
+        rm -rf "$REMASTER_BOTH/remaster-iso/"
+	lip_ok "OK"
+}
+
+function lip_clean()
+{
+	lip_clean32
+	lip_clean64
+	lip_cleanboth
+}
+
+function lip_init()
+{
+	if [[ $EUID -ne 0 ]]
+	then
+		lip_err "Require root permissions..."
+		return 1
+	fi
+
+	mkdir -p "$LOG_DIR"
+
+	echo "Create REMASTER_HOME directories..."
+	mkdir -p "$REMASTER_HOME32"
+	mkdir -p "$REMASTER_HOME64"
+	lip_ok "OK."
+
+	echo "Checking iso images..."
+	test -e "$REMASTER_ISO32" && lip_ok "found 32 image!"
+	test -e "$REMASTER_ISO64" && lip_ok "found 64 image!"
+	lip_ok "OK."
+
+	echo "Checking customize directories..."
+	test -d "$CUSTOMIZE_DIR32" && lip_ok "found 32 customize dir!"
+	test -d "$CUSTOMIZE_DIR64" && lip_ok "found 64 customize dir!"
+	lip_ok "OK."
+
+	echo "Removing uck customize directories..."
+	rm -rf "$REMASTER_HOME32/customization-scripts/"
+	rm -rf "$REMASTER_HOME64/customization-scripts/"
+	lip_ok "OK"
+}
+
+function lip_uck_remaster32()
+{
+	pushd "$UCK_BIN_DIR"
+	lip_uck_remaster32_base "$REMASTER_ISO32" "$CUSTOMIZE_DIR32" $REMASTER_HOME32
+	popd
+}
+
+function lip_uck_remaster64()
+{
+        pushd "$UCK_BIN_DIR"
+	lip_uck_remaster64_base "$REMASTER_ISO64" "$CUSTOMIZE_DIR64" $REMASTER_HOME64
+	popd
+}
+
+function lip_uck_remaster_parallel()
+{
+	echo "OK you may follow the output with \"tail -f $LOG_DIR/uck<arch>.log\""
+	lip_uck_remaster32 &> "$LOG_DIR/uck32.log" &
+	lip_uck_remaster64 &> "$LOG_DIR/uck64.log" &
+	wait
+	echo "uck-remaster finished, see what we have ( or not )"
+}
+
+function lip_check_remaster_success()
+{
+	if [ ! -d "$REMASTER_HOME32/remaster-root" ] || [ ! -e "$REMASTER_HOME32/remaster-new-files/livecd.iso" ]
+	then
+		lip_err "uck-remaster (32bit) failed: could not find output files..."
+		return 1
+	fi
+
+	if [ ! -d "$REMASTER_HOME64/remaster-root" ] || [ ! -e "$REMASTER_HOME64/remaster-new-files/livecd.iso" ]
+	then
+        	lip_err "uck-remaster (64bit) failed: could not find output files..."
+        	return 1
+	fi
+
+	lip_ok "OK"
+}
+
+function lip_generate_md5()
+{
+	echo "Generating md5 sums for 32bit..."
+	lip_create_md5sums "$REMASTER_HOME32" "$REMASTER_BOTH/32.md5"
+	lip_ok "OK"
+	ls -lah "$REMASTER_BOTH/32.md5"
+	echo "Generating md5 sums for 64bit..."
+	lip_create_md5sums "$REMASTER_HOME64" "$REMASTER_BOTH/64.md5"
+	lip_ok "OK"
+	ls -lah "$REMASTER_BOTH/64.md5"
+}
+
+function lip_diff_md5()
+{
+	echo "Computing diff..."
+	diff --old-line-format="" --new-line-format="" --unchanged-line-format="%L" "$REMASTER_BOTH/32.md5" "$REMASTER_BOTH/64.md5" > "$REMASTER_BOTH/both.md5" || true
+	lip_ok "OK"
+	ls -lah "$REMASTER_BOTH/both.md5"
+}
+
+function lip_deduplicate_files()
+{
+	echo "Deduplicating files..."
+	mkdir -p "$REMASTER_BOTH/remaster-root/"
+	cut -d" " -f3- "$REMASTER_BOTH/both.md5" | tr \\n \\0 | (cd "$REMASTER_HOME64/remaster-root"; xargs -0 cp -v --parents -pt "$REMASTER_BOTH/remaster-root/" )
+	cut -d" " -f3- "$REMASTER_BOTH/both.md5" | tr \\n \\0 | (cd "$REMASTER_HOME32/remaster-root"; xargs -0 rm )
+	cut -d" " -f3- "$REMASTER_BOTH/both.md5" | tr \\n \\0 | (cd "$REMASTER_HOME64/remaster-root"; xargs -0 rm )
+	lip_ok "OK"
+}
+
+function lip_deduplicate()
+{
+	lip_generate_md5
+	lip_diff_md5
+	lip_deduplicate_files
+}
+
+function lip_prepare_isofs()
+{
+	echo "Creating final isofs..."
+	rm -rf "$REMASTER_BOTH/remaster-iso"
+	mkdir -p "$REMASTER_BOTH"
+	rsync -av --exclude="casper/*" "$REMASTER_HOME64/remaster-iso" "$REMASTER_BOTH/"
+	mkdir -p "$REMASTER_BOTH/remaster-iso/casper"
+	cp -v "$REMASTER_HOME64/remaster-iso/casper/filesystem.size" "$REMASTER_BOTH/remaster-iso/casper/"
+	cp -v "$REMASTER_HOME64/remaster-iso/casper/vmlinuz.efi" "$REMASTER_BOTH/remaster-iso/casper/vmlinuz64"
+	cp -v "$REMASTER_HOME32/remaster-iso/casper/vmlinuz" "$REMASTER_BOTH/remaster-iso/casper/vmlinuz32"
+	cp -v "$REMASTER_HOME64/remaster-iso/casper/initrd.lz" "$REMASTER_BOTH/remaster-iso/casper/initrd64.lz"
+	cp -v "$REMASTER_HOME32/remaster-iso/casper/initrd.lz" "$REMASTER_BOTH/remaster-iso/casper/initrd32.lz"
+
+	cp -v "$REMASTER_HOME32/remaster-iso/.disk/casper-uuid-generic" "$REMASTER_BOTH/remaster-iso/.disk/casper-uuid-generic-32"
+}
+
+function lip_mksquashfs()
+{
+	echo "mksquashfs lipcommon.squashfs"
+	mksquashfs "$REMASTER_BOTH/remaster-root" "$REMASTER_BOTH/remaster-iso/casper/lipcommon.squashfs" -comp xz
+	echo "mksquashfs lip32.squashfs"
+	mksquashfs "$REMASTER_HOME32/remaster-root" "$REMASTER_BOTH/remaster-iso/casper/lip32.squashfs" -comp xz
+	echo "mksquashfs lip64.squashfs"
+	mksquashfs "$REMASTER_HOME64/remaster-root" "$REMASTER_BOTH/remaster-iso/casper/lip64.squashfs" -comp xz
+
+	lip_ok "OK"
+	ls -lah "$REMASTER_BOTH/remaster-iso/casper"
+}
+
+function lip_full_run()
+{
+	$LIP_HELP lip_init
+	$LIP_HELP lip_clean
+	$LIP_HELP lip_uck_remaster64
+	$LIP_HELP lip_uck_remaster32
+	$LIP_HELP lip_check_remaster_success
+	$LIP_HELP lip_deduplicate
+	$LIP_HELP lip_prepare_isofs
+	$LIP_HELP lip_mksquashfs
+	$LIP_HELP lip_ok "done."
+}
+
+function lip_full_run_parallel()
+{
+	lip_init
+        lip_uck_remaster_parallel
+        lip_check_remaster_success
+        lip_deduplicate
+        lip_prepare_isofs
+        lip_mksquashfs
+	lip_ok "done."
+}
+
+function lip_command_order()
+{
+	echo "A full run consists of:"
+	LIP_HELP="echo"
+	lip_full_run
+	LIP_HELP=
+}
+
+lip_ok "LIP remaster helper functions loaded!"
+lip_command_order
+echo
+echo "Good Luck :-)"
diff --git a/UbuntuCustomizationKit/uck-increase-squashfs-compression.patch b/UbuntuCustomizationKit/uck-increase-squashfs-compression.patch
new file mode 100644
index 0000000000000000000000000000000000000000..702c94d8b070138d78f8503e1d9decb44398f920
--- /dev/null
+++ b/UbuntuCustomizationKit/uck-increase-squashfs-compression.patch
@@ -0,0 +1,11 @@
+--- a/libraries/remaster-live-cd.sh	2013-03-19 19:27:55.711312314 +0100
++++ b/libraries/remaster-live-cd.sh	2013-03-19 19:33:33.048317375 +0100
+@@ -514,7 +514,7 @@
+ 		if [ `echo -e "${SQUASHFS_VERSION}\n4.2" | sort | head -n1` = "4.2" ]; then
+ 			if [ `echo -e "${GUEST_KERNEL_VERSION}\n2.6.30" | sort | head -n1` = "2.6.30" ]; then
+ 				echo "Squashfs>=4.1, guest kernel>=2.6.30: Enabling XZ compression for squashfs..."
+-				EXTRA_OPTS="${EXTRA_OPTS} -comp xz"
++				EXTRA_OPTS="${EXTRA_OPTS} -comp xz -Xbcj x86 -Xdict-size 25% -b 1024K"
+ 			fi
+ 		fi
+ 
diff --git a/UbuntuCustomizationKit/uck-no-remove-rootfs.patch b/UbuntuCustomizationKit/uck-no-remove-rootfs.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1004dfd1c5ef9a4bad8df962526320da09a34b43
--- /dev/null
+++ b/UbuntuCustomizationKit/uck-no-remove-rootfs.patch
@@ -0,0 +1,39 @@
+--- a/libraries/remaster-live-cd.sh	(revision 474)
++++ b/libraries/remaster-live-cd.sh	(working copy)
+@@ -528,9 +533,10 @@
+ function remove_iso_remaster_dir()
+ {
+ 	if [ -e "$ISO_REMASTER_DIR" ] ; then
+-		echo "Removing ISO remastering dir..."
+-		remove_directory "$ISO_REMASTER_DIR" ||
+-			failure "Failed to remove directory $ISO_REMASTER_DIR, error=$?"
++		#echo "Removing ISO remastering dir..."
++		#remove_directory "$ISO_REMASTER_DIR" ||
++		#	failure "Failed to remove directory $ISO_REMASTER_DIR, error=$?"
++		true
+ 	fi
+ }
+ 
+@@ -538,16 +544,18 @@
+ {
+ 	if [ -e "$REMASTER_DIR" ] ; then
+ 		unmount_pseudofilesystems
+-		echo "Removing remastering root dir..."
+-		remove_directory "$REMASTER_DIR"
++		#echo Removing remastering root dir..."
++		#remove_directory "$REMASTER_DIR"
++		true
+ 	fi
+ }
+ 
+ function remove_remaster_initrd()
+ {
+ 	if [ -e  "$INITRD_REMASTER_DIR" ]; then
+-		echo "Removing initrd remastering dir..."
+-		remove_directory "$INITRD_REMASTER_DIR"
++		#echo "Removing initrd remastering dir..."
++		#remove_directory "$INITRD_REMASTER_DIR"
++		true
+ 	fi
+ }
+ 
diff --git a/patch_stick.sh b/patch_stick.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ccdfe278aa1bf7f7560da12fc1b03fbf63bad517
--- /dev/null
+++ b/patch_stick.sh
@@ -0,0 +1,36 @@
+#/bin/bash
+
+set -e
+
+DEVICE=$(blkid -t LABEL=MULTIBOOT -odevice)
+MPOINT=/mnt
+UPDATE_SCRIPT="./scripts/update_stick.sh"
+
+if [ ! $EUID -eq 0 ]; then
+    echo "You are not root..."
+    exit 1
+fi
+
+if [ -z $DEVICE ]; then
+    echo "No stick found..."
+    exit 1
+fi
+
+mount "$DEVICE" "$MPOINT"
+pushd "$MPOINT" > /dev/null
+
+if [ -e "$UPDATE_SCRIPT" ]; then
+    echo "Using $UPDATE_SCRIPT."
+    bash ./scripts/update_stick.sh
+else
+    echo "No $UPDATE_SCRIPT avaiable."
+    echo "Falling back to plain git commands."
+    git checkout master
+    git pull
+fi
+
+popd > /dev/null
+
+umount "$MPOINT"
+sync
+exit 0
diff --git a/windows-usb-image/7zS.sfx b/windows-usb-image/7zS.sfx
new file mode 100644
index 0000000000000000000000000000000000000000..b330795941c980bbe0dad4c647f382e2b9d635e1
Binary files /dev/null and b/windows-usb-image/7zS.sfx differ
diff --git a/windows-usb-image/__readme.txt b/windows-usb-image/__readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..48cc4e785e890012555655d513f490c5a4db2ce0
--- /dev/null
+++ b/windows-usb-image/__readme.txt
@@ -0,0 +1,8 @@
+Dies ist das USB Image Tool von www.alexpage.de/usb-image-tool/ , rebundled als 7-zip SFX.
+
+Anleitung siehe 7-Zip-Hilfe: "copy /b 7zS.sfx + config.txt + usbit.7z usbit.exe"
+
+Einzelteile:
+- 7zS.sfx:    Self-Extractor aus dem "7z-extra"-Package von 7-zip.org (version 4.57, steinalt aber funktioniert)
+- config.txt: die config Datei aus diesem Verzeichnis
+- usbit.7z:   eine mit 7-zip (7-zip für Windows, Version 4.57) gepackte Version vom "USB Image Tool 1.58"
diff --git a/windows-usb-image/config.txt b/windows-usb-image/config.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9c39031d21d80df3787211089b5545e2ffd373cf
--- /dev/null
+++ b/windows-usb-image/config.txt
@@ -0,0 +1,5 @@
+;!@Install@!UTF-8!
+Title="USB Image Tool from www.alexpage.de/usb-image-tool/"
+Progress="no"
+RunProgram="USB Image Tool.exe"
+;!@InstallEnd@!
diff --git a/windows-usb-image/usbit.7z b/windows-usb-image/usbit.7z
new file mode 100644
index 0000000000000000000000000000000000000000..226bf7b11cb535dadedc41de22f7837d36f6b888
Binary files /dev/null and b/windows-usb-image/usbit.7z differ
diff --git a/windows-usb-image/usbit.exe b/windows-usb-image/usbit.exe
new file mode 100644
index 0000000000000000000000000000000000000000..06cfc3967773db491e8668c5f5151a3ff8a41919
Binary files /dev/null and b/windows-usb-image/usbit.exe differ