diff --git a/contrib/initrd/initrd_hook/24liphook b/contrib/initrd/initrd_hook/24liphook
new file mode 100755
index 0000000000000000000000000000000000000000..fa571c4fe255b060ad8312b8cd3aac812753adc0
--- /dev/null
+++ b/contrib/initrd/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/contrib/initrd/initrd_hook/ORDER b/contrib/initrd/initrd_hook/ORDER
new file mode 100644
index 0000000000000000000000000000000000000000..b6f42ba36f1ea420be1c816448ee2352756da130
--- /dev/null
+++ b/contrib/initrd/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/contrib/initrd/libnsa/26libnsa b/contrib/initrd/libnsa/26libnsa
new file mode 100755
index 0000000000000000000000000000000000000000..0e6c1ffe16746b6dc5bf59d425ab90ba214e00d4
--- /dev/null
+++ b/contrib/initrd/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/contrib/initrd/libnsa/libnsa.desktop b/contrib/initrd/libnsa/libnsa.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..3f5aaa6dff6bb0be9cb2e5c6ae5150671f502003
--- /dev/null
+++ b/contrib/initrd/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/contrib/initrd/libnsa/libnsa.sh b/contrib/initrd/libnsa/libnsa.sh
new file mode 100755
index 0000000000000000000000000000000000000000..74f4fa8f4c80584f1a69a0a6b513405addc5e8b8
--- /dev/null
+++ b/contrib/initrd/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/contrib/initrd/nmtelekinese/26mopsmops b/contrib/initrd/nmtelekinese/26mopsmops
new file mode 100755
index 0000000000000000000000000000000000000000..c1c047d116741b66ba524d8ae30b0e9c0dff6b83
--- /dev/null
+++ b/contrib/initrd/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/contrib/initrd/nmtelekinese/nmtelekinese.desktop b/contrib/initrd/nmtelekinese/nmtelekinese.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..3f90e6fc778b25cd0a319f812927aeca5b9ee627
--- /dev/null
+++ b/contrib/initrd/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/contrib/initrd/nmtelekinese/nmtelekinese.py b/contrib/initrd/nmtelekinese/nmtelekinese.py
new file mode 100755
index 0000000000000000000000000000000000000000..acf413c53f7af75a78a625375feda3bfba195347
--- /dev/null
+++ b/contrib/initrd/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/contrib/initrd/no-bootloader-icon/25adduser b/contrib/initrd/no-bootloader-icon/25adduser
new file mode 100755
index 0000000000000000000000000000000000000000..0462c5f5c608559fdb5386ed8d2b423594e97f20
--- /dev/null
+++ b/contrib/initrd/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/contrib/initrd/no-bootloader-icon/ubiquity-gtkui-no-bootloader.desktop b/contrib/initrd/no-bootloader-icon/ubiquity-gtkui-no-bootloader.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..5cd4718f7f716d3b6dbdb73a5866b36aa487548e
--- /dev/null
+++ b/contrib/initrd/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/contrib/initrd/no-bootloader-icon/ubiquity-kdeui-no-bootloader.desktop b/contrib/initrd/no-bootloader-icon/ubiquity-kdeui-no-bootloader.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..134d86f67dcae995c8c4a679e526776e54b95513
--- /dev/null
+++ b/contrib/initrd/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/contrib/initrd/no-bootloader-icon/ubiquity-kdeui.desktop b/contrib/initrd/no-bootloader-icon/ubiquity-kdeui.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..9a5940ca692a77e4df816108de644cf3f49513e0
--- /dev/null
+++ b/contrib/initrd/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/contrib/rootfs/kde_config/emaildefaults b/contrib/rootfs/kde_config/emaildefaults
new file mode 100644
index 0000000000000000000000000000000000000000..87e4095f19e722f2025c1dc08670f7ff29ead1c6
--- /dev/null
+++ b/contrib/rootfs/kde_config/emaildefaults
@@ -0,0 +1,7 @@
+[Defaults]
+Profile=Default
+
+[PROFILE_Default]
+EmailClient[$e]=thunderbird
+ServerType=
+TerminalClient=false
diff --git a/contrib/rootfs/kde_config/kdeglobals b/contrib/rootfs/kde_config/kdeglobals
new file mode 100644
index 0000000000000000000000000000000000000000..4240835a3d582893f4d0fcb84b7bbe8b52c52041
--- /dev/null
+++ b/contrib/rootfs/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/contrib/rootfs/kde_config/kglobalshortcutsrc b/contrib/rootfs/kde_config/kglobalshortcutsrc
new file mode 100644
index 0000000000000000000000000000000000000000..41b822ebb821a822257a9a41a419399fc7f5347a
--- /dev/null
+++ b/contrib/rootfs/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/contrib/rootfs/kde_config/khotkeysrc b/contrib/rootfs/kde_config/khotkeysrc
new file mode 100644
index 0000000000000000000000000000000000000000..4e06f82e472a70e4f3bd56265f6b4656da7eb2ef
--- /dev/null
+++ b/contrib/rootfs/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/contrib/rootfs/kde_config/kickoffrc b/contrib/rootfs/kde_config/kickoffrc
new file mode 100644
index 0000000000000000000000000000000000000000..cbeeeac362a7e44f1b8e4be091557cc08b43b7d4
--- /dev/null
+++ b/contrib/rootfs/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/contrib/rootfs/kde_config/ksplashrc b/contrib/rootfs/kde_config/ksplashrc
new file mode 100644
index 0000000000000000000000000000000000000000..14ac66d692a889ab2b7aeca79280a73f8a770b5f
--- /dev/null
+++ b/contrib/rootfs/kde_config/ksplashrc
@@ -0,0 +1,3 @@
+[KSplash]
+Engine=None
+Theme=None
diff --git a/contrib/rootfs/lip_sources.list b/contrib/rootfs/lip_sources.list
new file mode 100644
index 0000000000000000000000000000000000000000..c85e9921570ef850653b34e3cf04377287998940
--- /dev/null
+++ b/contrib/rootfs/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