summaryrefslogtreecommitdiffstats
path: root/remote/modules
diff options
context:
space:
mode:
authorJonathan Bauer2013-03-14 18:30:10 +0100
committerJonathan Bauer2013-03-14 18:30:10 +0100
commit765e0502c315d250ab8f671bc726fef6f63a026a (patch)
treee5624ec583c98fd3202caefad9b37289d9cad348 /remote/modules
parentbase -> base32 and started new base31 (diff)
downloadtm-scripts-765e0502c315d250ab8f671bc726fef6f63a026a.tar.gz
tm-scripts-765e0502c315d250ab8f671bc726fef6f63a026a.tar.xz
tm-scripts-765e0502c315d250ab8f671bc726fef6f63a026a.zip
restructuring...
Diffstat (limited to 'remote/modules')
-rw-r--r--remote/modules/busybox/busybox.build27
-rw-r--r--remote/modules/busybox/busybox.conf6
-rw-r--r--remote/modules/consolekit/consolekit.build20
-rw-r--r--remote/modules/consolekit/consolekit.conf11
-rw-r--r--remote/modules/dbus/dbus.build22
-rw-r--r--remote/modules/dbus/dbus.conf9
-rw-r--r--remote/modules/dbus/dbus.conf.zypper9
-rw-r--r--remote/modules/kdm/data/etc/kde4/kdm/kdmrc35
l---------remote/modules/kdm/data/etc/systemd/system/display-manager.service1
-rw-r--r--remote/modules/kdm/data/etc/systemd/system/kdm.service12
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/KdmGreeterTheme.desktop8
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/color.pngbin0 -> 176 bytes
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/enter.pngbin0 -> 4260 bytes
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/enter_inactive.pngbin0 -> 4072 bytes
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/environment.pngbin0 -> 5076 bytes
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/main-runner.pngbin0 -> 153 bytes
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/rz-logo.pngbin0 -> 3212 bytes
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/sessions.pngbin0 -> 4245 bytes
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/sessions_inactive.pngbin0 -> 4066 bytes
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/system.pngbin0 -> 4257 bytes
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/system_inactive.pngbin0 -> 4091 bytes
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/theme.xml232
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/uni-logo.pngbin0 -> 44689 bytes
-rw-r--r--remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/welcome-time-shadowed.pngbin0 -> 4256 bytes
-rwxr-xr-xremote/modules/kdm/data/usr/share/xsessions/default.desktop10
-rw-r--r--remote/modules/kdm/kdm.build35
-rw-r--r--remote/modules/kdm/kdm.conf15
-rw-r--r--remote/modules/ldm-gtk-greeter/data/etc/fonts/fonts.conf151
-rw-r--r--remote/modules/ldm-gtk-greeter/data/etc/lightdm/lightdm-gtk-greeter.conf19
-rw-r--r--remote/modules/ldm-gtk-greeter/data/etc/lightdm/lightdm.conf125
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/backgrounds/warty-final-ubuntu.pngbin0 -> 710537 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttfbin0 -> 333616 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-BI.ttfbin0 -> 356980 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-C.ttfbin0 -> 350420 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-L.ttfbin0 -> 415552 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-LI.ttfbin0 -> 409608 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-R.ttfbin0 -> 353824 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-RI.ttfbin0 -> 386440 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttfbin0 -> 191400 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-BI.ttfbin0 -> 216208 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-R.ttfbin0 -> 205748 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-RI.ttfbin0 -> 210216 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/48x48/devices/computer.pngbin0 -> 3331 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/index.theme1662
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/scalable/apps/accessibility.svg8
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/scalable/apps/system-shutdown.svg8
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/banshee.rc23
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/chromium.rc39
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/ff.rc30
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/gedit.rc35
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/gnome-panel.rc118
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/gnome-terminal.rc52
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/arrow-down.pngbin0 -> 195 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/handle-h.pngbin0 -> 80 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/handle-v.pngbin0 -> 80 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-center-normal.pngbin0 -> 306 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-center-prelight.pngbin0 -> 212 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-center-pressed.pngbin0 -> 327 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-left-normal.pngbin0 -> 426 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-left-prelight.pngbin0 -> 368 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-left-pressed.pngbin0 -> 381 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-right-normal.pngbin0 -> 421 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-right-prelight.pngbin0 -> 369 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-right-pressed.pngbin0 -> 387 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel-button-active.pngbin0 -> 514 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel-button-hover.pngbin0 -> 346 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel-button-inactive.pngbin0 -> 285 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel.pngbin0 -> 166 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/nautilus.rc11
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/ubuntuone.rc49
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/gtkrc721
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/gnome-panel.css81
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/gnome-terminal.css114
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/nautilus.css81
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/unity.css38
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/scrollbar_handle.pngbin0 -> 104 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/scrollbar_handle_vertical.pngbin0 -> 104 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider.pngbin0 -> 605 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider_prelight.pngbin0 -> 610 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider_prelight_vertical.pngbin0 -> 585 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider_vertical.pngbin0 -> 560 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css1885
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/gtk.css34
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/settings.ini3
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/index.theme12
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close.pngbin0 -> 885 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_focused_normal.pngbin0 -> 885 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_focused_prelight.pngbin0 -> 914 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_focused_pressed.pngbin0 -> 632 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused.pngbin0 -> 578 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused_over.pngbin0 -> 716 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused_prelight.pngbin0 -> 890 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused_pressed.pngbin0 -> 606 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize.pngbin0 -> 904 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_focused_normal.pngbin0 -> 904 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_focused_prelight.pngbin0 -> 884 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_focused_pressed.pngbin0 -> 567 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused.pngbin0 -> 560 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused_over.pngbin0 -> 671 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused_prelight.pngbin0 -> 884 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused_pressed.pngbin0 -> 565 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/menu.pngbin0 -> 441 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/menu_prelight.pngbin0 -> 414 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/metacity-theme-1.xml558
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize.pngbin0 -> 838 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_focused_normal.pngbin0 -> 838 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_focused_prelight.pngbin0 -> 797 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_focused_pressed.pngbin0 -> 511 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused.pngbin0 -> 504 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused_over.pngbin0 -> 663 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused_prelight.pngbin0 -> 797 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused_pressed.pngbin0 -> 511 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/trough_left.pngbin0 -> 207 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/trough_middle.pngbin0 -> 103 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/trough_right.pngbin0 -> 255 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize.pngbin0 -> 909 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_focused_normal.pngbin0 -> 909 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_focused_prelight.pngbin0 -> 881 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_focused_pressed.pngbin0 -> 565 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused.pngbin0 -> 560 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused_over.pngbin0 -> 677 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused_prelight.pngbin0 -> 881 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused_pressed.pngbin0 -> 565 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close.pngbin0 -> 833 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_focused_normal.pngbin0 -> 833 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_focused_prelight.pngbin0 -> 858 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_focused_pressed.pngbin0 -> 589 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_unfocused.pngbin0 -> 528 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_unfocused_prelight.pngbin0 -> 882 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_unfocused_pressed.pngbin0 -> 560 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize.pngbin0 -> 832 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_focused_normal.pngbin0 -> 832 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_focused_prelight.pngbin0 -> 919 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_focused_pressed.pngbin0 -> 519 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_unfocused.pngbin0 -> 511 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_unfocused_prelight.pngbin0 -> 834 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_unfocused_pressed.pngbin0 -> 521 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize.pngbin0 -> 841 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_focused_normal.pngbin0 -> 841 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_focused_prelight.pngbin0 -> 795 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_focused_pressed.pngbin0 -> 466 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_unfocused.pngbin0 -> 455 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_unfocused_prelight.pngbin0 -> 795 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_unfocused_pressed.pngbin0 -> 466 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize.pngbin0 -> 828 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_focused_normal.pngbin0 -> 828 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_focused_prelight.pngbin0 -> 833 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_focused_pressed.pngbin0 -> 521 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_unfocused.pngbin0 -> 508 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_unfocused_prelight.pngbin0 -> 833 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_unfocused_pressed.pngbin0 -> 521 bytes
-rw-r--r--remote/modules/ldm-gtk-greeter/ldm-gtk-greeter.build43
-rw-r--r--remote/modules/ldm-gtk-greeter/ldm-gtk-greeter.conf9
l---------remote/modules/ldm/data/etc/systemd/system/graphical.target.wants/lightdm.service1
-rw-r--r--remote/modules/ldm/data/etc/systemd/system/lightdm.service10
-rw-r--r--remote/modules/ldm/ldm.build41
-rw-r--r--remote/modules/ldm/ldm.conf8
-rw-r--r--remote/modules/plymouth/data/etc/systemd/system/plymouth-halt.service11
-rw-r--r--remote/modules/plymouth/data/etc/systemd/system/plymouth-kexec.service11
-rw-r--r--remote/modules/plymouth/data/etc/systemd/system/plymouth-poweroff.service11
-rw-r--r--remote/modules/plymouth/data/etc/systemd/system/plymouth-quit-wait.service8
-rw-r--r--remote/modules/plymouth/data/etc/systemd/system/plymouth-quit.service8
-rw-r--r--remote/modules/plymouth/data/etc/systemd/system/plymouth-read-write.service9
-rw-r--r--remote/modules/plymouth/data/etc/systemd/system/plymouth-reboot.service11
-rw-r--r--remote/modules/plymouth/data/etc/systemd/system/plymouth-start.service13
-rw-r--r--remote/modules/plymouth/data/etc/systemd/system/systemd-ask-password-plymouth.path13
-rw-r--r--remote/modules/plymouth/data/etc/systemd/system/systemd-ask-password-plymouth.service12
-rw-r--r--remote/modules/plymouth/data/lib/plymouth/themes/default.plymouth8
-rw-r--r--remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/rz_banner_trans.pngbin0 -> 15730 bytes
-rw-r--r--remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/rz_logo_trans.pngbin0 -> 4309 bytes
-rw-r--r--remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/unifr-rz.plymouth9
-rw-r--r--remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/unifr-rz.script116
-rw-r--r--remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/white_dot_small.pngbin0 -> 376 bytes
-rw-r--r--remote/modules/plymouth/plymouth.build27
-rw-r--r--remote/modules/plymouth/plymouth.conf14
-rw-r--r--remote/modules/policykit-src/policykit.build42
-rw-r--r--remote/modules/policykit-src/policykit.conf10
-rw-r--r--remote/modules/policykit/data/lib/systemd/system/polkitd.service7
-rw-r--r--remote/modules/policykit/policykit.build25
-rw-r--r--remote/modules/policykit/policykit.conf11
-rw-r--r--remote/modules/rsyslogd/rsyslogd.build38
-rw-r--r--remote/modules/rsyslogd/rsyslogd.conf4
-rw-r--r--remote/modules/sshd/data/etc/issue.net6
-rw-r--r--remote/modules/sshd/data/etc/ssh/ssh_host_dsa_key12
-rw-r--r--remote/modules/sshd/data/etc/ssh/ssh_host_dsa_key.pub1
-rw-r--r--remote/modules/sshd/data/etc/ssh/ssh_host_ecdsa_key6
-rw-r--r--remote/modules/sshd/data/etc/ssh/ssh_host_ecdsa_key.pub1
-rw-r--r--remote/modules/sshd/data/etc/ssh/ssh_host_rsa_key15
-rw-r--r--remote/modules/sshd/data/etc/ssh/ssh_host_rsa_key.pub1
-rw-r--r--remote/modules/sshd/data/etc/ssh/sshd_config87
-rw-r--r--remote/modules/sshd/data/etc/systemd/system/sshd.service8
-rw-r--r--remote/modules/sshd/sshd.build19
-rw-r--r--remote/modules/sshd/sshd.conf3
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/activate-swap30
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/analyse-disk.sh120
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/debug-shell.service34
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/fetch-config178
l---------remote/modules/systemd/data/etc/systemd/system/getty.target.wants/load-german-keymap.service1
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/ip-dns-conf86
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/load-german-keymap.service5
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/network-interface@.service8
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/nfs-mount.service7
l---------remote/modules/systemd/data/etc/systemd/system/sysinit.target.wants/debug-shell.service1
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/udhcpc@.service9
-rw-r--r--remote/modules/systemd/data/usr/lib/udev/rules.d/99-systemd.rules55
-rw-r--r--remote/modules/systemd/systemd.build50
-rw-r--r--remote/modules/systemd/systemd.conf82
-rw-r--r--remote/modules/vmchooser/data/etc/openslx/vmchooser/vmchooser.conf4
-rwxr-xr-xremote/modules/vmchooser/data/openslx/bin/run-virt.sh440
-rwxr-xr-xremote/modules/vmchooser/data/openslx/bin/vmchooserbin0 -> 1673396 bytes
-rwxr-xr-xremote/modules/vmchooser/data/openslx/bin/xmlfilter.sh50
-rw-r--r--remote/modules/vmchooser/data/usr/share/vmchooser/themes/openslx/openslx-left.pngbin0 -> 9187 bytes
-rw-r--r--remote/modules/vmchooser/data/usr/share/vmchooser/themes/openslx/openslx-right.pngbin0 -> 3390 bytes
-rw-r--r--remote/modules/vmchooser/data/usr/share/vmchooser/themes/openslx/openslx.ini4
-rw-r--r--remote/modules/vmchooser/data/usr/share/vmchooser/themes/planets/planets-left.pngbin0 -> 11337 bytes
-rw-r--r--remote/modules/vmchooser/data/usr/share/vmchooser/themes/planets/planets-right.pngbin0 -> 3082 bytes
-rw-r--r--remote/modules/vmchooser/data/usr/share/vmchooser/themes/planets/planets.ini4
-rw-r--r--remote/modules/vmchooser/data/usr/share/vmchooser/themes/unifr/title_l.pngbin0 -> 17458 bytes
-rw-r--r--remote/modules/vmchooser/data/usr/share/vmchooser/themes/unifr/title_r.pngbin0 -> 4113 bytes
-rw-r--r--remote/modules/vmchooser/data/usr/share/vmchooser/themes/unifr/unifr.ini4
-rwxr-xr-xremote/modules/vmchooser/data/vmchooser/default.desktop10
-rwxr-xr-xremote/modules/vmchooser/data/vmchooser/mesgdispbin0 -> 222820 bytes
-rwxr-xr-xremote/modules/vmchooser/data/vmchooser/printer.sh10
-rwxr-xr-xremote/modules/vmchooser/data/vmchooser/scanner.sh4
-rwxr-xr-xremote/modules/vmchooser/data/vmchooser/smb.conf25
-rw-r--r--remote/modules/vmchooser/vmchooser.build27
-rw-r--r--remote/modules/vmchooser/vmchooser.conf5
-rw-r--r--remote/modules/xorg/xorg.build21
-rw-r--r--remote/modules/xorg/xorg.conf47
229 files changed, 8319 insertions, 0 deletions
diff --git a/remote/modules/busybox/busybox.build b/remote/modules/busybox/busybox.build
new file mode 100644
index 00000000..bc2adc64
--- /dev/null
+++ b/remote/modules/busybox/busybox.build
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+fetch_source()
+{
+ [ ! -d src ] && mkdir src
+ if [ ! -e .fetched_source ]; then
+ git clone "${GIT}" src
+ touch .fetched_source
+ fi
+}
+
+build()
+{
+ if [ ! -e .built ]; then
+ cd src
+ pinfo "Running make"
+ make -j5 || perror "failed."
+ pinfo "Running make install"
+ make CONFIG_PREFIX="${MODULE_DIR}"/build/"${PREFIX}" install || perror "failed"
+ cd -
+ touch .built
+ fi
+}
+
+post_copy() {
+ :
+}
diff --git a/remote/modules/busybox/busybox.conf b/remote/modules/busybox/busybox.conf
new file mode 100644
index 00000000..f7c866f2
--- /dev/null
+++ b/remote/modules/busybox/busybox.conf
@@ -0,0 +1,6 @@
+GIT=git://git.openslx.org/openslx/tools/busybox
+PREFIX="/openslx"
+REQUIRED_BINARIES=" busybox"
+REQUIRED_DIRECTORIES=" ${PREFIX}/bin
+ ${PREFIX}/sbin
+ ${PREFIX}/usr"
diff --git a/remote/modules/consolekit/consolekit.build b/remote/modules/consolekit/consolekit.build
new file mode 100644
index 00000000..ac31f9ed
--- /dev/null
+++ b/remote/modules/consolekit/consolekit.build
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+fetch_source() {
+ pinfo "Extracting from running system..."
+}
+
+build() {
+ COPYLIST="list_dpkg_output"
+ [ -e "${COPYLIST}" ] && rm "${COPYLIST}"
+
+ list_packet_files >> "${COPYLIST}"
+ tarcopy "$(cat "${COPYLIST}" | sort -u)" "${MODULE_BUILD_DIR}"
+
+}
+post_copy() {
+ mkdir -p "${TARGET_BUILD_DIR}/usr/lib/ConsoleKit/run-seat.d"
+ mkdir -p "${TARGET_BUILD_DIR}/etc/ConsoleKit/run-seat.d"
+ mkdir -p "${TARGET_BUILD_DIR}/etc/ConsoleKit/run-session.d"
+ mkdir -p "${TARGET_BUILD_DIR}/var/log/ConsoleKit"
+}
diff --git a/remote/modules/consolekit/consolekit.conf b/remote/modules/consolekit/consolekit.conf
new file mode 100644
index 00000000..38f1718f
--- /dev/null
+++ b/remote/modules/consolekit/consolekit.conf
@@ -0,0 +1,11 @@
+REQUIRED_PACKAGES="consolekit"
+REQUIRED_BINARIES=" ck-history
+ ck-launch-session
+ ck-list-sessions
+ ck-log-system-start
+ ck-log-system-restart
+ ck-log-system-stop
+ console-kit-daemon"
+REQUIRED_DIRECTORIES=" /usr/lib/ConsoleKit /etc /lib/systemd/system"
+REQUIRED_FILES=" /usr/share/dbus-1/system-services/org.freedesktop.ConsoleKit.service
+ /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy"
diff --git a/remote/modules/dbus/dbus.build b/remote/modules/dbus/dbus.build
new file mode 100644
index 00000000..31c75fc9
--- /dev/null
+++ b/remote/modules/dbus/dbus.build
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+fetch_source() {
+ echo "Extracting from running system..."
+}
+
+build() {
+ COPYLIST="list_dpkg_output"
+ [ -e "${COPYLIST}" ] && rm "${COPYLIST}"
+
+ list_packet_files >> "${COPYLIST}"
+ tarcopy "$(cat "${COPYLIST}" | sort -u)" "${MODULE_BUILD_DIR}"
+
+}
+post_copy() {
+
+ # quick fix to get the unit files from the package
+ # moved them from lib/systemd to usr/lib/systemd
+ cd "${BUILDDIR}"
+ tarcopy lib/systemd "${TARGET_BUILD_DIR}"/usr
+ cd - &> /dev/null
+}
diff --git a/remote/modules/dbus/dbus.conf b/remote/modules/dbus/dbus.conf
new file mode 100644
index 00000000..a8c97d9c
--- /dev/null
+++ b/remote/modules/dbus/dbus.conf
@@ -0,0 +1,9 @@
+REQUIRED_PACKAGES="dbus"
+REQUIRED_BINARIES=" dbus-cleanup-sockets
+ dbus-daemon
+ dbus-uuidgen
+ dbus-monitor
+ dbus-send
+ dbus-daemon-launch-helper"
+REQUIRED_DIRECTORIES=" /etc/dbus-1"
+REQUIRED_FILES=" /etc/default/dbus"
diff --git a/remote/modules/dbus/dbus.conf.zypper b/remote/modules/dbus/dbus.conf.zypper
new file mode 100644
index 00000000..db7183c5
--- /dev/null
+++ b/remote/modules/dbus/dbus.conf.zypper
@@ -0,0 +1,9 @@
+REQUIRED_PACKAGES="dbus-1"
+REQUIRED_BINARIES=" dbus-cleanup-sockets
+ dbus-daemon
+ dbus-uuidgen
+ dbus-monitor
+ dbus-send
+ dbus-daemon-launch-helper"
+REQUIRED_DIRECTORIES=" /etc/dbus-1"
+REQUIRED_FILES=""
diff --git a/remote/modules/kdm/data/etc/kde4/kdm/kdmrc b/remote/modules/kdm/data/etc/kde4/kdm/kdmrc
new file mode 100644
index 00000000..88f478ea
--- /dev/null
+++ b/remote/modules/kdm/data/etc/kde4/kdm/kdmrc
@@ -0,0 +1,35 @@
+[General]
+PidFile=/var/run/kdm.pid
+ServerVTs=-7
+
+[X-*-Greeter]
+UseTheme=true
+Theme=/usr/share/desktop/themes/kdm/uni
+UseBackground=false
+GreetString=OpenSLX Workstation (%h)
+SelectedUsers=
+UserList=false
+
+[X-:*-Greeter]
+AllowClose=false
+UseAdminSession=true
+
+[X-:0-Core]
+AllowRootLogin=true
+AllowShutdown=All
+AutoLoginEnable=false
+Reset=/etc/kde4/kdm/Xreset
+ServerAttempts=2
+Session=/etc/kde4/kdm/Xsession
+SessionsDirs=/etc/X11/session,/usr/share/xsessions,/usr/share/apps/kdm/sessions
+#Setup=/etc/kde4/kdm/Xsetup
+Startup=/etc/kde4/kdm/Xstartup
+
+[X-:0-Greeter]
+LogSource=/dev/xconsole
+PreselectUser=None
+UseAdminSession=false
+
+[xdmcp]
+Enable=false
+
diff --git a/remote/modules/kdm/data/etc/systemd/system/display-manager.service b/remote/modules/kdm/data/etc/systemd/system/display-manager.service
new file mode 120000
index 00000000..640910e3
--- /dev/null
+++ b/remote/modules/kdm/data/etc/systemd/system/display-manager.service
@@ -0,0 +1 @@
+kdm.service \ No newline at end of file
diff --git a/remote/modules/kdm/data/etc/systemd/system/kdm.service b/remote/modules/kdm/data/etc/systemd/system/kdm.service
new file mode 100644
index 00000000..14ff7457
--- /dev/null
+++ b/remote/modules/kdm/data/etc/systemd/system/kdm.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=KDM Display Manager
+Conflicts=getty@tty7.service
+After=systemd-user-sessions.service getty@tty7.service plymouth-quit.service
+
+[Service]
+ExecStart=/usr/bin/kdm -nodaemon
+Restart=always
+IgnoreSIGPIPE=no
+
+[Install]
+Alias=display-manager.service
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/KdmGreeterTheme.desktop b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/KdmGreeterTheme.desktop
new file mode 100644
index 00000000..36242be4
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/KdmGreeterTheme.desktop
@@ -0,0 +1,8 @@
+[KdmGreeterTheme]
+Encoding=UTF-8
+Greeter=theme.xml
+Name=Uni KDM theme
+Description=Uni Theme based on Daemonic KDM theme for FreeBSD
+Author=aceph <aceph@ventcore.net> and modified by MJanc
+Copyright=Creative Commons
+Screenshot=screenshot.png
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/color.png b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/color.png
new file mode 100644
index 00000000..c2e998e5
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/color.png
Binary files differ
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/enter.png b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/enter.png
new file mode 100644
index 00000000..b646e851
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/enter.png
Binary files differ
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/enter_inactive.png b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/enter_inactive.png
new file mode 100644
index 00000000..e12cfb8e
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/enter_inactive.png
Binary files differ
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/environment.png b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/environment.png
new file mode 100644
index 00000000..b9682822
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/environment.png
Binary files differ
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/main-runner.png b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/main-runner.png
new file mode 100644
index 00000000..fde2787d
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/main-runner.png
Binary files differ
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/rz-logo.png b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/rz-logo.png
new file mode 100644
index 00000000..d48b2b63
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/rz-logo.png
Binary files differ
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/sessions.png b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/sessions.png
new file mode 100644
index 00000000..00d05f29
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/sessions.png
Binary files differ
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/sessions_inactive.png b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/sessions_inactive.png
new file mode 100644
index 00000000..86bbe642
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/sessions_inactive.png
Binary files differ
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/system.png b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/system.png
new file mode 100644
index 00000000..f7b9e71f
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/system.png
Binary files differ
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/system_inactive.png b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/system_inactive.png
new file mode 100644
index 00000000..c3e1719b
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/system_inactive.png
Binary files differ
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/theme.xml b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/theme.xml
new file mode 100644
index 00000000..ab64ecfb
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/theme.xml
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE greeter SYSTEM "greeter.dtd">
+<!--
+KDM-Uni-Theme
+-->
+<greeter id="theme">
+ <style font="Sans 11" window-text-color="#f0f0f0" base-color="#f0f0f0" text-color="#000000"/>
+
+ <!-- background -->
+ <item type="pixmap" id="background" background="true">
+ <normal file="color.png"/>
+ <pos x="0" y="0" width="100%" height="100%"/>
+ </item>
+
+ <!-- top / welcome, clock and big logo -->
+ <item type="rect" id="top" background="true">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="n" x="50%" y="0" width="100%" height="40%"/>
+ <box orientation="vertical" homogeneous="true">
+
+ <item type="pixmap" background="true">
+ <normal file="welcome-time-shadowed.png"/>
+ <pos anchor="n" x="50%" y="0" width="80%" height="44"/>
+ <box orientation="horizontal" homogeneous="true">
+ <!-- Welcome on ... -->
+ <item type="label" background="true">
+ <pos anchor="w" x="10%" y="30%"/>
+ <normal color="#f0f0f0" font="Sans 11"/>
+ <stock type="welcome-label"/>
+ </item>
+ <!-- clock -->
+ <item type="label" id="clock">
+ <pos anchor="e" x="90%" y="30%"/>
+ <normal color="#f0f0f0" font="Sans 11"/>
+ <text>%c</text>
+ </item>
+ </box>
+ </item>
+
+ <item type="rect" id="logo">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="c" x="50%" y="10%" width="100%" height="100%"/>
+ <box orientation="vertical" homogeneous="true">
+ <item type="pixmap">
+ <normal file="uni-logo.png"/>
+ <pos anchor="c" x="50%" y="50%"/>
+ </item>
+ </box>
+ </item>
+
+ </box>
+ </item>
+
+ <!-- main part / login, session, menu, ... -->
+ <item type="pixmap" id="main-runner" background="true">
+ <normal file="main-runner.png"/>
+ <pos anchor="c" x="50%" y="50%" width="100%" height="160"/>
+ <box orientation="horizontal" homogeneous="true">
+
+ <item type="rect" background="true">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="w" x="0%" y="50%" width="100%" height="100%"/>
+ <box orientation="horizontal" homogeneous="true">
+
+ <!-- left part / login -->
+ <item type="rect" background="true">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="w" x="0" y="50%" width="100%" height="100%"/>
+ <box orientation="horizontal">
+
+ <!-- small logo -->
+ <item type="pixmap" background="true">
+ <normal file="rz-logo.png"/>
+ <pos anchor="w" x="30" y="50%"/>
+ </item>
+
+ <!-- login -->
+ <item type="rect">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="w" x="70" y="50%" width="box" height="box"/>
+ <box orientation="horizontal" spacing="10">
+
+ <item type="rect">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="sw" x="0" y="100%" width="box" height="100%"/>
+ <box homogeneous="true" spacing="10">
+ <!-- username-label -->
+ <item type="label">
+ <pos anchor="nw" x="0" y="0"/>
+ <normal color="#f0f0f0" font="Sans 11"/>
+ <stock type="username-label"/>
+ </item>
+ <!-- password-label -->
+ <item type="label">
+ <pos anchor="sw" x="0" y="-0"/>
+ <normal color="#f0f0f0" font="Sans 11"/>
+ <stock type="password-label"/>
+ </item>
+ </box>
+ </item>
+
+ <item type="rect">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="nw" x="0" y="0" width="box" height="box"/>
+ <box homogeneous="true" spacing="10">
+ <!-- username-entry -->
+ <item type="entry" id="user-entry">
+ <pos anchor="w" x="0" y="50%" height="20" width="100"/>
+ </item>
+ <!-- password-entry -->
+ <item type="entry" id="pw-entry">
+ <pos anchor="w" x="0" y="50%" height="20" width="100"/>
+ </item>
+ </box>
+ </item>
+
+ <item type="pixmap" button="true" id="login_button">
+ <pos anchor="sw" x="0" y="-0" height="20" width="20"/>
+ <normal file="enter_inactive.png"/>
+ <prelight file="enter.png"/>
+ </item>
+
+ </box>
+ </item>
+
+ </box>
+ </item>
+
+ <!-- middle part / errors, caps info, kdm logo -->
+ <item type="rect">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="c" x="50%" y="50%" width="90%" height="100%"/>
+ <box orientation="vertical">
+
+ <!-- Login-Error -->
+ <item type="rect">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="n" x="50%" y="10" width="100%" height="30"/>
+ <box>
+ <item type="label" id="pam-error">
+ <normal color="#ff8b00" font="Sans 11"/>
+ <pos anchor="c" x="50%" y="15"/>
+ <text/>
+ </item>
+ </box>
+ </item>
+
+ <item type="pixmap">
+ <normal file="environment.png"/>
+ <pos anchor="c" x="50%" y="50%"/>
+ </item>
+
+ <!-- capslock-warning -->
+ <item type="rect" id="caps-lock-warning">
+ <normal color="#000000" alpha="0.4"/>
+ <pos anchor="s" x="50%" y="-10" width="100%" height="30"/>
+ <box>
+ <item type="label">
+ <normal color="#ff8b00" font="Sans 11"/>
+ <pos anchor="c" x="50%" y="15"/>
+ <stock type="caps-lock-warning"/>
+ </item>
+ </box>
+ </item>
+
+ </box>
+ </item>
+
+ <!-- right part / sessions, menu -->
+ <item type="rect">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="e" x="100%" y="50%" width="100%" height="100%"/>
+ <box orientation="vertical" homogeneous="true" spacing="10">
+
+ <!-- session-button -->
+ <item type="rect" id="session_button" button="true">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="se" x="-50" y="100%" width="box" height="box"/>
+ <box orientation="horizontal">
+ <item type="label">
+ <normal color="#bbbbbb" font="Sans 11"/>
+ <prelight color="#f0f0f0" font="Sans 11"/>
+ <active color="#ff8b00" font="Sans 11"/>
+ <pos anchor="e" x="100%" y="-24"/>
+ <stock type="session"/>
+ </item>
+ <item type="rect" id="session_button" button="true">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="c" x="50%" y="50%" width="10"/>
+ </item>
+ <item type="pixmap" id="session_button" button="true">
+ <normal file="sessions_inactive.png"/>
+ <prelight file="sessions.png"/>
+ <pos anchor="se" x="100%" y="100%"/>
+ </item>
+ </box>
+ </item>
+
+ <!-- menu-button -->
+ <item type="rect" id="system_button" button="true">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="ne" x="-50" y="0" width="box" height="box"/>
+ <box orientation="horizontal">
+ <item type="label">
+ <normal color="#bbbbbb" font="Sans 11"/>
+ <prelight color="#f0f0f0" font="Sans 11"/>
+ <active color="#ff8b00" font="Sans 11"/>
+ <pos anchor="e" x="100%" y="24"/>
+ <stock type="system"/>
+ </item>
+ <item type="rect" id="system_button" button="true">
+ <normal color="#000000" alpha="0.0"/>
+ <pos anchor="c" x="50%" y="50%" width="10"/>
+ </item>
+ <item type="pixmap" id="system_button" button="true">
+ <normal file="system_inactive.png"/>
+ <prelight file="system.png"/>
+ <pos anchor="ne" x="100%" y="0%"/>
+ </item>
+ </box>
+ </item>
+
+ </box>
+ </item>
+
+ </box>
+ </item>
+
+ </box>
+ </item>
+
+</greeter>
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/uni-logo.png b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/uni-logo.png
new file mode 100644
index 00000000..45cef30e
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/uni-logo.png
Binary files differ
diff --git a/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/welcome-time-shadowed.png b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/welcome-time-shadowed.png
new file mode 100644
index 00000000..f9f34c5c
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/desktop/themes/kdm/uni/welcome-time-shadowed.png
Binary files differ
diff --git a/remote/modules/kdm/data/usr/share/xsessions/default.desktop b/remote/modules/kdm/data/usr/share/xsessions/default.desktop
new file mode 100755
index 00000000..c6a0f825
--- /dev/null
+++ b/remote/modules/kdm/data/usr/share/xsessions/default.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=virtual machine chooser (default)
+Name[de]=Virtuelle Maschine auswählen
+Comment=This session starts the vm session chooser
+Comment[de]=Diese Sitzung startet das Auswahlmenü für die vorhandenen Sitzungen
+Exec=/openslx/bin/vmchooser
+TryExec=/openslx/bin/vmchooser
+Icon=
+Type=Application
diff --git a/remote/modules/kdm/kdm.build b/remote/modules/kdm/kdm.build
new file mode 100644
index 00000000..88c47f6b
--- /dev/null
+++ b/remote/modules/kdm/kdm.build
@@ -0,0 +1,35 @@
+#tool/distro specific functions for fetching, building and installing dependencies
+
+
+fetch_source () {
+ pinfo "Extracting from running system..."
+}
+
+build () {
+ COPYLIST="list_dpkg_output"
+ [ -e "${COPYLIST}" ] && rm "${COPYLIST}"
+
+ list_packet_files >> "${COPYLIST}"
+ tarcopy "$(cat "${COPYLIST}" | sort -u)" "${MODULE_BUILD_DIR}"
+}
+
+post_copy() {
+ # copy static kdm files to stage3.2
+ cp -r ${MODULE_DIR}/data/* ${TARGET_BUILD_DIR}
+ #create static kdm folders in stage3.2
+ mkdir -p ${TARGET_BUILD_DIR}/var/lib/kdm
+ mkdir -p ${TARGET_BUILD_DIR}/var/run/kdm
+
+
+ #copy required icons
+ tarcopy "/usr/share/icons/oxygen/16x16/actions/system-reboot.png
+ /usr/share/icons/oxygen/16x16/actions/system-shutdown.png
+ /usr/share/icons/oxygen/16x16/actions/dialog-cancel.png
+ /usr/share/icons/oxygen/index.theme
+ /usr/share/kde4/apps/kdm/pics/shutdown.png
+ /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
+ /usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-R.ttf
+ /usr/share/icons/default/index.theme" ${TARGET_BUILD_DIR}
+ gtk-update-icon-cache-3.0 "${TARGET_BUILD_DIR}/usr/share/icons/oxygen/" || perror "update-icon-cache-3.0 failed."
+}
+
diff --git a/remote/modules/kdm/kdm.conf b/remote/modules/kdm/kdm.conf
new file mode 100644
index 00000000..85f4ae66
--- /dev/null
+++ b/remote/modules/kdm/kdm.conf
@@ -0,0 +1,15 @@
+REQUIRED_DEPENDENCIES="kdm"
+REQUIRED_PACKAGES="kdm kde-workspace-kgreet-plugins"
+REQUIRED_BINARIES=""
+REQUIRED_DIRECTORIES=" /etc/dbus-1
+ /etc/pam.d
+ /etc/logrotate.d
+ /etc/insserv.conf.d
+ /etc/kde4/kdm
+ /usr/lib/kde4
+ /usr/share/dbus-1
+ /usr/share/polkit-1
+ /usr/share/kde4/services
+ /usr/bin"
+REQUIRED_FILES=""
+REQUIRED_LIBRARIES=""
diff --git a/remote/modules/ldm-gtk-greeter/data/etc/fonts/fonts.conf b/remote/modules/ldm-gtk-greeter/data/etc/fonts/fonts.conf
new file mode 100644
index 00000000..5eb6afe1
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/etc/fonts/fonts.conf
@@ -0,0 +1,151 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!-- /etc/fonts/fonts.conf file to configure system font access -->
+<fontconfig>
+
+<!--
+ DO NOT EDIT THIS FILE.
+ IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.
+ LOCAL CHANGES BELONG IN 'local.conf'.
+
+ The intent of this standard configuration file is to be adequate for
+ most environments. If you have a reasonably normal environment and
+ have found problems with this configuration, they are probably
+ things that others will also want fixed. Please submit any
+ problems to the fontconfig bugzilla system located at fontconfig.org
+
+ Note that the normal 'make install' procedure for fontconfig is to
+ replace any existing fonts.conf file with the new version. Place
+ any local customizations in local.conf which this file references.
+
+ Keith Packard
+-->
+
+<!-- Font directory list -->
+
+ <dir>/usr/share/fonts</dir>
+ <dir>/usr/X11R6/lib/X11/fonts</dir> <dir>/usr/local/share/fonts</dir>
+ <dir>~/.fonts</dir>
+
+<!--
+ Accept deprecated 'mono' alias, replacing it with 'monospace'
+-->
+ <match target="pattern">
+ <test qual="any" name="family">
+ <string>mono</string>
+ </test>
+ <edit name="family" mode="assign">
+ <string>monospace</string>
+ </edit>
+ </match>
+
+<!--
+ Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
+-->
+ <match target="pattern">
+ <test qual="any" name="family">
+ <string>sans serif</string>
+ </test>
+ <edit name="family" mode="assign">
+ <string>sans-serif</string>
+ </edit>
+ </match>
+
+<!--
+ Accept deprecated 'sans' alias, replacing it with 'sans-serif'
+-->
+ <match target="pattern">
+ <test qual="any" name="family">
+ <string>sans</string>
+ </test>
+ <edit name="family" mode="assign">
+ <string>sans-serif</string>
+ </edit>
+ </match>
+
+<!--
+ Load local system customization file
+-->
+ <include ignore_missing="yes">conf.d</include>
+
+<!-- Font cache directory list -->
+
+ <cachedir>/var/cache/fontconfig</cachedir>
+ <cachedir>~/.fontconfig</cachedir>
+
+ <config>
+<!--
+ These are the default Unicode chars that are expected to be blank
+ in fonts. All other blank chars are assumed to be broken and
+ won't appear in the resulting charsets
+ -->
+ <blank>
+ <int>0x0020</int> <!-- SPACE -->
+ <int>0x00A0</int> <!-- NO-BREAK SPACE -->
+ <int>0x00AD</int> <!-- SOFT HYPHEN -->
+ <int>0x034F</int> <!-- COMBINING GRAPHEME JOINER -->
+ <int>0x0600</int> <!-- ARABIC NUMBER SIGN -->
+ <int>0x0601</int> <!-- ARABIC SIGN SANAH -->
+ <int>0x0602</int> <!-- ARABIC FOOTNOTE MARKER -->
+ <int>0x0603</int> <!-- ARABIC SIGN SAFHA -->
+ <int>0x06DD</int> <!-- ARABIC END OF AYAH -->
+ <int>0x070F</int> <!-- SYRIAC ABBREVIATION MARK -->
+ <int>0x115F</int> <!-- HANGUL CHOSEONG FILLER -->
+ <int>0x1160</int> <!-- HANGUL JUNGSEONG FILLER -->
+ <int>0x1680</int> <!-- OGHAM SPACE MARK -->
+ <int>0x17B4</int> <!-- KHMER VOWEL INHERENT AQ -->
+ <int>0x17B5</int> <!-- KHMER VOWEL INHERENT AA -->
+ <int>0x180E</int> <!-- MONGOLIAN VOWEL SEPARATOR -->
+ <int>0x2000</int> <!-- EN QUAD -->
+ <int>0x2001</int> <!-- EM QUAD -->
+ <int>0x2002</int> <!-- EN SPACE -->
+ <int>0x2003</int> <!-- EM SPACE -->
+ <int>0x2004</int> <!-- THREE-PER-EM SPACE -->
+ <int>0x2005</int> <!-- FOUR-PER-EM SPACE -->
+ <int>0x2006</int> <!-- SIX-PER-EM SPACE -->
+ <int>0x2007</int> <!-- FIGURE SPACE -->
+ <int>0x2008</int> <!-- PUNCTUATION SPACE -->
+ <int>0x2009</int> <!-- THIN SPACE -->
+ <int>0x200A</int> <!-- HAIR SPACE -->
+ <int>0x200B</int> <!-- ZERO WIDTH SPACE -->
+ <int>0x200C</int> <!-- ZERO WIDTH NON-JOINER -->
+ <int>0x200D</int> <!-- ZERO WIDTH JOINER -->
+ <int>0x200E</int> <!-- LEFT-TO-RIGHT MARK -->
+ <int>0x200F</int> <!-- RIGHT-TO-LEFT MARK -->
+ <int>0x2028</int> <!-- LINE SEPARATOR -->
+ <int>0x2029</int> <!-- PARAGRAPH SEPARATOR -->
+ <int>0x202A</int> <!-- LEFT-TO-RIGHT EMBEDDING -->
+ <int>0x202B</int> <!-- RIGHT-TO-LEFT EMBEDDING -->
+ <int>0x202C</int> <!-- POP DIRECTIONAL FORMATTING -->
+ <int>0x202D</int> <!-- LEFT-TO-RIGHT OVERRIDE -->
+ <int>0x202E</int> <!-- RIGHT-TO-LEFT OVERRIDE -->
+ <int>0x202F</int> <!-- NARROW NO-BREAK SPACE -->
+ <int>0x205F</int> <!-- MEDIUM MATHEMATICAL SPACE -->
+ <int>0x2060</int> <!-- WORD JOINER -->
+ <int>0x2061</int> <!-- FUNCTION APPLICATION -->
+ <int>0x2062</int> <!-- INVISIBLE TIMES -->
+ <int>0x2063</int> <!-- INVISIBLE SEPARATOR -->
+ <int>0x206A</int> <!-- INHIBIT SYMMETRIC SWAPPING -->
+ <int>0x206B</int> <!-- ACTIVATE SYMMETRIC SWAPPING -->
+ <int>0x206C</int> <!-- INHIBIT ARABIC FORM SHAPING -->
+ <int>0x206D</int> <!-- ACTIVATE ARABIC FORM SHAPING -->
+ <int>0x206E</int> <!-- NATIONAL DIGIT SHAPES -->
+ <int>0x206F</int> <!-- NOMINAL DIGIT SHAPES -->
+ <int>0x2800</int> <!-- BRAILLE PATTERN BLANK -->
+ <int>0x3000</int> <!-- IDEOGRAPHIC SPACE -->
+ <int>0x3164</int> <!-- HANGUL FILLER -->
+ <int>0xFEFF</int> <!-- ZERO WIDTH NO-BREAK SPACE -->
+ <int>0xFFA0</int> <!-- HALFWIDTH HANGUL FILLER -->
+ <int>0xFFF9</int> <!-- INTERLINEAR ANNOTATION ANCHOR -->
+ <int>0xFFFA</int> <!-- INTERLINEAR ANNOTATION SEPARATOR -->
+ <int>0xFFFB</int> <!-- INTERLINEAR ANNOTATION TERMINATOR -->
+ </blank>
+<!--
+ Rescan configuration every 30 seconds when FcFontSetList is called
+ -->
+ <rescan>
+ <int>30</int>
+ </rescan>
+ </config>
+
+</fontconfig>
diff --git a/remote/modules/ldm-gtk-greeter/data/etc/lightdm/lightdm-gtk-greeter.conf b/remote/modules/ldm-gtk-greeter/data/etc/lightdm/lightdm-gtk-greeter.conf
new file mode 100644
index 00000000..50e5700b
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/etc/lightdm/lightdm-gtk-greeter.conf
@@ -0,0 +1,19 @@
+#
+# background = Background file to use, either an image path or a color (e.g. #772953)
+# theme-name = GTK+ theme to use
+# font-name = Font to use
+# xft-antialias = Whether to antialias Xft fonts (true or false)
+# xft-dpi = Resolution for Xft in dots per inch (e.g. 96)
+# xft-hintstyle = What degree of hinting to use (hintnone, hintslight, hintmedium, or hintfull)
+# xft-rgba = Type of subpixel antialiasing (none, rgb, bgr, vrgb or vbgr)
+# show-language-selector (true or false)
+#
+[greeter]
+background=/usr/share/backgrounds/warty-final-ubuntu.png
+theme-name=Adwaita
+font-name=Ubuntu 11
+xft-antialias=true
+xft-dpi=96
+xft-hintstyle=slight
+xft-rgba=rgb
+show-language-selector=false
diff --git a/remote/modules/ldm-gtk-greeter/data/etc/lightdm/lightdm.conf b/remote/modules/ldm-gtk-greeter/data/etc/lightdm/lightdm.conf
new file mode 100644
index 00000000..6cb2090c
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/etc/lightdm/lightdm.conf
@@ -0,0 +1,125 @@
+#
+# General configuration
+#
+# start-default-seat = True to always start one seat if none are defined in the configuration
+# greeter-user = User to run greeter as
+# minimum-display-number = Minimum display number to use for X servers
+# minimum-vt = First VT to run displays on
+# lock-memory = True to prevent memory from being paged to disk
+# user-authority-in-system-dir = True if session authority should be in the system location
+# guest-account-script = Script to be run to setup guest account
+# log-directory = Directory to log information to
+# run-directory = Directory to put running state in
+# cache-directory = Directory to cache to
+# xsessions-directory = Directory to find X sessions
+# remote-sessions-directory = Directory to find remote sessions
+# xgreeters-directory = Directory to find X greeters
+#
+[LightDM]
+#start-default-seat=true
+#greeter-user=lightdm
+#minimum-display-number=0
+#minimum-vt=7
+#lock-memory=true
+#user-authority-in-system-dir=false
+#guest-account-script=guest-account
+#log-directory=/var/log/lightdm
+#run-directory=/var/run/lightdm
+#cache-directory=/var/cache/lightdm
+#xsessions-directory=/usr/share/xsessions
+#remote-sessions-directory=/usr/share/lightdm/remote-sessions
+#xgreeters-directory=/usr/share/xgreeters
+
+#
+# Seat defaults
+#
+# type = Seat type (xlocal, xremote)
+# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
+# xserver-layout = Layout to pass to X server
+# xserver-config = Config file to pass to X server
+# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
+# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
+# xdmcp-port = XDMCP UDP/IP port to communicate on
+# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
+# greeter-session = Session to load for greeter
+# greeter-hide-users = True to hide the user list
+# greeter-allow-guest = True if the greeter should show a guest login option
+# greeter-show-manual-login = True if the greeter should offer a manual login option
+# greeter-show-remote-login = True if the greeter should offer a remote login option
+# user-session = Session to load for users
+# allow-guest = True if guest login is allowed
+# guest-session = Session to load for guests (overrides user-session)
+# session-wrapper = Wrapper script to run session with
+# display-setup-script = Script to run when starting a greeter session (runs as root)
+# greeter-setup-script = Script to run when starting a greeter (runs as root)
+# session-setup-script = Script to run when starting a user session (runs as root)
+# session-cleanup-script = Script to run when quitting a user session (runs as root)
+# autologin-guest = True to log in as guest by default
+# autologin-user = User to log in with by default (overrides autologin-guest)
+# autologin-user-timeout = Number of seconds to wait before loading default user
+# autologin-session = Session to load for automatic login (overrides user-session)
+# exit-on-failure = True if the daemon should exit if this seat fails
+#
+[SeatDefaults]
+#type=xlocal
+#xserver-command=X
+#xserver-layout=
+#xserver-config=
+#xserver-allow-tcp=false
+#xdmcp-manager=
+#xdmcp-port=177
+#xdmcp-key=
+greeter-session=lightdm-gtk-greeter
+#greeter-hide-users=false
+#greeter-allow-guest=true
+#greeter-show-manual-login=false
+#greeter-show-remote-login=true
+#user-session=default
+#allow-guest=true
+#guest-session=UNIMPLEMENTED
+#session-wrapper=lightdm-session
+#display-setup-script=
+#greeter-setup-script=
+#session-setup-script=
+#session-cleanup-script=
+#autologin-guest=false
+#autologin-user=
+#autologin-user-timeout=0
+#autologin-session=UNIMPLEMENTED
+#exit-on-failure=false
+
+#
+# Seat configuration
+#
+# Each seat must start with "Seat:".
+# Uses settings from [SeatDefaults], any of these can be overriden by setting them in this section.
+#
+#[Seat:0]
+
+#
+# XDMCP Server configuration
+#
+# enabled = True if XDMCP connections should be allowed
+# port = UDP/IP port to listen for connections on
+# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
+#
+# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn. Alternatively
+# it can be a word and the first 7 characters are used as the key.
+#
+[XDMCPServer]
+#enabled=false
+#port=177
+#key=
+
+#
+# VNC Server configuration
+#
+# enabled = True if VNC connections should be allowed
+# port = TCP/IP port to listen for connections on
+#
+[VNCServer]
+#enabled=false
+#port=5900
+#width=1024
+#height=768
+#depth=8
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/backgrounds/warty-final-ubuntu.png b/remote/modules/ldm-gtk-greeter/data/usr/share/backgrounds/warty-final-ubuntu.png
new file mode 100644
index 00000000..b9e7b65a
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/backgrounds/warty-final-ubuntu.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf
new file mode 100644
index 00000000..c0142fea
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-BI.ttf b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-BI.ttf
new file mode 100644
index 00000000..12e4c7df
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-BI.ttf
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-C.ttf b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-C.ttf
new file mode 100644
index 00000000..8d3e8676
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-C.ttf
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-L.ttf b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-L.ttf
new file mode 100644
index 00000000..7b7ac7dd
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-L.ttf
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-LI.ttf b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-LI.ttf
new file mode 100644
index 00000000..e36de452
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-LI.ttf
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-R.ttf b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-R.ttf
new file mode 100644
index 00000000..45a038ba
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-R.ttf
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-RI.ttf b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-RI.ttf
new file mode 100644
index 00000000..6f819f69
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-RI.ttf
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf
new file mode 100644
index 00000000..7bd66657
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-BI.ttf b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-BI.ttf
new file mode 100644
index 00000000..6c5b8ba0
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-BI.ttf
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-R.ttf b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-R.ttf
new file mode 100644
index 00000000..fdd309d7
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-R.ttf
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-RI.ttf b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-RI.ttf
new file mode 100644
index 00000000..18f81a29
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-RI.ttf
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/48x48/devices/computer.png b/remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/48x48/devices/computer.png
new file mode 100644
index 00000000..de87c0b0
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/48x48/devices/computer.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/index.theme b/remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/index.theme
new file mode 100644
index 00000000..1c812195
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/index.theme
@@ -0,0 +1,1662 @@
+[Icon Theme]
+Name=Hicolor
+Comment=Fallback icon theme
+Hidden=true
+Directories=16x16/actions,16x16/animations,16x16/apps,16x16/categories,16x16/devices,16x16/emblems,16x16/emotes,16x16/filesystems,16x16/intl,16x16/mimetypes,16x16/places,16x16/status,16x16/stock/chart,16x16/stock/code,16x16/stock/data,16x16/stock/form,16x16/stock/image,16x16/stock/io,16x16/stock/media,16x16/stock/navigation,16x16/stock/net,16x16/stock/object,16x16/stock/table,16x16/stock/text,22x22/actions,22x22/animations,22x22/apps,22x22/categories,22x22/devices,22x22/emblems,22x22/emotes,22x22/filesystems,22x22/intl,22x22/mimetypes,22x22/places,22x22/status,22x22/stock/chart,22x22/stock/code,22x22/stock/data,22x22/stock/form,22x22/stock/image,22x22/stock/io,22x22/stock/media,22x22/stock/navigation,22x22/stock/net,22x22/stock/object,22x22/stock/table,22x22/stock/text,24x24/actions,24x24/animations,24x24/apps,24x24/categories,24x24/devices,24x24/emblems,24x24/emotes,24x24/filesystems,24x24/intl,24x24/mimetypes,24x24/places,24x24/status,24x24/stock/chart,24x24/stock/code,24x24/stock/data,24x24/stock/form,24x24/stock/image,24x24/stock/io,24x24/stock/media,24x24/stock/navigation,24x24/stock/net,24x24/stock/object,24x24/stock/table,24x24/stock/text,32x32/actions,32x32/animations,32x32/apps,32x32/categories,32x32/devices,32x32/emblems,32x32/emotes,32x32/filesystems,32x32/intl,32x32/mimetypes,32x32/places,32x32/status,32x32/stock/chart,32x32/stock/code,32x32/stock/data,32x32/stock/form,32x32/stock/image,32x32/stock/io,32x32/stock/media,32x32/stock/navigation,32x32/stock/net,32x32/stock/object,32x32/stock/table,32x32/stock/text,36x36/actions,36x36/animations,36x36/apps,36x36/categories,36x36/devices,36x36/emblems,36x36/emotes,36x36/filesystems,36x36/intl,36x36/mimetypes,36x36/places,36x36/status,36x36/stock/chart,36x36/stock/code,36x36/stock/data,36x36/stock/form,36x36/stock/image,36x36/stock/io,36x36/stock/media,36x36/stock/navigation,36x36/stock/net,36x36/stock/object,36x36/stock/table,36x36/stock/text,48x48/actions,48x48/animations,48x48/apps,48x48/categories,48x48/devices,48x48/emblems,48x48/emotes,48x48/filesystems,48x48/intl,48x48/mimetypes,48x48/places,48x48/status,48x48/stock/chart,48x48/stock/code,48x48/stock/data,48x48/stock/form,48x48/stock/image,48x48/stock/io,48x48/stock/media,48x48/stock/navigation,48x48/stock/net,48x48/stock/object,48x48/stock/table,48x48/stock/text,64x64/actions,64x64/animations,64x64/apps,64x64/categories,64x64/devices,64x64/emblems,64x64/emotes,64x64/filesystems,64x64/intl,64x64/mimetypes,64x64/places,64x64/status,64x64/stock/chart,64x64/stock/code,64x64/stock/data,64x64/stock/form,64x64/stock/image,64x64/stock/io,64x64/stock/media,64x64/stock/navigation,64x64/stock/net,64x64/stock/object,64x64/stock/table,64x64/stock/text,72x72/actions,72x72/animations,72x72/apps,72x72/categories,72x72/devices,72x72/emblems,72x72/emotes,72x72/filesystems,72x72/intl,72x72/mimetypes,72x72/places,72x72/status,72x72/stock/chart,72x72/stock/code,72x72/stock/data,72x72/stock/form,72x72/stock/image,72x72/stock/io,72x72/stock/media,72x72/stock/navigation,72x72/stock/net,72x72/stock/object,72x72/stock/table,72x72/stock/text,96x96/actions,96x96/animations,96x96/apps,96x96/categories,96x96/devices,96x96/emblems,96x96/emotes,96x96/filesystems,96x96/intl,96x96/mimetypes,96x96/places,96x96/status,96x96/stock/chart,96x96/stock/code,96x96/stock/data,96x96/stock/form,96x96/stock/image,96x96/stock/io,96x96/stock/media,96x96/stock/navigation,96x96/stock/net,96x96/stock/object,96x96/stock/table,96x96/stock/text,128x128/actions,128x128/animations,128x128/apps,128x128/categories,128x128/devices,128x128/emblems,128x128/emotes,128x128/filesystems,128x128/intl,128x128/mimetypes,128x128/places,128x128/status,128x128/stock/chart,128x128/stock/code,128x128/stock/data,128x128/stock/form,128x128/stock/image,128x128/stock/io,128x128/stock/media,128x128/stock/navigation,128x128/stock/net,128x128/stock/object,128x128/stock/table,128x128/stock/text,192x192/actions,192x192/animations,192x192/apps,192x192/categories,192x192/devices,192x192/emblems,192x192/emotes,192x192/filesystems,192x192/intl,192x192/mimetypes,192x192/places,192x192/status,192x192/stock/chart,192x192/stock/code,192x192/stock/data,192x192/stock/form,192x192/stock/image,192x192/stock/io,192x192/stock/media,192x192/stock/navigation,192x192/stock/net,192x192/stock/object,192x192/stock/table,192x192/stock/text,256x256/actions,256x256/animations,256x256/apps,256x256/categories,256x256/devices,256x256/emblems,256x256/emotes,256x256/filesystems,256x256/intl,256x256/mimetypes,256x256/places,256x256/status,256x256/stock/chart,256x256/stock/code,256x256/stock/data,256x256/stock/form,256x256/stock/image,256x256/stock/io,256x256/stock/media,256x256/stock/navigation,256x256/stock/net,256x256/stock/object,256x256/stock/table,256x256/stock/text,scalable/actions,scalable/animations,scalable/apps,scalable/categories,scalable/devices,scalable/emblems,scalable/emotes,scalable/filesystems,scalable/intl,scalable/mimetypes,scalable/places,scalable/status,scalable/stock/chart,scalable/stock/code,scalable/stock/data,scalable/stock/form,scalable/stock/image,scalable/stock/io,scalable/stock/media,scalable/stock/navigation,scalable/stock/net,scalable/stock/object,scalable/stock/table,scalable/stock/text
+
+
+[16x16/actions]
+Size=16
+Context=Actions
+Type=Threshold
+
+[16x16/animations]
+Size=16
+Context=Animations
+Type=Threshold
+
+[16x16/apps]
+Size=16
+Context=Applications
+Type=Threshold
+
+[16x16/categories]
+Size=16
+Context=Categories
+Type=Threshold
+
+[16x16/devices]
+Size=16
+Context=Devices
+Type=Threshold
+
+[16x16/emblems]
+Size=16
+Context=Emblems
+Type=Threshold
+
+[16x16/emotes]
+Size=16
+Context=Emotes
+Type=Threshold
+
+[16x16/filesystems]
+Size=16
+Context=FileSystems
+Type=Threshold
+
+[16x16/intl]
+Size=16
+Context=International
+Type=Threshold
+
+[16x16/mimetypes]
+Size=16
+Context=MimeTypes
+Type=Threshold
+
+[16x16/places]
+Size=16
+Context=Places
+Type=Threshold
+
+[16x16/status]
+Size=16
+Context=Status
+Type=Threshold
+
+[16x16/stock/chart]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/code]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/data]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/form]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/image]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/io]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/media]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/navigation]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/net]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/object]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/table]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/text]
+Size=16
+Context=Stock
+Type=Threshold
+
+[22x22/actions]
+Size=22
+Context=Actions
+Type=Threshold
+
+[22x22/animations]
+Size=22
+Context=Animations
+Type=Threshold
+
+[22x22/apps]
+Size=22
+Context=Applications
+Type=Threshold
+
+[22x22/categories]
+Size=22
+Context=Categories
+Type=Threshold
+
+[22x22/devices]
+Size=22
+Context=Devices
+Type=Threshold
+
+[22x22/emblems]
+Size=22
+Context=Emblems
+Type=Threshold
+
+[22x22/emotes]
+Size=22
+Context=Emotes
+Type=Threshold
+
+[22x22/filesystems]
+Size=22
+Context=FileSystems
+Type=Threshold
+
+[22x22/intl]
+Size=22
+Context=International
+Type=Threshold
+
+[22x22/mimetypes]
+Size=22
+Context=MimeTypes
+Type=Threshold
+
+[22x22/places]
+Size=22
+Context=Places
+Type=Threshold
+
+[22x22/status]
+Size=22
+Context=Status
+Type=Threshold
+
+[22x22/stock/chart]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22/stock/code]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22/stock/data]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22/stock/form]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22/stock/image]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22/stock/io]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22/stock/media]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22/stock/navigation]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22/stock/net]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22/stock/object]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22/stock/table]
+Size=22
+Context=Stock
+Type=Threshold
+
+[22x22/stock/text]
+Size=22
+Context=Stock
+Type=Threshold
+
+[24x24/actions]
+Size=24
+Context=Actions
+Type=Threshold
+
+[24x24/animations]
+Size=24
+Context=Animations
+Type=Threshold
+
+[24x24/apps]
+Size=24
+Context=Applications
+Type=Threshold
+
+[24x24/categories]
+Size=24
+Context=Categories
+Type=Threshold
+
+[24x24/devices]
+Size=24
+Context=Devices
+Type=Threshold
+
+[24x24/emblems]
+Size=24
+Context=Emblems
+Type=Threshold
+
+[24x24/emotes]
+Size=24
+Context=Emotes
+Type=Threshold
+
+[24x24/filesystems]
+Size=24
+Context=FileSystems
+Type=Threshold
+
+[24x24/intl]
+Size=24
+Context=International
+Type=Threshold
+
+[24x24/mimetypes]
+Size=24
+Context=MimeTypes
+Type=Threshold
+
+[24x24/places]
+Size=24
+Context=Places
+Type=Threshold
+
+[24x24/status]
+Size=24
+Context=Status
+Type=Threshold
+
+[24x24/stock/chart]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/code]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/data]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/form]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/image]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/io]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/media]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/navigation]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/net]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/object]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/table]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/text]
+Size=24
+Context=Stock
+Type=Threshold
+
+[32x32/actions]
+Size=32
+Context=Actions
+Type=Threshold
+
+[32x32/animations]
+Size=32
+Context=Animations
+Type=Threshold
+
+[32x32/apps]
+Size=32
+Context=Applications
+Type=Threshold
+
+[32x32/categories]
+Size=32
+Context=Categories
+Type=Threshold
+
+[32x32/devices]
+Size=32
+Context=Devices
+Type=Threshold
+
+[32x32/emblems]
+Size=32
+Context=Emblems
+Type=Threshold
+
+[32x32/emotes]
+Size=32
+Context=Emotes
+Type=Threshold
+
+[32x32/filesystems]
+Size=32
+Context=FileSystems
+Type=Threshold
+
+[32x32/intl]
+Size=32
+Context=International
+Type=Threshold
+
+[32x32/mimetypes]
+Size=32
+Context=MimeTypes
+Type=Threshold
+
+[32x32/places]
+Size=32
+Context=Places
+Type=Threshold
+
+[32x32/status]
+Size=32
+Context=Status
+Type=Threshold
+
+[32x32/stock/chart]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/code]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/data]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/form]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/image]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/io]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/media]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/navigation]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/net]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/object]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/table]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/text]
+Size=32
+Context=Stock
+Type=Threshold
+
+[36x36/actions]
+Size=36
+Context=Actions
+Type=Threshold
+
+[36x36/animations]
+Size=36
+Context=Animations
+Type=Threshold
+
+[36x36/apps]
+Size=36
+Context=Applications
+Type=Threshold
+
+[36x36/categories]
+Size=36
+Context=Categories
+Type=Threshold
+
+[36x36/devices]
+Size=36
+Context=Devices
+Type=Threshold
+
+[36x36/emblems]
+Size=36
+Context=Emblems
+Type=Threshold
+
+[36x36/emotes]
+Size=36
+Context=Emotes
+Type=Threshold
+
+[36x36/filesystems]
+Size=36
+Context=FileSystems
+Type=Threshold
+
+[36x36/intl]
+Size=36
+Context=International
+Type=Threshold
+
+[36x36/mimetypes]
+Size=36
+Context=MimeTypes
+Type=Threshold
+
+[36x36/places]
+Size=36
+Context=Places
+Type=Threshold
+
+[36x36/status]
+Size=36
+Context=Status
+Type=Threshold
+
+[36x36/stock/chart]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/code]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/data]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/form]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/image]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/io]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/media]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/navigation]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/net]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/object]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/table]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/text]
+Size=36
+Context=Stock
+Type=Threshold
+
+[48x48/actions]
+Size=48
+Context=Actions
+Type=Threshold
+
+[48x48/animations]
+Size=48
+Context=Animations
+Type=Threshold
+
+[48x48/apps]
+Size=48
+Context=Applications
+Type=Threshold
+
+[48x48/categories]
+Size=48
+Context=Categories
+Type=Threshold
+
+[48x48/devices]
+Size=48
+Context=Devices
+Type=Threshold
+
+[48x48/emblems]
+Size=48
+Context=Emblems
+Type=Threshold
+
+[48x48/emotes]
+Size=48
+Context=Emotes
+Type=Threshold
+
+[48x48/filesystems]
+Size=48
+Context=FileSystems
+Type=Threshold
+
+[48x48/intl]
+Size=48
+Context=International
+Type=Threshold
+
+[48x48/mimetypes]
+Size=48
+Context=MimeTypes
+Type=Threshold
+
+[48x48/places]
+Size=48
+Context=Places
+Type=Threshold
+
+[48x48/status]
+Size=48
+Context=Status
+Type=Threshold
+
+[48x48/stock/chart]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/code]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/data]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/form]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/image]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/io]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/media]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/navigation]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/net]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/object]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/table]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/text]
+Size=48
+Context=Stock
+Type=Threshold
+
+[64x64/actions]
+Size=64
+Context=Actions
+Type=Threshold
+
+[64x64/animations]
+Size=64
+Context=Animations
+Type=Threshold
+
+[64x64/apps]
+Size=64
+Context=Applications
+Type=Threshold
+
+[64x64/categories]
+Size=64
+Context=Categories
+Type=Threshold
+
+[64x64/devices]
+Size=64
+Context=Devices
+Type=Threshold
+
+[64x64/emblems]
+Size=64
+Context=Emblems
+Type=Threshold
+
+[64x64/emotes]
+Size=64
+Context=Emotes
+Type=Threshold
+
+[64x64/filesystems]
+Size=64
+Context=FileSystems
+Type=Threshold
+
+[64x64/intl]
+Size=64
+Context=International
+Type=Threshold
+
+[64x64/mimetypes]
+Size=64
+Context=MimeTypes
+Type=Threshold
+
+[64x64/places]
+Size=64
+Context=Places
+Type=Threshold
+
+[64x64/status]
+Size=64
+Context=Status
+Type=Threshold
+
+[64x64/stock/chart]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64/stock/code]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64/stock/data]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64/stock/form]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64/stock/image]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64/stock/io]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64/stock/media]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64/stock/navigation]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64/stock/net]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64/stock/object]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64/stock/table]
+Size=64
+Context=Stock
+Type=Threshold
+
+[64x64/stock/text]
+Size=64
+Context=Stock
+Type=Threshold
+[72x72/actions]
+Size=72
+Context=Actions
+Type=Threshold
+
+[72x72/animations]
+Size=72
+Context=Animations
+Type=Threshold
+
+[72x72/apps]
+Size=72
+Context=Applications
+Type=Threshold
+
+[72x72/categories]
+Size=72
+Context=Categories
+Type=Threshold
+
+[72x72/devices]
+Size=72
+Context=Devices
+Type=Threshold
+
+[72x72/emblems]
+Size=72
+Context=Emblems
+Type=Threshold
+
+[72x72/emotes]
+Size=72
+Context=Emotes
+Type=Threshold
+
+[72x72/filesystems]
+Size=72
+Context=FileSystems
+Type=Threshold
+
+[72x72/intl]
+Size=72
+Context=International
+Type=Threshold
+
+[72x72/mimetypes]
+Size=72
+Context=MimeTypes
+Type=Threshold
+
+[72x72/places]
+Size=72
+Context=Places
+Type=Threshold
+
+[72x72/status]
+Size=72
+Context=Status
+Type=Threshold
+
+[72x72/stock/chart]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72/stock/code]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72/stock/data]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72/stock/form]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72/stock/image]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72/stock/io]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72/stock/media]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72/stock/navigation]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72/stock/net]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72/stock/object]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72/stock/table]
+Size=72
+Context=Stock
+Type=Threshold
+
+[72x72/stock/text]
+Size=72
+Context=Stock
+Type=Threshold
+
+[96x96/actions]
+Size=96
+Context=Actions
+Type=Threshold
+
+[96x96/animations]
+Size=96
+Context=Animations
+Type=Threshold
+
+[96x96/apps]
+Size=96
+Context=Applications
+Type=Threshold
+
+[96x96/categories]
+Size=96
+Context=Categories
+Type=Threshold
+
+[96x96/devices]
+Size=96
+Context=Devices
+Type=Threshold
+
+[96x96/emblems]
+Size=96
+Context=Emblems
+Type=Threshold
+
+[96x96/emotes]
+Size=96
+Context=Emotes
+Type=Threshold
+
+[96x96/filesystems]
+Size=96
+Context=FileSystems
+Type=Threshold
+
+[96x96/intl]
+Size=96
+Context=International
+Type=Threshold
+
+[96x96/mimetypes]
+Size=96
+Context=MimeTypes
+Type=Threshold
+
+[96x96/places]
+Size=96
+Context=Places
+Type=Threshold
+
+[96x96/status]
+Size=96
+Context=Status
+Type=Threshold
+
+[96x96/stock/chart]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96/stock/code]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96/stock/data]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96/stock/form]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96/stock/image]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96/stock/io]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96/stock/media]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96/stock/navigation]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96/stock/net]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96/stock/object]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96/stock/table]
+Size=96
+Context=Stock
+Type=Threshold
+
+[96x96/stock/text]
+Size=96
+Context=Stock
+Type=Threshold
+
+[128x128/actions]
+Size=128
+Context=Actions
+Type=Threshold
+
+[128x128/animations]
+Size=128
+Context=Animations
+Type=Threshold
+
+[128x128/apps]
+Size=128
+Context=Applications
+Type=Threshold
+
+[128x128/categories]
+Size=128
+Context=Categories
+Type=Threshold
+
+[128x128/devices]
+Size=128
+Context=Devices
+Type=Threshold
+
+[128x128/emblems]
+Size=128
+Context=Emblems
+Type=Threshold
+
+[128x128/emotes]
+Size=128
+Context=Emotes
+Type=Threshold
+
+[128x128/filesystems]
+Size=128
+Context=FileSystems
+Type=Threshold
+
+[128x128/intl]
+Size=128
+Context=International
+Type=Threshold
+
+[128x128/mimetypes]
+Size=128
+Context=MimeTypes
+Type=Threshold
+
+[128x128/places]
+Size=128
+Context=Places
+Type=Threshold
+
+[128x128/status]
+Size=128
+Context=Status
+Type=Threshold
+
+[128x128/stock/chart]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128/stock/code]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128/stock/data]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128/stock/form]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128/stock/image]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128/stock/io]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128/stock/media]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128/stock/navigation]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128/stock/net]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128/stock/object]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128/stock/table]
+Size=128
+Context=Stock
+Type=Threshold
+
+[128x128/stock/text]
+Size=128
+Context=Stock
+Type=Threshold
+
+[192x192/actions]
+Size=192
+Context=Actions
+Type=Threshold
+
+[192x192/animations]
+Size=192
+Context=Animations
+Type=Threshold
+
+[192x192/apps]
+Size=192
+Context=Applications
+Type=Threshold
+
+[192x192/categories]
+Size=192
+Context=Categories
+Type=Threshold
+
+[192x192/devices]
+Size=192
+Context=Devices
+Type=Threshold
+
+[192x192/emblems]
+Size=192
+Context=Emblems
+Type=Threshold
+
+[192x192/emotes]
+Size=192
+Context=Emotes
+Type=Threshold
+
+[192x192/filesystems]
+Size=192
+Context=FileSystems
+Type=Threshold
+
+[192x192/intl]
+Size=192
+Context=International
+Type=Threshold
+
+[192x192/mimetypes]
+Size=192
+Context=MimeTypes
+Type=Threshold
+
+[192x192/places]
+Size=192
+Context=Places
+Type=Threshold
+
+[192x192/status]
+Size=192
+Context=Status
+Type=Threshold
+
+[192x192/stock/chart]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192/stock/code]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192/stock/data]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192/stock/form]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192/stock/image]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192/stock/io]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192/stock/media]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192/stock/navigation]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192/stock/net]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192/stock/object]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192/stock/table]
+Size=192
+Context=Stock
+Type=Threshold
+
+[192x192/stock/text]
+Size=192
+Context=Stock
+Type=Threshold
+
+[256x256/actions]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Actions
+Type=Scalable
+
+[256x256/animations]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Animations
+Type=Scalable
+
+[256x256/apps]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Applications
+Type=Scalable
+
+[256x256/categories]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Categories
+Type=Scalable
+
+[256x256/devices]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Devices
+Type=Scalable
+
+[256x256/emblems]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Emblems
+Type=Scalable
+
+[256x256/emotes]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Emotes
+Type=Scalable
+
+[256x256/filesystems]
+MinSize=64
+Size=256
+MaxSize=256
+Context=FileSystems
+Type=Scalable
+
+[256x256/intl]
+MinSize=64
+Size=256
+MaxSize=256
+Context=International
+Type=Scalable
+
+[256x256/mimetypes]
+MinSize=64
+Size=256
+MaxSize=256
+Context=MimeTypes
+Type=Scalable
+
+[256x256/places]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Places
+Type=Scalable
+
+[256x256/status]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Status
+Type=Scalable
+
+[256x256/stock/chart]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/code]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/data]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/form]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/image]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/io]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/media]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/navigation]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/net]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/object]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/table]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[256x256/stock/text]
+MinSize=64
+Size=256
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/actions]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Actions
+Type=Scalable
+
+[scalable/animations]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Animations
+Type=Scalable
+
+[scalable/apps]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Applications
+Type=Scalable
+
+[scalable/categories]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Categories
+Type=Scalable
+
+[scalable/devices]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Devices
+Type=Scalable
+
+[scalable/emblems]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Emblems
+Type=Scalable
+
+[scalable/emotes]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Emotes
+Type=Scalable
+
+[scalable/filesystems]
+MinSize=1
+Size=128
+MaxSize=256
+Context=FileSystems
+Type=Scalable
+
+[scalable/intl]
+MinSize=1
+Size=128
+MaxSize=256
+Context=International
+Type=Scalable
+
+[scalable/mimetypes]
+MinSize=1
+Size=128
+MaxSize=256
+Context=MimeTypes
+Type=Scalable
+
+[scalable/places]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Places
+Type=Scalable
+
+[scalable/status]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Status
+Type=Scalable
+
+[scalable/stock/chart]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/code]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/data]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/form]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/image]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/io]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/media]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/navigation]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/net]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/object]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/table]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
+[scalable/stock/text]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Stock
+Type=Scalable
+
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/scalable/apps/accessibility.svg b/remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/scalable/apps/accessibility.svg
new file mode 100644
index 00000000..d6347d3c
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/scalable/apps/accessibility.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg id="svg3341" xmlns="http://www.w3.org/2000/svg" height="24" width="24" version="1.0">
+ <g id="layer1">
+ <path id="path3339" style="opacity:.6;fill-rule:evenodd;fill:#eae3d0" d="m12 2c-5.515 0-10 4.485-10 10s4.485 10 10 10 10-4.485 10-10-4.485-10-10-10zm-2.125 5.5312c-0.0098 0.0836-0.0938 0.1328-0.0938 0.2188 0 0.2991 0.2052 0.5169 0.3128 0.7812l-1.3752-0.2187c0.3473-0.3086 0.7316-0.5788 1.1562-0.7813zm4.437 0.125c0.347 0.1853 0.678 0.3975 0.969 0.6563l-1.25 0.1875c0.101-0.2568 0.313-0.4612 0.313-0.75 0-0.0356-0.03-0.0585-0.032-0.0938zm-7.062 3.1558l2.4062 0.75-0.0312 1.5-0.8125 2.469c-1.0229-0.902-1.8125-2.057-1.8125-3.531 0-0.424 0.1516-0.795 0.25-1.188zm9.5 0.032c0.094 0.383 0.25 0.743 0.25 1.156 0 1.504-0.704 2.806-1.75 3.719l-0.844-2.657-0.031-1.374 2.375-0.844zm-4.75 4.812l0.594 1.219c-0.205 0.025-0.382 0.125-0.594 0.125-0.209 0-0.391-0.126-0.594-0.156l0.594-1.188z"/>
+ <path id="path3157" style="fill-rule:evenodd;fill:#3a3935" d="m12 3c-4.968 0-9 4.032-9 9s4.032 9 9 9 9-4.032 9-9-4.032-9-9-9zm0 3c3.312 0 6 2.688 6 6s-2.688 6-6 6-6-2.688-6-6 2.688-6 6-6zm0.062 0.5c-0.713 0-1.281 0.5547-1.281 1.25s0.568 1.2812 1.281 1.2812c0.714 0 1.282-0.5859 1.282-1.2812s-0.568-1.25-1.282-1.25zm-4.6558 2.5938c-0.0698-0.0086-0.1241 0.0014-0.1874 0.0312-0.1268 0.0596-0.2171 0.1782-0.2188 0.3125-0.0016 0.1344 0.0936 0.25 0.2188 0.3125l3.4372 1.062-0.031 2.469-1.2188 3.657c-0.1168 0.166-0.0815 0.357 0.0938 0.468s0.4456 0.073 0.562-0.094l1.938-3.937 1.938 3.937c0.103 0.173 0.318 0.224 0.5 0.126 0.181-0.099 0.26-0.297 0.156-0.469l-1.188-3.688-0.062-2.281 3.5-1.25c0.141-0.0939 0.186-0.2846 0.125-0.4375s-0.236-0.2373-0.407-0.2187c-0.059 0.0094-0.107 0.0278-0.156 0.0624l-4.406 0.6876-4.375-0.6876c-0.0567-0.0401-0.1489-0.0539-0.2188-0.0624z"/>
+ </g>
+</svg>
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/scalable/apps/system-shutdown.svg b/remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/scalable/apps/system-shutdown.svg
new file mode 100644
index 00000000..e7882163
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/icons/hicolor/scalable/apps/system-shutdown.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg id="svg2407" xmlns="http://www.w3.org/2000/svg" height="24" width="24" version="1.0">
+ <g id="layer1">
+ <path id="path2405" style="opacity:.6;fill-rule:evenodd;fill:#eae3d0" d="m12.062 1c-0.854 0-1.562 0.7084-1.562 1.5625v7.4995c0 0.855 0.708 1.563 1.562 1.563 0.855 0 1.563-0.708 1.563-1.563v-7.4995c0-0.8541-0.708-1.5625-1.563-1.5625zm4.219 2.5625c-0.118 0.0174-0.227 0.0721-0.312 0.1563-0.82 0.009-1.634 0.3718-1.938 1.1874-0.278 0.7469 0.033 1.4814 0.531 2.0313 0.006 0.0063-0.005 0.025 0 0.0313 0.016 0.0441 0.037 0.0861 0.063 0.125 0.042 0.088 0.107 0.1634 0.187 0.2187 0.011 0.0108 0.021 0.0212 0.032 0.0313 0.129 0.0781 0.217 0.143 0.281 0.1874-0.003-0.002 0.038 0.0358 0.156 0.125 0.048 0.0359 0.1 0.0739 0.125 0.0938 0.075 0.0598 0.171 0.1486 0.282 0.25 0 0.0002 0.01 0.0136 0.062 0.0625 0.094 0.0894 0.177 0.1709 0.25 0.25 0.087 0.0936 0.119 0.1492 0.125 0.1563 0.092 0.1074 0.134 0.1112 0.094 0.0624 0.038 0.046 0.105 0.1151 0.156 0.1876 0.003 0.01 0 0.0311 0 0.0312 0.024 0.0344 0.036 0.0568 0.063 0.0938 0.004 0.0085-0.001 0.0311 0 0.0312 0.108 0.1535 0.221 0.2726 0.281 0.375 0.028 0.0488 0.059 0.1522 0.125 0.2812 0.05 0.0978 0.094 0.1501 0.125 0.2188 0.041 0.0913 0.07 0.1421 0.062 0.125 0.053 0.1247 0.084 0.254 0.125 0.375 0.037 0.109 0.088 0.265 0.125 0.406 0.051 0.194 0.068 0.334 0.094 0.5 0.028 0.179 0.053 0.354 0.063 0.532 0.009 0.171 0.007 0.348 0 0.531-0.003 0.055-0.02 0.155-0.032 0.281-0.008 0.093-0.02 0.173-0.031 0.25-0.024 0.17-0.022 0.183 0 0.031-0.024 0.16-0.027 0.321-0.063 0.469-0.007 0.033-0.036 0.092-0.062 0.188-0.038 0.137-0.044 0.199-0.031 0.156-0.029 0.094-0.061 0.158-0.094 0.25 0.018-0.05-0.028-0.007-0.094 0.156-0.069 0.172-0.094 0.313-0.125 0.375-0.023 0.03-0.04 0.018-0.062 0.063-0.083 0.163-0.149 0.324-0.219 0.437-0.075 0.12-0.163 0.235-0.219 0.313-0.013 0.014-0.017 0.012-0.031 0.031-0.071 0.096-0.138 0.19-0.187 0.25-0.055 0.065-0.111 0.137-0.157 0.187-0.097 0.108-0.162 0.162-0.187 0.188-0.026 0.025-0.08 0.09-0.188 0.187-0.063 0.058-0.116 0.098-0.187 0.157-0.113 0.092-0.203 0.162-0.281 0.218-0.071 0.051-0.125 0.094-0.126 0.094-0.077 0.053-0.2 0.136-0.343 0.219-0.101 0.058-0.133 0.052-0.094 0.031-0.148 0.082-0.246 0.174-0.344 0.219 0.03-0.014-0.042-0.029-0.187 0.031-0.108 0.045-0.2 0.096-0.282 0.125-0.015 0.004-0.015-0.006-0.031 0-0.165 0.057-0.299 0.128-0.406 0.156h-0.031c-0.128 0.034-0.253 0.031-0.438 0.063-0.194 0.033-0.221 0.05-0.094 0.031-0.058 0.009-0.164 0.02-0.281 0.031-0.271 0.028-0.492 0.043-0.75 0.032-0.073-0.004-0.098-0.002-0.062 0 0.026 0.001-0.044-0.019-0.188-0.032-0.161-0.014-0.264-0.019-0.343-0.031-0.156-0.024-0.338-0.031-0.469-0.063 0.038 0.01 0.043-0.003-0.063-0.031-0.056-0.014-0.117-0.029-0.125-0.031-0.126-0.036-0.27-0.106-0.406-0.156-0.018-0.008-0.01 0.008-0.031 0-0.026-0.013 0.002-0.019-0.032-0.032-0.2052-0.078-0.3377-0.107-0.437-0.156-0.0301-0.023-0.0179-0.04-0.0625-0.062-0.1405-0.071-0.2696-0.127-0.375-0.188-0.0176-0.01-0.0463-0.021-0.0625-0.031-0.0119-0.009 0.0144-0.022 0-0.031-0.1686-0.107-0.3206-0.191-0.4375-0.282-0.1095-0.084-0.1923-0.137-0.25-0.187-0.1097-0.096-0.1704-0.135-0.125-0.094-0.0415-0.038-0.0835-0.114-0.1563-0.187-0.0729-0.073-0.1494-0.115-0.1874-0.156-0.0685-0.075-0.16-0.218-0.2813-0.376-0.0905-0.116-0.175-0.268-0.2813-0.437-0.0106-0.017-0.022 0.013-0.0312 0-0.0349-0.056-0.0156-0.047-0.0312-0.063-0.0806-0.132-0.1514-0.269-0.2188-0.406 0.0072 0.015-0.0119-0.014-0.0625-0.125-0.0421-0.092-0.068-0.217-0.0937-0.281-0.0535-0.133-0.0787-0.137-0.0626-0.094-0.0058-0.031 0.0131-0.026 0-0.062-0.0147-0.041-0.0429-0.128-0.0624-0.188-0.0499-0.153-0.1071-0.242-0.125-0.312-0.0341-0.133-0.0421-0.264-0.0626-0.375-0.0249-0.137-0.0508-0.244-0.0624-0.344 0.0016 0.014 0.0125-0.087 0-0.281-0.0109-0.167-0.031-0.248-0.0313-0.282-0.001-0.122 0.0175-0.321 0.0313-0.5 0.0112-0.146 0.0371-0.281 0.0624-0.437 0.0337-0.207 0.0278-0.336 0.0626-0.469-0.0096 0.037 0.0056-0.001 0.0312-0.094 0.0244-0.087 0.098-0.244 0.1562-0.406 0.0102-0.028-0.0047-0.033 0-0.062-0.0129 0.034 0.0313-0.005 0.0938-0.1565 0.0593-0.1439 0.0488-0.2265 0.0312-0.1875 0.0509-0.1129 0.1247-0.2273 0.1876-0.3438 0.0458-0.0852 0.0866-0.169 0.1562-0.2812 0.0473-0.0763 0.1282-0.165 0.1875-0.25 0.0492-0.0698 0.0979-0.1444 0.1563-0.2188 0.0416-0.0537 0.0843-0.1074 0.125-0.1562 0.1109-0.1316 0.1011-0.1424 0.0312-0.0625 0.0503-0.0574 0.1728-0.1412 0.2812-0.25 0.1013-0.1015 0.1914-0.1783 0.3126-0.2813 0.1069-0.0908 0.1836-0.1919 0.2187-0.2187 0.1528-0.118 0.1806-0.1513 0.0625-0.0625 0.0655-0.0488 0.1399-0.0837 0.25-0.1562 0.2086-0.1387 0.2257-0.1675 0.0625-0.0626-0.0429 0.0274-0.0282 0.0112 0.0937-0.0624 0.0215-0.0092 0.0424-0.0196 0.0626-0.0313 0.3864-0.3189 0.6537-0.7266 0.75-1.125 0.0962-0.3984 0.0622-0.7429 0.0312-1.125-0.0029-0.0533-0.0134-0.1059-0.0312-0.1563-0.323-0.8664-1.1896-1.271-2.0626-1.2187-0.0608-0.0356-0.1242-0.0827-0.1874-0.0937-0.124-0.0217-0.1233 0.0429-0.1876 0.0624-0.0497 0.0152-0.1295-0.0171-0.1562 0-0.0108 0.0101-0.0212 0.0205-0.0312 0.0313-0.0046 0.0029-0.0273-0.0023-0.0313 0-0.055 0.0322-0.0954 0.0323-0.0937 0.0313-0.0933 0.0409-0.1728 0.1079-0.25 0.1562-0.5705 0.3551-1.1124 0.7532-1.5938 1.2188-0.4041 0.3908-0.7975 0.828-1.125 1.2812-0.1436 0.1987-0.2331 0.3839-0.3438 0.5625-0.0957 0.1527-0.1737 0.2646-0.2187 0.3437-0.0529 0.094-0.1309 0.2315-0.2187 0.4063-0.0284 0.0561-0.0594 0.1155-0.0938 0.1875-0.1169 0.2457-0.2269 0.4917-0.3125 0.7188-0.0032 0.0083 0.0031 0.0229 0 0.0312-0.0124 0.026-0.0184-0.0032-0.0313 0.0312-0.0001 0.0003-0.0311 0.0934-0.0312 0.0938-0.0034 0.0127 0 0.0314 0 0.0312-0.0015 0.012 0.0005 0.0244 0 0.0313-0.0015 0.0115 0.0005 0.0249 0 0.0313-0.0427 0.132-0.0901 0.2604-0.125 0.375-0.0931 0.3063-0.2142 0.6513-0.2812 1.0002-0.0279 0.144-0.0248 0.209-0.0313 0.25-0.0181 0.112-0.0227 0.217-0.0313 0.281-0.025 0.189-0.0478 0.38-0.0624 0.594-0.015 0.217-0.0326 0.437-0.0313 0.687 0.0012 0.234 0.0155 0.447 0.0313 0.657 0.0088 0.118 0.0201 0.242 0.0312 0.343 0.018 0.164 0.0304 0.34 0.0625 0.531 0.021 0.126 0.038 0.163 0.0313 0.126 0.0375 0.205 0.1098 0.406 0.1562 0.593 0.0381 0.154 0.0596 0.322 0.125 0.531 0.0528 0.17 0.1081 0.338 0.1562 0.469 0.0025 0.011-0.0034 0.022 0 0.031 0.0552 0.148 0.1073 0.27 0.125 0.313 0.0495 0.121 0.1174 0.255 0.1876 0.406 0.0912 0.197 0.1768 0.333 0.25 0.469 0.0901 0.168 0.197 0.346 0.3124 0.531-0.0368-0.059-0.0352-0.011 0.0313 0.094 0.1173 0.185 0.249 0.36 0.375 0.531 0.1429 0.195 0.271 0.372 0.4063 0.532-0.0544-0.065-0.0169-0.034 0.0937 0.093 0.067 0.077 0.089 0.092 0.0625 0.063 0.1452 0.163 0.2672 0.298 0.375 0.406 0.1077 0.108 0.2432 0.23 0.4062 0.375 0.0869 0.077 0.1323 0.136 0.1563 0.156 0.1624 0.138 0.3471 0.281 0.5625 0.438 0.0109 0.008 0.0759 0.079 0.1875 0.156 0.1792 0.124 0.3643 0.226 0.5625 0.344 0.1382 0.081 0.2235 0.141 0.25 0.156 0.2003 0.111 0.3954 0.189 0.5938 0.281 0.151 0.07 0.2854 0.138 0.4062 0.188 0.0435 0.018 0.1646 0.07 0.3125 0.125 0.0093 0.003 0.0203-0.003 0.0313 0 0.1922 0.07 0.3805 0.11 0.5312 0.156 0.1387 0.042 0.3125 0.103 0.5312 0.156 0.2908 0.071 0.5538 0.146 0.8438 0.188 0.031 0.004 0.118 0.018 0.219 0.031 0.25 0.031 0.492 0.052 0.75 0.062 0.272 0.012 0.541 0.012 0.812 0 0.258-0.01 0.5-0.031 0.75-0.062 0.129-0.016 0.206-0.034 0.188-0.031-0.12 0.017-0.082 0.032 0.125 0 0.271-0.042 0.532-0.127 0.781-0.188 0.218-0.053 0.393-0.114 0.531-0.156 0.167-0.051 0.334-0.095 0.5-0.156 0.191-0.07 0.337-0.163 0.469-0.219 0.019-0.008 0.105-0.027 0.25-0.094 0.238-0.109 0.505-0.204 0.75-0.344-0.028 0.016-0.011-0.019 0.062-0.062 0.232-0.134 0.423-0.257 0.594-0.375 0.073-0.05 0.187-0.125 0.313-0.219 0.044-0.032 0.075-0.055 0.125-0.094 0.205-0.158 0.38-0.332 0.531-0.468 0.02-0.018 0.086-0.061 0.187-0.156 0.061-0.058 0.127-0.096 0.157-0.126 0.127-0.125 0.253-0.266 0.406-0.437 0.122-0.136 0.205-0.257 0.25-0.313 0.123-0.148 0.205-0.258 0.313-0.406 0.049-0.067 0.1-0.134 0.093-0.125-0.081 0.115-0.04 0.101 0.094-0.093 0.124-0.18 0.226-0.365 0.344-0.563 0.033-0.057 0.02-0.061 0.031-0.094 0.054-0.093 0.067-0.111 0.062-0.093 0.079-0.134 0.167-0.27 0.25-0.438 0.006-0.012 0.017-0.031 0.032-0.062 0.135-0.279 0.27-0.594 0.375-0.876 0.093-0.248 0.151-0.483 0.219-0.718 0.012-0.028 0.022-0.03 0.031-0.063 0.004-0.016-0.003-0.015 0-0.031 0.004-0.017-0.003-0.015 0-0.031 0.036-0.132 0.086-0.292 0.125-0.469 0.042-0.196 0.097-0.382 0.125-0.562 0.029-0.193 0.018-0.221 0-0.094 0.018-0.125 0.045-0.286 0.062-0.469 0.014-0.15 0.025-0.311 0.031-0.469 0.003-0.061 0.001-0.07 0-0.062 0.008-0.228 0.009-0.491 0-0.719 0-0.005 0.006-0.05 0-0.156-0.003-0.065-0.02-0.056-0.031-0.094-0.003-0.052 0.007-0.037 0-0.063-0.011-0.024-0.028-0.087-0.031-0.093-0.014-0.16-0.011-0.317-0.031-0.469 0.009 0.073 0.033-0.004 0-0.219-0.041-0.26-0.128-0.483-0.188-0.7185-0.001 0.0119 0.01 0.0042-0.031-0.1563-0.002-0.0323 0.017-0.028 0-0.0937-0.055-0.2094-0.127-0.3628-0.188-0.5313 0-0.0057 0.001-0.0234 0-0.0312 0-0.0063 0.001-0.0229 0-0.0312-0.001-0.0066 0.004-0.0186 0-0.0313-0.003-0.0227-0.031-0.0935-0.031-0.0937-0.014-0.0417-0.028-0.0963-0.062-0.1876-0.069-0.1848-0.159-0.3305-0.219-0.4687-0.033-0.0756-0.046-0.0964-0.031-0.0625-0.006-0.0154 0.007-0.0156 0-0.0312-0.088-0.195-0.169-0.3405-0.219-0.4376-0.086-0.1688-0.195-0.3655-0.312-0.5624-0.127-0.212-0.23-0.4409-0.407-0.6876-0.03-0.0423-0.018-0.0159-0.031-0.0312-0.04-0.0552-0.024-0.0239-0.031-0.0312-0.002-0.0003 0-0.0328 0-0.0313-0.194-0.2657-0.366-0.4382-0.5-0.5937-0.165-0.1902-0.368-0.4064-0.594-0.625-0.217-0.2102-0.432-0.3751-0.625-0.5313-0.282-0.2291-0.578-0.464-0.938-0.6875-0.01-0.0003-0.02-0.0003-0.031 0-0.029-0.0239-0.06-0.0449-0.093-0.0625-0.021-0.0117-0.042-0.0221-0.063-0.0313-0.033-0.0167-0.059-0.0473-0.094-0.0624 0.087 0.0498 0.055 0.0058-0.125-0.0938-0.114-0.064-0.246-0.0861-0.375-0.0625z"/>
+ <path id="path2404" style="fill-rule:evenodd;fill:#3a3935" d="m12.052 1.5594c-0.554 0-1.001 0.4463-1.001 1.0006v7.504c0 0.554 0.447 1.001 1.001 1.001s1.001-0.447 1.001-1.001v-7.504c0-0.5543-0.447-1.0006-1.001-1.0006zm-4.5493 2.6577c-0.097 0.0362-0.1812 0.0879-0.2658 0.1407-0.0001-0.0001 0-0.0156 0-0.0156-0.5418 0.3373-1.0371 0.7391-1.4851 1.1725-0.3817 0.3691-0.724 0.7621-1.0318 1.1881-0.1262 0.1745-0.2465 0.3489-0.3596 0.5315-0.0671 0.1071-0.1247 0.2177-0.1876 0.3283-0.07 0.1242-0.1393 0.248-0.2032 0.3752-0.03 0.0593-0.0651 0.1119-0.0938 0.172-0.1083 0.2274-0.2081 0.4678-0.2971 0.7035-0.0041 0.0109-0.0115 0.0203-0.0156 0.0313-0.0018 0.0047 0.0017 0.0109 0 0.0156-0.0634 0.1706-0.119 0.3416-0.172 0.5159-0.0929 0.3057-0.1753 0.6146-0.2345 0.9219-0.0169 0.088-0.0326 0.178-0.0469 0.266-0.0134 0.083-0.0202 0.167-0.0313 0.25-0.025 0.189-0.0494 0.372-0.0625 0.563-0.0152 0.221-0.0167 0.437-0.0156 0.657 0.001 0.21 0.0156 0.417 0.0312 0.625 0.0078 0.103 0.0043 0.21 0.0157 0.313 0.0185 0.168 0.0502 0.334 0.0781 0.5 0.007 0.041 0.0082 0.084 0.0157 0.125 0.0339 0.186 0.0797 0.364 0.125 0.547 0.043 0.174 0.087 0.344 0.1408 0.516 0.0441 0.142 0.0896 0.283 0.1407 0.422 0.0057 0.016 0.0098 0.032 0.0156 0.047 0.0334 0.09 0.0734 0.178 0.1094 0.266 0.0534 0.13 0.1126 0.263 0.172 0.391 0.0739 0.159 0.1523 0.316 0.2345 0.469 0.0912 0.17 0.1794 0.336 0.2814 0.5 0.0137 0.022 0.033 0.041 0.0469 0.063 0.109 0.171 0.2233 0.336 0.3439 0.5 0.1256 0.171 0.2546 0.34 0.3909 0.5 0.026 0.031 0.0516 0.064 0.0781 0.094 0.0192 0.022 0.0432 0.041 0.0626 0.062 0.116 0.131 0.2367 0.253 0.3595 0.376 0.1227 0.123 0.2449 0.243 0.3752 0.359 0.0525 0.047 0.1029 0.096 0.1564 0.141 0.1706 0.145 0.3488 0.289 0.5315 0.422 0.0574 0.042 0.1136 0.085 0.172 0.125 0.1725 0.119 0.3491 0.236 0.5315 0.344 0.0768 0.045 0.1564 0.082 0.2345 0.125 0.1834 0.101 0.3703 0.192 0.5628 0.281 0.1278 0.06 0.2604 0.119 0.3908 0.172 0.0881 0.036 0.176 0.076 0.2658 0.11 0.0156 0.006 0.0312 0.01 0.0469 0.016 0.1593 0.058 0.3221 0.106 0.4846 0.156 0.1673 0.051 0.3322 0.1 0.5003 0.141 0.2734 0.066 0.5384 0.132 0.8134 0.172 0.061 0.008 0.125 0.007 0.187 0.015 0.239 0.03 0.481 0.053 0.719 0.063 0.258 0.011 0.511 0.011 0.766 0 0.239-0.01 0.48-0.033 0.719-0.063 0.052-0.006 0.105-0.008 0.157-0.015 0.041-0.006 0.084-0.01 0.125-0.016 0.244-0.038 0.492-0.098 0.735-0.156 0.167-0.041 0.333-0.091 0.5-0.141 0.159-0.048 0.313-0.1 0.469-0.156 0.154-0.057 0.303-0.124 0.453-0.188 0.078-0.033 0.158-0.059 0.235-0.094 0.234-0.108 0.467-0.218 0.688-0.344 0.022-0.012 0.04-0.034 0.062-0.047 0.195-0.112 0.38-0.234 0.563-0.359 0.096-0.066 0.188-0.134 0.281-0.204 0.045-0.033 0.097-0.059 0.141-0.093 0.172-0.134 0.339-0.278 0.5-0.422 0.058-0.052 0.116-0.104 0.172-0.157 0.043-0.04 0.083-0.083 0.125-0.125 0.137-0.134 0.278-0.263 0.407-0.406 0.079-0.089 0.142-0.19 0.219-0.282 0.113-0.137 0.222-0.277 0.328-0.422 0.019-0.026 0.043-0.051 0.063-0.078 0.026-0.037 0.052-0.072 0.078-0.109 0.119-0.173 0.236-0.35 0.344-0.532 0.015-0.026 0.031-0.052 0.047-0.078 0.097-0.169 0.194-0.341 0.281-0.516 0.01-0.02 0.021-0.042 0.031-0.063 0.125-0.257 0.229-0.529 0.328-0.797 0.084-0.225 0.153-0.456 0.219-0.688 0.008-0.027 0.024-0.051 0.032-0.078 0.003-0.011 0.012-0.02 0.015-0.031 0.041-0.151 0.077-0.3 0.11-0.453 0.038-0.178 0.066-0.354 0.093-0.532 0.005-0.031 0.012-0.063 0.016-0.094 0.021-0.144 0.034-0.292 0.047-0.438 0.013-0.145 0.025-0.293 0.031-0.437 0.001-0.026-0.001-0.052 0-0.078 0.008-0.215 0.008-0.429 0-0.641-0.002-0.053 0.003-0.105 0-0.157-0.001-0.031-0.013-0.062-0.015-0.094-0.013-0.201-0.036-0.394-0.063-0.594-0.009-0.068-0.005-0.135-0.016-0.203-0.043-0.279-0.1-0.566-0.171-0.844-0.005-0.0162-0.012-0.0308-0.016-0.0469-0.059-0.2259-0.126-0.4481-0.203-0.6723-0.002-0.0045 0.001-0.0111 0-0.0156-0.022-0.0631-0.039-0.1247-0.063-0.1876-0.058-0.1557-0.137-0.303-0.203-0.4534-0.009-0.0192-0.007-0.0433-0.016-0.0625-0.005-0.0108-0.011-0.0205-0.015-0.0313-0.063-0.1391-0.135-0.2721-0.204-0.4065-0.089-0.1749-0.181-0.3469-0.281-0.5159-0.133-0.2227-0.271-0.4455-0.422-0.6566-0.004-0.0059-0.011-0.0097-0.016-0.0156-0.007-0.0092-0.009-0.022-0.015-0.0313-0.148-0.2029-0.32-0.3878-0.485-0.5784-0.174-0.201-0.355-0.3926-0.547-0.5784-0.185-0.1792-0.377-0.3522-0.579-0.5159-0.286-0.2322-0.573-0.4588-0.891-0.6566 0 0-0.015 0.0155-0.015 0.0156-0.081-0.0504-0.159-0.1055-0.251-0.1407-0.003-0.0022-0.011 0.0022-0.015 0-0.043-0.0246-0.082-0.0542-0.125-0.0782l-0.016 0.0469c-0.736-0.1921-1.511 0.1946-1.782 0.9224-0.243 0.6512 0.02 1.352 0.563 1.7353l-0.016 0.0313c0.107 0.0646 0.21 0.132 0.313 0.2032 0.065 0.0457 0.124 0.0927 0.187 0.1407 0.041 0.0306 0.085 0.0622 0.125 0.0938 0.107 0.0856 0.213 0.1737 0.313 0.2658 0.028 0.0249 0.051 0.0527 0.078 0.0781 0.095 0.0908 0.193 0.1695 0.282 0.2658 0.051 0.0549 0.091 0.115 0.14 0.172 0.029 0.033 0.067 0.0602 0.094 0.0938 0.088 0.1059 0.17 0.2312 0.25 0.3439 0.005 0.0059 0.012 0.0097 0.016 0.0156 0.096 0.1365 0.18 0.2761 0.266 0.4221 0.056 0.0968 0.12 0.1962 0.172 0.2971 0.045 0.089 0.084 0.1746 0.125 0.2657 0.018 0.0411 0.029 0.0834 0.047 0.1251 0.056 0.1337 0.109 0.2689 0.156 0.4065 0.047 0.138 0.088 0.281 0.125 0.422 0.051 0.196 0.094 0.382 0.125 0.579s0.052 0.397 0.063 0.594c0.01 0.196 0.008 0.399 0 0.594-0.005 0.101-0.006 0.195-0.016 0.297-0.009 0.094-0.018 0.188-0.031 0.281-0.002 0.01 0.001 0.021 0 0.031-0.025 0.171-0.07 0.333-0.11 0.501-0.017 0.071-0.027 0.147-0.047 0.218-0.014 0.052-0.031 0.105-0.046 0.157-0.031 0.101-0.058 0.197-0.094 0.297-0.023 0.064-0.053 0.124-0.078 0.187-0.054 0.133-0.111 0.265-0.172 0.391-0.014 0.027-0.034 0.052-0.047 0.078-0.08 0.158-0.159 0.321-0.25 0.469-0.07 0.112-0.143 0.221-0.219 0.329-0.02 0.027-0.043 0.051-0.063 0.078-0.064 0.086-0.135 0.167-0.203 0.25-0.056 0.067-0.114 0.139-0.172 0.203-0.066 0.074-0.133 0.149-0.203 0.219s-0.146 0.137-0.219 0.203c-0.072 0.066-0.143 0.126-0.219 0.188-0.103 0.085-0.204 0.173-0.313 0.25-0.04 0.029-0.084 0.051-0.125 0.078-0.118 0.081-0.235 0.163-0.359 0.235-0.034 0.019-0.075 0.028-0.11 0.047-0.134 0.074-0.267 0.155-0.406 0.219-0.062 0.028-0.125 0.052-0.188 0.078-0.103 0.043-0.207 0.072-0.312 0.109-0.011 0.004-0.021 0.012-0.032 0.016-0.15 0.052-0.299 0.1-0.453 0.14-0.17 0.045-0.33 0.081-0.5 0.11-0.036 0.006-0.074 0.01-0.11 0.016-0.098 0.014-0.198 0.021-0.297 0.031-0.287 0.029-0.568 0.044-0.86 0.031-0.021-0.001-0.041 0.001-0.062 0-0.067-0.004-0.136-0.01-0.203-0.016-0.132-0.011-0.261-0.026-0.391-0.046-0.16-0.025-0.325-0.056-0.485-0.094-0.036-0.009-0.073-0.022-0.109-0.032-0.037-0.009-0.073-0.02-0.11-0.031-0.157-0.044-0.316-0.099-0.4688-0.156-0.0111-0.004-0.0202-0.012-0.0312-0.016-0.1713-0.065-0.3386-0.124-0.5003-0.203-0.0273-0.013-0.0512-0.033-0.0782-0.047-0.1577-0.079-0.321-0.158-0.469-0.25-0.0121-0.008-0.0192-0.024-0.0312-0.031-0.1624-0.103-0.3191-0.213-0.469-0.329-0.0943-0.073-0.1923-0.14-0.2814-0.218-0.0359-0.032-0.0743-0.062-0.1095-0.094-0.0649-0.06-0.1256-0.126-0.1876-0.188-0.0621-0.062-0.128-0.123-0.1876-0.187-0.1126-0.124-0.2111-0.26-0.3126-0.391-0.1161-0.15-0.226-0.307-0.3283-0.469-0.0064-0.01-0.0094-0.021-0.0157-0.032-0.1029-0.165-0.1938-0.338-0.2814-0.515-0.0254-0.052-0.0541-0.104-0.0781-0.157-0.04-0.087-0.0738-0.176-0.1095-0.266-0.0192-0.047-0.0444-0.092-0.0625-0.14-0.0076-0.021-0.0083-0.042-0.0156-0.063-0.0205-0.057-0.0438-0.114-0.0626-0.172-0.04-0.123-0.093-0.25-0.125-0.375-0.0343-0.134-0.0532-0.27-0.0782-0.406-0.0237-0.13-0.0476-0.262-0.0625-0.391-0.0116-0.1-0.0092-0.198-0.0157-0.297-0.007-0.109-0.0145-0.219-0.0156-0.329-0.0014-0.169 0.0027-0.347 0.0156-0.515 0.013-0.169 0.0356-0.335 0.0626-0.501 0.0303-0.186 0.0618-0.365 0.1094-0.547 0.0081-0.031 0.0226-0.063 0.0313-0.094 0.0395-0.142 0.0909-0.283 0.1407-0.4218 0.0088-0.0247 0.0064-0.0535 0.0156-0.0782 0.0243-0.0653 0.0518-0.1236 0.0782-0.1876 0.024-0.0583 0.0523-0.1145 0.0781-0.172 0.0584-0.1294 0.1212-0.2519 0.1876-0.3752 0.0592-0.11 0.1217-0.222 0.1876-0.3283 0.0569-0.0917 0.1258-0.177 0.1876-0.2657 0.0581-0.0825 0.1102-0.1713 0.172-0.2502 0.0435-0.0561 0.0795-0.1173 0.1251-0.1719 0.0237-0.0281 0.0539-0.0506 0.0781-0.0782 0.0847-0.0967 0.1755-0.1909 0.2658-0.2814 0.1161-0.1163 0.2349-0.2224 0.3596-0.3283 0.0791-0.0673 0.1521-0.1402 0.2345-0.2032 0.0204-0.0158 0.0418-0.0314 0.0625-0.0469 0.0934-0.0696 0.1843-0.1393 0.2814-0.2033 0.0252-0.0167 0.0526-0.0304 0.0782-0.0469 0.0417-0.0265 0.0827-0.0525 0.125-0.0781 0.6329-0.5223 0.6244-1.0188 0.5628-1.7666-0.2703-0.7253-1.0487-1.1099-1.7822-0.9224-0.0207-0.0879-0.1037 0.0208-0.1563 0.0313z"/>
+ </g>
+</svg>
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/banshee.rc b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/banshee.rc
new file mode 100644
index 00000000..d49aaf7d
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/banshee.rc
@@ -0,0 +1,23 @@
+# ==============================================================================
+# BANSHEE SPECIFIC SETTINGS
+# ==============================================================================
+
+style "banshee_scrollbar" {
+ engine "murrine" {
+ roundness = 20
+ }
+}
+
+widget "__gtksharp_1*SeekSlider*" style "scale"
+widget "__gtksharp_1*Player*croll*" style "banshee_scrollbar"
+
+widget_class "__gtksharp_1*<GtkToolbar>*" style "default"
+widget_class "__gtksharp_1*<GtkButton>*" style "button"
+#widget_class "__gtksharp_1*<GtkScale>*" style "scale"
+
+
+
+
+
+
+
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/chromium.rc b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/chromium.rc
new file mode 100644
index 00000000..ededd768
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/chromium.rc
@@ -0,0 +1,39 @@
+# ==============================================================================
+# CHROMIUM SPECIFIC SETTINGS
+# ==============================================================================
+
+style "chromium_toolbar_button" {
+ engine "murrine" {
+ roundness = 3
+ textstyle = 0
+ }
+}
+
+style "chrome-gtk-frame"
+{
+ ChromeGtkFrame::frame-color = "#3c3b37"
+ ChromeGtkFrame::inactive-frame-color = "#3c3b37"
+
+ ChromeGtkFrame::frame-gradient-size = 16
+ ChromeGtkFrame::frame-gradient-color = "#5c5b56"
+
+ ChromeGtkFrame::incognito-frame-color = lighter ("#3c3b37")
+ ChromeGtkFrame::incognito-inactive-frame-color = lighter ("#3c3b37")
+
+ ChromeGtkFrame::incognito-frame-gradient-size = 16
+ ChromeGtkFrame::incognito-frame-gradient-color = "#5c5b56"
+
+ ChromeGtkFrame::scrollbar-trough-color = shade (0.912, @bg_color)
+ ChromeGtkFrame::scrollbar-slider-prelight-color = shade (1.04, @bg_color)
+ ChromeGtkFrame::scrollbar-slider-normal-color = @bg_color
+}
+
+class "ChromeGtkFrame" style "chrome-gtk-frame"
+
+widget_class "*Chrom*Button*" style "chromium_toolbar_button"
+
+
+
+
+
+
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/ff.rc b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/ff.rc
new file mode 100644
index 00000000..3f08b2e7
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/ff.rc
@@ -0,0 +1,30 @@
+# ==============================================================================
+# FIREFOX SPECIFIC SETTINGS
+# ==============================================================================
+
+style "ff-default" {
+ GtkCheckButton::indicator-size = 14
+}
+
+style "ff-statusbar" {
+}
+
+#widget "MozillaGtkWidget*Toolbar*" style "theme-toolbar"
+#widget "MozillaGtkWidget*Statusbar*" style "ff-statusbar"
+
+
+widget "MozillaGtkWidget*" style "ff-default"
+
+# ------------------------------------------------------------------------------
+# Some Firefox (3.0/3.5) GTK widgets hierarchy (maybe useful for someone)
+# ------------------------------------------------------------------------------
+
+# Top toolbars (and maybe others)
+#widget "MozillaGtkWidget.GtkFixed.GtkHandleBox.GtkToolbar" style "theme-dark-toolbar"
+
+# Findbar entry, gecko (all html) entry
+#widget "MozillaGtkWidget.GtkFixed.GtkEntry" style "theme-dark-entry"
+
+# ALL buttons
+#widget "MozillaGtkWidget.GtkFixed.GtkButton" style "theme-dark-button"
+
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/gedit.rc b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/gedit.rc
new file mode 100644
index 00000000..7455cb7c
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/gedit.rc
@@ -0,0 +1,35 @@
+style "gedit-frame"
+{
+ engine "pixmap"
+ {
+ image
+ {
+ function = SHADOW
+ }
+ }
+}
+
+style "thin"
+{
+ xthickness = 0
+ ythickness = 0
+}
+
+widget_class "*Gedit*.<GtkFrame>*" style "gedit-frame"
+widget_class "*Gedit*.<GtkScrolledWindow>" style "thin"
+widget_class "*Gedit*.<GtkArrow>*" style:highest "default"
+
+style "gedit-notebook"
+{
+ base[ACTIVE] = shade (0.94, @selected_bg_color)
+}
+
+widget_class "*GeditNotebook" style "gedit-notebook"
+widget_class "*GeditNotebook*Tab*" style "gedit-notebook"
+
+style "gedit"
+{
+ GtkComboBox::appears-as-list = 0
+}
+
+widget_class "*Gedit*" style "gedit"
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/gnome-panel.rc b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/gnome-panel.rc
new file mode 100644
index 00000000..4478befd
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/gnome-panel.rc
@@ -0,0 +1,118 @@
+# ==============================================================================
+# GNOME PANEL SPECIFIC SETTINGS
+# ==============================================================================
+
+style "panel" = "dark"
+{
+ xthickness = 0
+ ythickness = 0
+
+ bg_pixmap[NORMAL] = "img/panel.png"
+ bg[NORMAL] = "#4b4a46"
+
+ engine "murrine" {
+ #contrast = 1.0
+ textstyle = 2
+ text_shade = 0.35
+ }
+}
+
+style "panel_task_button" = "dark"
+{
+ xthickness = 3
+ xthickness = 3
+
+ GtkWidget::focus-line-width = 0
+ GtkWidget::focus_padding = 0
+ GtkWidget::interior_focus = 0
+ GtkWidget::internal_padding = 0
+
+ GtkButton::child_displacement_x = 0
+ GtkButton::child_displacement_y = 0
+ GtkButton::default_border = {0, 0, 0, 0}
+ GtkButton::default_outside_border = {0, 0, 0, 0}
+ GtkButtonBox::child_internal_pad_x = 0
+ GtkButtonBox::child_internal_pad_y = 0
+ GtkButtonBox::child_min_heigth = 0
+
+ engine "pixmap" {
+
+ image
+ {
+ function = BOX
+ recolorable = TRUE
+ state = NORMAL
+ file = "img/panel-button-inactive.png"
+ border = { 1, 1, 1, 1 }
+ stretch = TRUE
+ }
+
+ image
+ {
+ function = BOX
+ recolorable = TRUE
+ state = PRELIGHT
+ file = "img/panel-button-hover.png"
+ border = { 1, 1, 1, 1 }
+ stretch = TRUE
+ }
+
+ image
+ {
+ function = BOX
+ recolorable = TRUE
+ shadow = OUT
+ state = PRELIGHT
+ file = "img/panel-button-hover.png"
+ border = { 1, 1, 1, 1 }
+ stretch = TRUE
+
+ }
+
+ image
+ {
+ function = BOX
+ recolorable = TRUE
+ shadow = IN
+ state = PRELIGHT
+ file = "img/panel-button-hover.png"
+ border = { 1, 1, 1, 1 }
+ stretch = TRUE
+
+ }
+
+ image
+ {
+ function = BOX
+ recolorable = TRUE
+ state = ACTIVE
+ file = "img/panel-button-active.png"
+ border = { 4, 4, 4, 4 }
+ stretch = TRUE
+ }
+ image
+ {
+ function = BOX
+ recolorable = TRUE
+ state = INSENSITIVE
+ file = "img/panel-button-inactive.png"
+ border = { 1, 1, 1, 1 }
+ stretch = TRUE
+ }
+ }
+}
+
+#widget_class "*Panel*" style "panel"
+widget "*PanelWidget*" style "panel"
+widget "*PanelApplet*" style "panel"
+widget "*fast-user-switch*" style "panel" # workaround for Fast User Switch applet
+widget "*CPUFreqApplet*" style "panel" # workaround for CpuFreq Applet
+class "PanelApp*" style "panel"
+class "PanelToplevel*" style "panel"
+#widget_class "*Mail*" style "panel"
+widget_class "*notif*" style "panel"
+
+#widget_class "*?anel*utton" style "panel_task_button" # causing problems to monodevelop
+widget "*task*" style "panel_task_button"
+widget "*.tasklist-button" style "panel_task_button"
+widget "*PanelApplet*TaskTitle*" style "panel_task_button"
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/gnome-terminal.rc b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/gnome-terminal.rc
new file mode 100644
index 00000000..403991d8
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/gnome-terminal.rc
@@ -0,0 +1,52 @@
+# ==============================================================================
+# GNOME TERMINAL SPECIFIC SETTINGS
+# ==============================================================================
+
+style "terminal_window" = "dark" {
+}
+
+style "terminal_menubar"
+{
+ engine "murrine" {
+ }
+}
+
+style "terminal_notebook" = "dark"
+{
+ fg[ACTIVE] = mix (0.8, "#dfdbd2", "#3c3b37")
+
+ engine "murrine" {
+ }
+}
+
+style "terminal_scrollbar" = "scrollbar"
+{
+ bg[NORMAL] = "#3c3b37"
+ bg[PRELIGHT] = shade(1.08, "#3c3b37")
+ bg[ACTIVE] = shade(0.94, "#3c3b37")
+ bg[SELECTED] = shade(1.0, @selected_bg_color)
+ bg[INSENSITIVE] = "#3c3b37"
+
+ engine "murrine" {
+ }
+}
+
+style "terminal_screen"
+{
+ text[NORMAL] = "#ffffff"
+ base[NORMAL] = "#300a24"
+
+ TerminalScreen::background-darkness = 0.95
+}
+
+widget "*TerminalWindow*" style "terminal_window"
+#widget "*TerminalWindow.*.*enu?ar" style "terminal_menubar"
+widget "*TerminalWindow.*.GtkNotebook*" style "terminal_notebook"
+widget "*TerminalWindow.*.GtkNotebook.*.GtkVScrollbar*" style "terminal_scrollbar"
+#widget "*TerminalWindow.*.GtkNotebook*utton*" style "terminal_button"
+widget "*TerminalWindow.*.TerminalScreen*" style "terminal_screen"
+
+
+
+
+
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/arrow-down.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/arrow-down.png
new file mode 100644
index 00000000..459c8016
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/arrow-down.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/handle-h.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/handle-h.png
new file mode 100644
index 00000000..fa6c44fb
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/handle-h.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/handle-v.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/handle-v.png
new file mode 100644
index 00000000..fa6c44fb
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/handle-v.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-center-normal.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-center-normal.png
new file mode 100644
index 00000000..1766ef39
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-center-normal.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-center-prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-center-prelight.png
new file mode 100644
index 00000000..3e8b9740
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-center-prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-center-pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-center-pressed.png
new file mode 100644
index 00000000..2fe0720a
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-center-pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-left-normal.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-left-normal.png
new file mode 100644
index 00000000..e20f66b9
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-left-normal.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-left-prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-left-prelight.png
new file mode 100644
index 00000000..fa7f3cf1
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-left-prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-left-pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-left-pressed.png
new file mode 100644
index 00000000..fa68e6ba
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-left-pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-right-normal.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-right-normal.png
new file mode 100644
index 00000000..d46ec888
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-right-normal.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-right-prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-right-prelight.png
new file mode 100644
index 00000000..d6aea289
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-right-prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-right-pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-right-pressed.png
new file mode 100644
index 00000000..7fbcc146
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/mode-right-pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel-button-active.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel-button-active.png
new file mode 100644
index 00000000..8810e14f
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel-button-active.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel-button-hover.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel-button-hover.png
new file mode 100644
index 00000000..b309d8db
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel-button-hover.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel-button-inactive.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel-button-inactive.png
new file mode 100644
index 00000000..df63d807
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel-button-inactive.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel.png
new file mode 100644
index 00000000..eea4adc7
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/img/panel.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/nautilus.rc b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/nautilus.rc
new file mode 100644
index 00000000..1f5fd663
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/nautilus.rc
@@ -0,0 +1,11 @@
+# ==============================================================================
+# NAUTILUS SPECIFIC SETTINGS
+# ==============================================================================
+
+style "nautilus_info_pane" {
+ bg[NORMAL] = @bg_color
+}
+
+widget_class "*Nautilus*<GtkNotebook>*<GtkEventBox>" style "nautilus_info_pane"
+widget_class "*Nautilus*<GtkButton>" style "notebook_button"
+widget_class "*Nautilus*<GtkButton>*<GtkLabel>" style "notebook_button"
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/ubuntuone.rc b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/ubuntuone.rc
new file mode 100644
index 00000000..177b3bf8
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/apps/ubuntuone.rc
@@ -0,0 +1,49 @@
+# ==============================================================================
+# UBUNTU ONE SPECIFIC SETTINGS
+# ==============================================================================
+
+style "ubuntuone-button" = "button" { engine "murrine" { border_shades = {0.3, 0.2} shadow_shades = {0.9,3.0} } }
+style "ubuntuone-sep" = "dark" { engine "murrine" { contrast = 1.4 } }
+style "ubuntuone-buttonfix" = "default" { GtkWidget ::focus-line-width = 0 fg[ACTIVE] = "#fff" }
+
+style "mode-button" {
+ engine "pixmap" {
+ image { function = BOX state = PRELIGHT file = "img/mode-center-prelight.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ image { function = BOX state = NORMAL file = "img/mode-center-normal.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ image { function = BOX state = ACTIVE file = "img/mode-center-pressed.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ image { function = BOX state = INSENSITIVE file = "img/mode-center-pressed.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ image { function = BOX state = SELECTED file = "img/mode-center-pressed.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ }
+}
+
+style "mode-left" {
+ engine "pixmap" {
+ image { function = BOX state = PRELIGHT file = "img/mode-left-prelight.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ image { function = BOX state = NORMAL file = "img/mode-left-normal.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ image { function = BOX state = ACTIVE file = "img/mode-left-pressed.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ image { function = BOX state = INSENSITIVE file = "img/mode-left-pressed.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ image { function = BOX state = SELECTED file = "img/mode-left-pressed.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ }
+}
+
+style "mode-right" {
+ engine "pixmap" {
+ image { function = BOX state = PRELIGHT file = "img/mode-right-prelight.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ image { function = BOX state = NORMAL file = "img/mode-right-normal.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ image { function = BOX state = ACTIVE file = "img/mode-right-pressed.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ image { function = BOX state = INSENSITIVE file = "img/mode-right-pressed.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ image { function = BOX state = SELECTED file = "img/mode-right-pressed.png" border = { 3, 13, 3, 3 } stretch = TRUE }
+ }
+}
+
+widget "*ManagementPanel.GtkVBox.GtkEventBox.GtkVBox.GtkHBox.GtkHBox*Button" style "ubuntuone-button"
+widget "*ManagementPanel.GtkVBox.GtkEventBox.*GtkHButtonBox*Button" style "mode-button"
+widget "*ManagementPanel.GtkVBox.GtkEventBox.*GtkHButtonBox*ModeLeft*" style "mode-left"
+widget "*ManagementPanel.GtkVBox.GtkEventBox.*GtkHButtonBox*ModeRight*" style "mode-right"
+widget "*ManagementPanel.GtkVBox.GtkEventBox.*GtkHButtonBox*" style:highest "ubuntuone-buttonfix"
+widget "*ManagementPanel.GtkVBox.GtkEventBox.GtkVBox.GtkHBox.GtkHSeparator" style "ubuntuone-sep"
+widget "*ManagementPanel.GtkVBox.GtkNotebook.GtkVBox.GtkEventBox*" style "dark"
+widget "*ManagementPanel*DevicesPanel.GtkEventBox*" style "dark"
+widget "*ManagementPanel.GtkVBox.GtkEventBox*" style "dark"
+widget "*OverviewPanel.GtkVBox.GtkEventBox*" style "dark"
+
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/gtkrc b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/gtkrc
new file mode 100644
index 00000000..dc7d7798
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-2.0/gtkrc
@@ -0,0 +1,721 @@
+gtk-color-scheme = "base_color:#ffffff\nfg_color:#4c4c4c\ntooltip_fg_color:#000000\nselected_bg_color:#f07746\nselected_fg_color:#FFFFFF\ntext_color:#3C3C3C\nbg_color:#F2F1F0\ntooltip_bg_color:#f5f5b5\nlink_color:#DD4814"
+
+gtk-icon-sizes = "panel-menu=22,22:gtk-button=16,16"
+
+gtk-auto-mnemonics = 1
+
+style "default" {
+ xthickness = 1
+ ythickness = 1
+
+ #######################
+ # Style Properties
+ #######################
+ GtkWidget::new-tooltip-style = 1
+ GtkButton::child-displacement-x = 1
+ GtkButton::child-displacement-y = 1
+ GtkButton::default-border = { 0, 0, 0, 0 }
+
+ GtkCheckButton::indicator-size = 16
+
+ GtkPaned::handle-size = 6
+
+ GtkRange::trough-border = 0
+ GtkRange::slider-width = 14
+ GtkRange::stepper-size = 13
+ GtkRange::trough-under-steppers = 1
+
+ GtkScale::trough-border = 0
+ GtkScale::slider-width = 23
+ GtkScale::slider-length = 14
+ GtkScale::trough-side-details = 1
+
+ GtkScrollbar::activate-slider = 1
+ GtkScrollbar::trough-border = 0
+ GtkScrollbar::slider-width = 13
+ GtkScrollbar::min-slider-length = 31
+
+ GtkMenuBar::internal-padding = 0
+ GtkMenuBar::shadow-type = GTK_SHADOW_NONE
+ GtkExpander::expander-size = 11
+ GtkToolbar::internal-padding = 1
+ GtkToolbar::shadow-type = GTK_SHADOW_NONE
+ GtkTreeView::expander-size = 7
+ GtkTreeView::vertical-separator = 0
+# GtkTreeView::odd-row-color = shade (0.96, @base_color)
+ GtkNotebook::tab-overlap = -1
+
+ GtkMenu::horizontal-padding = 0
+ GtkMenu::vertical-padding = 3
+
+ WnckTasklist::fade-overlay-rect = 0
+ # The following line hints to gecko (and possibly other appliations)
+ # that the entry should be drawn transparently on the canvas.
+ # Without this, gecko will fill in the background of the entry.
+ GtkEntry::honors-transparent-bg-hint = 1
+ GtkEntry::state-hint = 0
+
+ GtkEntry::progress-border = { 2, 2, 2, 2 }
+
+ GtkProgressBar::min-horizontal-bar-height = 14
+ GtkProgressBar::min-vertical-bar-width = 14
+
+ GtkImage::x-ayatana-indicator-dynamic = 1
+ GtkMenuBar::window-dragging = 1
+
+ GtkWidget::link-color = @link_color
+ GtkWidget::visited-link-color = @text_color
+
+ ####################
+ # Color Definitions
+ ####################
+ bg[NORMAL] = @bg_color
+ bg[PRELIGHT] = shade (1.02, @bg_color)
+ bg[SELECTED] = @selected_bg_color
+ bg[INSENSITIVE] = shade (0.95, @bg_color)
+ bg[ACTIVE] = shade (0.9, @bg_color)
+
+ fg[NORMAL] = @fg_color
+ fg[PRELIGHT] = @fg_color
+ fg[SELECTED] = @selected_fg_color
+ fg[INSENSITIVE] = darker (@bg_color)
+ fg[ACTIVE] = @fg_color
+
+ text[NORMAL] = @text_color
+ text[PRELIGHT] = @text_color
+ text[SELECTED] = @selected_fg_color
+ text[INSENSITIVE] = shade (0.8, @bg_color)
+ text[ACTIVE] = darker (@text_color)
+
+ base[NORMAL] = @base_color
+ base[PRELIGHT] = shade (0.98, @bg_color)
+ base[SELECTED] = @selected_bg_color
+ base[INSENSITIVE] = shade (0.97, @bg_color)
+ base[ACTIVE] = shade (0.94, @bg_color)
+
+ engine "murrine" {
+ contrast = 0.6
+ arrowstyle = 2
+ reliefstyle = 3
+ highlight_shade = 1.0
+ glazestyle = 0
+ default_button_color = shade (1.1, @selected_bg_color)
+ gradient_shades = {1.1, 1.0, 1.0, 0.9}
+ roundness = 4
+ lightborder_shade = 1.26
+ lightborderstyle = 1
+ listviewstyle = 2
+ progressbarstyle = 0
+ colorize_scrollbar = FALSE
+ menubaritemstyle = 1
+ menubarstyle = 1
+ menustyle = 2
+ focusstyle = 3
+ handlestyle = 1
+ sliderstyle = 3
+ scrollbarstyle = 2
+ stepperstyle = 3
+# rgba = TRUE
+ }
+}
+
+style "dark"
+{
+ color["bg_color_dark"] = "#3c3b37"
+ color["fg_color_dark"] = "#dfdbd2"
+ color["selected_fg_color_dark"] = "#ffffff"
+
+ fg[NORMAL] = @fg_color_dark
+ fg[PRELIGHT] = shade (1.15, @fg_color_dark)
+ fg[ACTIVE] = @fg_color_dark
+ fg[SELECTED] = @selected_fg_color_dark
+ fg[INSENSITIVE] = shade (0.5, @fg_color_dark)
+
+ bg[NORMAL] = @bg_color_dark
+ bg[ACTIVE] = shade (0.8, @bg_color_dark)
+ bg[SELECTED] = @selected_bg_color
+ bg[PRELIGHT] = shade (1.0, "#4D4C48")
+ bg[INSENSITIVE] = shade (0.85, @bg_color_dark)
+
+ text[NORMAL] = @fg_color_dark
+ text[PRELIGHT] = shade (1.15, @fg_color_dark)
+ text[SELECTED] = @selected_fg_color_dark
+ text[ACTIVE] = @fg_color_dark
+ text[INSENSITIVE] = mix (0.5, @bg_color, @bg_color_dark)
+}
+
+style "wide" {
+ xthickness = 2
+ ythickness = 2
+}
+
+style "wider" {
+ xthickness = 3
+ ythickness = 3
+}
+
+style "entry" {
+ xthickness = 3
+ ythickness = 3
+
+ engine "murrine" {
+ }
+}
+
+style "vscale" {
+}
+
+style "hscale" {
+}
+
+style "button" {
+ xthickness = 3
+ ythickness = 3
+
+ bg[NORMAL] = "#cdcdcd"
+ bg[PRELIGHT] = shade (1.04, "#cdcdcd")
+ bg[ACTIVE] = shade (0.96, "#cdcdcd")
+ bg[INSENSITIVE] = mix (0.25, @bg_color, "#e2e1e1")
+ fg[INSENSITIVE] = "#9c9c9c"
+
+ engine "murrine" {
+ #contrast = 1.0
+ border_shades = {1.0, 0.9}
+ textstyle = 1
+ glowstyle = 5
+ glow_shade = 1.1
+ #text_shade = 1.04
+ }
+}
+
+style "notebook_button" {
+
+ xthickness = 3
+ ythickness = 3
+
+ bg[NORMAL] = @bg_color
+ bg[PRELIGHT] = shade (1.04, @bg_color)
+ bg[ACTIVE] = shade (0.96, @bg_color)
+ bg[INSENSITIVE] = @bg_color
+
+ engine "murrine" {
+ #contrast = 1.0
+ textstyle = 1
+ border_shades = {0.95, 0.88}
+ glowstyle = 5
+ glow_shade = 1.02
+ lightborder_shade = 1.32
+# lightborderstyle = 0
+ #text_shade = 1.04
+ }
+}
+
+style "spinbutton" = "notebook_button" {
+ xthickness = 4
+
+ engine "murrine" {
+ }
+}
+
+style "scrollbar" = "button" {
+ xthickness = 2
+ ythickness = 2
+
+ bg[NORMAL] = @bg_color
+ bg[PRELIGHT] = shade (1.04, @bg_color)
+
+ bg[ACTIVE] = shade (0.96, @bg_color)
+
+ engine "murrine"
+ {
+ border_shades = {0.95, 0.90}
+ roundness = 20
+ contrast = 1.0
+ trough_shades = {0.92, 0.98}
+ lightborder_shade = 1.3
+ glowstyle = 5
+ glow_shade = 1.02
+ gradient_shades = {1.2, 1.0, 1.0, 0.86}
+ trough_border_shades = {0.9, 0.98}
+ }
+}
+
+style "hscrollbar" {
+}
+
+style "vscrollbar" {
+}
+
+style "overlay_scrollbar"
+{
+ bg[SELECTED] = shade (1.0, @selected_bg_color)
+ bg[INSENSITIVE] = shade (0.85, @bg_color)
+ bg[ACTIVE] = shade (0.6, @bg_color)
+}
+
+style "scale" = "button" {
+ bg[NORMAL] = @bg_color
+ bg[PRELIGHT] = shade (1.06, @bg_color)
+ bg[ACTIVE] = shade (0.94, @bg_color)
+
+ engine "murrine" {
+ contrast = 0.6
+ border_shades = {0.9, 0.8}
+ roundness = 5
+ lightborder_shade = 1.32
+ gradient_shades = {1.1, 1.0, 1.0, 0.8}
+ handlestyle = 2
+ trough_border_shades = {0.9, 1.4}
+ glow_shade = 1.0
+# reliefstyle = 2
+# shadow_shades = { 1.0, 0.9 }
+ }
+}
+
+style "notebook_bg" {
+ bg[NORMAL] = shade (1.02, @bg_color)
+ bg[ACTIVE] = shade (0.97, @bg_color)
+ fg[ACTIVE] = mix (0.8, @fg_color, shade (0.97, @bg_color))
+}
+
+# The color is changed by the notebook_bg style, this style
+# changes the x/ythickness
+style "notebook" {
+ xthickness = 2
+ ythickness = 2
+
+ engine "murrine" {
+ roundness = 3
+ contrast = 0.8
+ focusstyle = 2
+ lightborder_shade = 1.16
+ gradient_shades = {1.1, 1.0, 1.0, 0.68}
+ }
+}
+
+style "statusbar" {
+ engine "murrine" {
+ contrast = 1.2
+ }
+}
+
+style "comboboxentry" = "notebook_button" {
+ xthickness = 3
+ ythickness = 3
+
+ engine "murrine" {
+ textstyle = 1
+ glowstyle = 5
+ glow_shade = 1.02
+ }
+}
+
+style "menubar" = "dark" {
+ engine "murrine" {
+ textstyle = 2
+ text_shade = 0.33
+ gradient_shades = {1.0, 1.0, 1.0, 1.0}
+ lightborder_shade = 1.0
+ }
+}
+
+style "toolbar" {
+ engine "murrine" {
+ textstyle = 1
+ text_shade = 1.32
+ lightborder_shade = 1.0
+ }
+}
+
+style "toolbar-button" = "notebook_button" {
+ engine "murrine" {
+ }
+}
+
+style "menu" = "dark" {
+ xthickness = 0
+ ythickness = 0
+
+ bg[NORMAL] = "#43423f"
+ bg[INSENSITIVE] = "#43423f"
+ fg[INSENSITIVE] = shade (0.54, "#43423f")
+
+ engine "murrine"
+ {
+ roundness = 0
+ }
+}
+
+style "menu_item" = "menu" {
+ xthickness = 2
+ ythickness = 3
+
+ fg[PRELIGHT] = @selected_fg_color
+
+ engine "murrine"
+ {
+ glowstyle = 5
+ glow_shade = 1.1
+ border_shades = {0.95, 0.85}
+ }
+}
+
+style "menubar_item" = "menu" {
+ xthickness = 2
+ ythickness = 3
+
+ engine "murrine" {
+ gradient_shades = {1.1, 1.0, 1.0, 0.88}
+ glowstyle = 5
+ glow_shade = 1.0
+ border_shades = {1.0, 0.9}
+ lightborderstyle = 3
+ lightborder_shade = 1.26
+ }
+}
+
+style "scale_menu_item" = "scale" {
+ GtkScale::slider-width = 21
+ GtkScale::slider-length = 13
+
+ bg[ACTIVE] = shade(0.98, "#4D4C48")
+ bg[INSENSITIVE] = shade (0.9, @bg_color)
+
+ engine "murrine" {
+ roundness = 20
+ border_shades = {1.4, 1.4}
+ reliefstyle = 0
+ lightborder_shade = 1.36
+ }
+}
+
+# This style is there to modify the separator menu items. The goals are:
+# 1. Get a specific height.
+# 2. The line should go to the edges (ie. no border at the left/right)
+style "separator_menu_item" {
+ xthickness = 1
+ ythickness = 0
+
+ GtkSeparatorMenuItem::horizontal-padding = 0
+ GtkWidget::wide-separators = 1
+ GtkWidget::separator-width = 1
+ GtkWidget::separator-height = 7
+
+ engine "murrine" {
+ contrast = 0.6
+ separatorstyle = 0
+ }
+}
+
+style "separator_tool_item" {
+ xthickness = 0
+ ythickness = 1
+
+ GtkVSeparator::vertical-padding = 0
+ GtkWidget::wide-separators = 1
+ GtkWidget::separator-width = 7
+ GtkWidget::separator-height = 1
+
+ engine "murrine" {
+ contrast = 0.6
+ separatorstyle = 0
+ }
+}
+
+style "frame_title" {
+ fg[NORMAL] = lighter (@fg_color)
+}
+
+style "treeview" {
+ engine "murrine"
+ {
+ roundness = 2
+ lightborder_shade = 1.1
+ gradient_shades = {1.04, 1.0, 1.0, 0.96}
+ }
+}
+
+style "progressbar" {
+ xthickness = 1
+ ythickness = 1
+
+ bg[ACTIVE] = shade (0.94, @bg_color)
+ fg[PRELIGHT] = @selected_fg_color
+ #bg[SELECTED] = "#cdcdcd"
+
+ engine "murrine" {
+ #trough_shades = {0.98, 1.02}
+ roundness = 8
+ lightborderstyle = 1
+ lightborder_shade = 1.26
+ border_shades = {0.95, 0.85}
+ gradient_shades = {1.1, 1.0, 1.0, 0.9}
+ trough_border_shades = {0.9, 1.4}
+ }
+}
+
+style "progressbar_menu_item" = "progressbar" {
+ bg[ACTIVE] = shade(0.98, "#4D4C48")
+
+ engine "murrine" {
+ roundness = 0
+ }
+}
+
+# This style is based on the default style, so that the colors from the button
+# style are overriden again.
+style "treeview_header" = "notebook_button" {
+ xthickness = 2
+ ythickness = 1
+
+ engine "murrine" {
+ glazestyle = 1
+ contrast = 0.8
+ lightborder_shade = 1.16
+ textstyle = 1
+ glow_shade = 1.0
+ }
+}
+
+style "treeview_header_scrolled" = "treeview_header" {
+}
+
+style "scrolledwindow" {
+ engine "murrine" {
+ contrast = 0.6
+ }
+}
+
+style "radiocheck" = "button" {
+ text[NORMAL] = shade (0.535, @selected_bg_color)
+ text[PRELIGHT] = shade(1.06, shade (0.535, @selected_bg_color))
+ bg[NORMAL] = shade (0.92, @bg_color)
+ bg[PRELIGHT] = mix (0.2, @selected_bg_color, shade(1.1, @bg_color))
+ fg[INSENSITIVE] = darker (@bg_color)
+ fg[ACTIVE] = @fg_color
+
+ engine "murrine" {
+ reliefstyle = 3
+ gradient_shades = {1.2, 1.0, 1.0, 0.9}
+ shadow_shades = {0.6, 0.5}
+ textstyle = 0
+ }
+}
+
+style "tooltips" {
+ xthickness = 4
+ ythickness = 4
+
+ bg[NORMAL] = @tooltip_bg_color
+ fg[NORMAL] = @tooltip_fg_color
+ bg[SELECTED] = "#000000"
+
+ engine "murrine" {
+ rgba = TRUE
+ }
+}
+
+style "infobar" {
+ engine "murrine" {
+ }
+}
+
+style "nautilus_location" {
+ bg[NORMAL] = mix (0.60, shade (1.05, @bg_color), @selected_bg_color)
+}
+
+style "calendar" {
+ xthickness = 0
+ ythickness = 0
+
+ engine "murrine" {
+ roundness = 0
+ }
+}
+
+style "calendar_menu_item" = "calendar" {
+ base[NORMAL] = "#605E58"
+ base[ACTIVE] = "#4b4944"
+}
+
+style "iconview" {
+ engine "murrine" {
+ roundness = 6
+ border_shades = {1.16, 1.0}
+ glow_shade = 1.1
+ glowstyle = 5
+ }
+}
+
+style "soundfix"
+{
+}
+
+# Wrokaround style for places where the text color is used instead of the fg color.
+style "text_is_fg_color_workaround" {
+ text[NORMAL] = @fg_color
+ text[PRELIGHT] = @fg_color
+ text[SELECTED] = @selected_fg_color
+ text[ACTIVE] = @fg_color
+ text[INSENSITIVE] = darker (@bg_color)
+}
+
+# Workaround style for menus where the text color is used instead of the fg color.
+style "menuitem_text_is_fg_color_workaround" {
+ text[NORMAL] = "#dfd8c8"
+ text[PRELIGHT] = @selected_fg_color
+ text[SELECTED] = @selected_fg_color
+ text[ACTIVE] = @fg_color
+ text[INSENSITIVE] = "#99958b"
+}
+
+# Workaround style for places where the fg color is used instead of the text color.
+style "fg_is_text_color_workaround" {
+ fg[NORMAL] = @text_color
+ fg[PRELIGHT] = @text_color
+ fg[SELECTED] = @selected_fg_color
+ fg[ACTIVE] = @selected_fg_color
+ fg[INSENSITIVE] = darker (@bg_color)
+}
+
+# Style to set the toolbar to use a flat style. This is because the "New" button in
+# Evolution is not drawn transparent. So if there is a gradient in the background it will
+# look really wrong.
+# See http://bugzilla.gnome.org/show_bug.cgi?id=446953.
+style "evo_new_button_workaround" {
+}
+
+###############################################################################
+# The following part of the gtkrc applies the different styles to the widgets.
+###############################################################################
+
+# The default style is applied to every widget
+class "GtkWidget" style "default"
+
+class "GtkSeparator" style "wide"
+class "GtkFrame" style "wide"
+class "GtkCalendar" style "wide"
+class "GtkEntry" style "entry"
+
+class "GtkSpinButton" style "spinbutton"
+class "GtkScale" style "scale"
+class "GtkVScale" style "vscale"
+class "GtkHScale" style "hscale"
+class "GtkScrollbar" style "scrollbar"
+class "GtkHScrollbar" style "hscrollbar"
+class "GtkVScrollbar" style "vscrollbar"
+class "GtkCalendar" style "calendar"
+class "GtkInfoBar" style "infobar"
+class "GtkIconView" style "iconview"
+
+# General matching follows. The order is choosen so that the right styles override
+# each other. EG. progressbar needs to be more important than the menu match.
+widget_class "*<GtkNotebook>" style "notebook_bg"
+# This is not perfect, it could be done better.
+# (That is modify *every* widget in the notebook, and change those back that
+# we really don't want changed)
+widget_class "*<GtkNotebook>*<GtkEventBox>" style "notebook_bg"
+widget_class "*<GtkNotebook>*<GtkDrawingArea>" style "notebook_bg"
+widget_class "*<GtkNotebook>*<GtkLayout>" style "notebook_bg"
+widget_class "*<GtkNotebook>*<GtkLabel>" style "notebook_bg"
+
+widget_class "*<GtkToolbar>*" style "toolbar"
+widget_class "*<GtkScrolledWindow>*" style "scrolledwindow"
+
+widget_class "*<GtkButton>" style "button"
+widget_class "*<GtkButton>*<GtkLabel>" style "button"
+widget_class "*<GtkToolbar>.*.<GtkButton>*" style "notebook_button"
+widget_class "*<GtkNotebook>" style "notebook"
+widget_class "*<GtkStatusbar>" style "statusbar"
+widget_class "*<GtkSpinButton>*" style "spinbutton"
+widget_class "*<GtkNotebook>*<GtkButton>" style "notebook_button"
+widget_class "*<GtkNotebook>*<GtkButton>*<GtkLabel>" style "notebook_button"
+widget_class "*<GtkRadioButton>*" style "radiocheck"
+widget_class "*<GtkCheckButton>*" style "radiocheck"
+
+widget_class "*<GtkComboBoxEntry>*" style "comboboxentry"
+widget_class "*<GtkCombo>*" style "comboboxentry"
+
+widget_class "*<GtkMenuBar>*" style "menubar"
+widget_class "*<GtkMenu>*" style "menu"
+widget_class "*<GtkMenuItem>*" style "menu_item"
+widget_class "*<GtkSeparatorMenuItem>*" style "separator_menu_item"
+widget_class "*<GtkSeparatorToolItem>*" style "separator_tool_item"
+widget_class "*<GtkMenuBar>*<GtkMenuItem>*" style "menubar_item"
+
+widget_class "*.<GtkFrame>.<GtkLabel>" style "frame_title"
+widget_class "*.<GtkTreeView>*" style "treeview"
+
+widget_class "*<GtkProgress>" style "progressbar"
+widget_class "*<GtkMenuItem>.*.<GtkProgressBar>" style "progressbar_menu_item"
+widget_class "*<GtkMenuItem>.*.<GtkScale>" style "scale_menu_item"
+widget_class "*<GtkMenuItem>.*.<GtkCalendar>" style "calendar_menu_item"
+
+# Treeview headers (and similar stock GTK+ widgets)
+widget_class "*.<GtkScrolledWindow>*<GtkTreeView>*" style "treeview_header_scrolled"
+widget_class "*.<GtkTreeView>.<GtkButton>" style "treeview_header"
+widget_class "*.<GtkCTree>.<GtkButton>" style "treeview_header"
+widget_class "*.<GtkList>.<GtkButton>" style "treeview_header"
+widget_class "*.<GtkCList>.<GtkButton>" style "treeview_header"
+widget_class "*.<GtkTreeView>.<GtkButton>.*<GtkLabel>" style "treeview_header"
+widget_class "*.<GtkCTree>.<GtkButton>.*<GtkLabel>" style "treeview_header"
+widget_class "*.<GtkList>.<GtkButton>.*<GtkLabel>" style "treeview_header"
+widget_class "*.<GtkCList>.<GtkButton>.*<GtkLabel>" style "treeview_header"
+
+# Overlay scrollbar
+widget_class "*<OsScrollbar>" style "overlay_scrollbar"
+widget_class "*<OsThumb>" style "overlay_scrollbar"
+
+# The window of the tooltip is called "gtk-tooltip"
+##################################################################
+# FIXME:
+# This will not work if one embeds eg. a button into the tooltip.
+# As far as I can tell right now we will need to rework the theme
+# quite a bit to get this working correctly.
+# (It will involve setting different priorities, etc.)
+##################################################################
+widget "gtk-tooltip*" style "tooltips"
+
+##########################################################################
+# Following are special cases and workarounds for issues in applications.
+##########################################################################
+
+# Workaround for the evolution ETable (bug #527532)
+widget_class "*.ETable.ECanvas" style "treeview_header"
+# Workaround for the evolution ETree
+widget_class "*.ETree.ECanvas" style "treeview_header"
+
+# Special case the nautilus-extra-view-widget
+# ToDo: A more generic approach for all applications that have a widget like this.
+widget "*.nautilus-extra-view-widget" style : highest "nautilus_location"
+
+# Work around for http://bugzilla.gnome.org/show_bug.cgi?id=382646
+# Note that this work around assumes that the combobox is _not_ in appears-as-list mode.
+widget_class "*.<GtkComboBox>.<GtkCellView>" style "text_is_fg_color_workaround"
+# This is the part of the workaround that fixes the menus
+widget "*.gtk-combobox-popup-menu.*" style "menuitem_text_is_fg_color_workaround"
+
+# Work around the usage of GtkLabel inside GtkListItems to display text.
+# This breaks because the label is shown on a background that is based on the base color.
+widget_class "*<GtkListItem>*" style "fg_is_text_color_workaround"
+# GtkCList also uses the fg color to draw text on top of the base colors.
+widget_class "*<GtkCList>" style "fg_is_text_color_workaround"
+# Nautilus when renaming files, and maybe other places.
+widget_class "*<EelEditableLabel>" style "fg_is_text_color_workaround"
+# Work around for ubuntu's lucid sound indicator
+widget "ido-offscreen-scale" style "soundfix"
+# Thickness for indicator menu items
+widget "*IdoEntryMenuItem*" style "wide"
+
+# See the documentation of the style.
+widget_class "EShellWindow.GtkVBox.BonoboDock.BonoboDockBand.BonoboDockItem*" style "evo_new_button_workaround"
+
+# Includes
+#include "apps/banshee.rc"
+include "apps/chromium.rc"
+include "apps/ff.rc"
+#include "apps/gedit.rc"
+include "apps/gnome-panel.rc"
+include "apps/gnome-terminal.rc"
+include "apps/nautilus.rc"
+include "apps/ubuntuone.rc"
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/gnome-panel.css b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/gnome-panel.css
new file mode 100644
index 00000000..37da3e12
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/gnome-panel.css
@@ -0,0 +1,81 @@
+/* Fallback Mode Panel */
+PanelWidget,
+PanelApplet,
+PanelToplevel {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.5)),
+ to (shade (@dark_bg_color, 1.05)));
+ padding: 0;
+
+ color: @dark_fg_color;
+}
+
+.gnome-panel-menu-bar,
+PanelApplet > GtkMenuBar.menubar,
+PanelApplet > GtkMenuBar.menubar.menuitem,
+PanelMenuBar.menubar,
+PanelMenuBar.menubar.menuitem {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.5)),
+ to (shade (@dark_bg_color, 1.05)));
+}
+
+PanelAppletFrame {
+ background-color: @dark_bg_color;
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.5)),
+ to (shade (@dark_bg_color, 1.05)));
+}
+
+PanelApplet .button {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.5)),
+ to (shade (@dark_bg_color, 1.05)));
+ border-color: shade (@dark_bg_color, 0.78);
+ border-radius: 0;
+ border-width: 0 1 0 1;
+
+ text-shadow: none;
+
+ -unico-border-gradient: none;
+ -unico-glow-radius: 0;
+ -unico-inner-stroke-width: 0;
+ -unico-outer-stroke-width: 0;
+}
+
+PanelApplet .button:prelight:active,
+PanelApplet .button:active {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.85)),
+ to (shade (@dark_bg_color, 1.0)));
+ border-color: shade (@dark_bg_color, 0.78);
+ border-radius: 0;
+ border-width: 0 1 0 1;
+
+ -unico-border-gradient: none;
+ -unico-glow-radius: 0;
+ -unico-inner-stroke-width: 0;
+ -unico-outer-stroke-width: 0;
+}
+
+PanelApplet .button:prelight {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.7)),
+ to (shade (@dark_bg_color, 1.25)));
+ border-color: shade (@dark_bg_color, 0.78);
+ border-radius: 0;
+ border-width: 0 1 0 1;
+
+ -unico-border-gradient: none;
+ -unico-glow-radius: 0;
+ -unico-inner-stroke-width: 0;
+ -unico-outer-stroke-width: 0;
+}
+
+ClockBox {
+ text-shadow: 0 -1 shade (@dark_bg_color, 0.6);
+}
+
+WnckPager, WnckTasklist {
+ background-color: @dark_bg_color;
+}
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/gnome-terminal.css b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/gnome-terminal.css
new file mode 100644
index 00000000..9efad7f3
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/gnome-terminal.css
@@ -0,0 +1,114 @@
+/* gnome-terminal */
+TerminalScreen {
+ -TerminalScreen-background-darkness: 0.95;
+
+ background-color: #300a24;
+
+ color: #fff;
+}
+
+/*
+TerminalWindow,
+TerminalWindow.background {
+ background-color: @dark_bg_color;
+
+ color: @dark_fg_color;
+}
+*/
+/* notebook */
+/*
+TerminalWindow .notebook {
+ background-image: none;
+ background-color: shade (@dark_bg_color, 1.02);
+ border-radius: 3;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, right top,
+ from (shade (@dark_bg_color, 0.93)),
+ to (shade (@dark_bg_color, 0.93)));
+ -unico-inner-stroke-width: 0;
+ -unico-outer-stroke-width: 0;
+}
+
+TerminalWindow .notebook tab {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.92)),
+ color-stop (0.60, shade (@dark_bg_color, 0.9)),
+ to (shade (@dark_bg_color, 0.85)));
+ padding: 0;
+
+ color: @dark_fg_color;
+
+ -unico-inner-stroke-color: alpha (shade (@dark_bg_color, 1.26), 0.2);
+}
+
+TerminalWindow .notebook tab:active {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.2)),
+ to (shade (@dark_bg_color, 1.12)));
+
+ -unico-inner-stroke-color: alpha (shade (@dark_bg_color, 1.26), 1.0);
+}
+
+TerminalWindow .notebook .button,
+TerminalWindow .notebook .button:active {
+ background-image: -gtk-gradient (linear, left top, right top,
+ from (shade (@dark_bg_color, 1.08)),
+ to (shade (@dark_bg_color, 0.92)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, right top,
+ from (shade (@dark_bg_color, 0.9)),
+ to (shade (@dark_bg_color, 0.9)));
+ -unico-inner-stroke-color: alpha (shade (@dark_bg_color, 1.26), 0.7);
+ -unico-outer-stroke-style: none;
+}
+*/
+/* Scrollbars */
+/*
+TerminalWindow .scrollbar {
+ border-radius: 20;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.74)),
+ to (shade (@dark_bg_color, 0.74)));
+}
+
+TerminalWindow .scrollbar.trough {
+ background-image: -gtk-gradient (linear, left top, right top,
+ from (shade (@dark_bg_color, 0.9)),
+ to (shade (@dark_bg_color, 0.95)));
+}
+
+TerminalWindow .scrollbar.trough.horizontal {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.9)),
+ to (shade (@dark_bg_color, 0.95)));
+}
+
+TerminalWindow .scrollbar.slider,
+TerminalWindow .scrollbar.slider:prelight,
+TerminalWindow .scrollbar.button,
+TerminalWindow .scrollbar.button:insensitive {
+ background-image: -gtk-gradient (linear, left top, right top,
+ from (shade (@dark_bg_color, 1.08)),
+ to (shade (@dark_bg_color, 0.92)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, right top,
+ from (shade (@dark_bg_color, 0.74)),
+ to (shade (@dark_bg_color, 0.74)));
+ -unico-inner-stroke-color: alpha (shade (@dark_bg_color, 1.26), 0.7);
+}
+
+TerminalWindow .scrollbar.slider.horizontal,
+TerminalWindow .scrollbar.slider.horizontal:prelight,
+TerminalWindow .scrollbar.button.horizontal,
+TerminalWindow .scrollbar.button:insensitive {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.08)),
+ to (shade (@dark_bg_color, 0.92)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.74)),
+ to (shade (@dark_bg_color, 0.74)));
+ -unico-inner-stroke-color: alpha (shade (@dark_bg_color, 1.26), 0.7);
+}
+*/
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/nautilus.css b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/nautilus.css
new file mode 100644
index 00000000..4b765831
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/nautilus.css
@@ -0,0 +1,81 @@
+/* desktop mode */
+.nautilus-desktop.nautilus-canvas-item {
+ color: @bg_color;
+ text-shadow: 1 1 alpha (#000000, 0.8);
+}
+
+.nautilus-desktop.nautilus-canvas-item:active {
+ background-image: none;
+ background-color: alpha (@bg_color, 0.84);
+ border-radius: 4;
+
+ color: @fg_color;
+}
+
+.nautilus-desktop.nautilus-canvas-item:selected {
+ background-image: none;
+ background-color: alpha (@selected_bg_color, 0.84);
+ border-radius: 4;
+
+ color: @selected_fg_color;
+}
+
+.nautilus-desktop.nautilus-canvas-item:active,
+.nautilus-desktop.nautilus-canvas-item:prelight,
+.nautilus-desktop.nautilus-canvas-item:selected {
+ text-shadow: none;
+}
+
+/* browser window */
+NautilusTrashBar.info,
+NautilusXContentBar.info,
+NautilusSearchBar.info,
+NautilusQueryEditor.info {
+ /* this background-color controls the symbolic icon in the entry */
+ background-color: mix (@fg_color, @base_color, 0.3);
+ border-radius: 0;
+ border-style: solid;
+ border-width: 0 1 1 1;
+}
+
+NautilusSearchBar .entry {
+}
+
+.nautilus-cluebar-label {
+ color: @fg_color;
+ font: bold;
+}
+
+#nautilus-search-button *:active,
+#nautilus-search-button *:active:prelight {
+ color: @dark_fg_color;
+}
+
+NautilusFloatingBar {
+ background-color: @info_bg_color;
+ border-radius: 3 3 0 0;
+ border-style: solid;
+ border-width: 1;
+ border-color: darker (@info_bg_color);
+
+ -unico-border-gradient: none;
+}
+
+NautilusFloatingBar .button {
+ -GtkButton-image-spacing: 0;
+ -GtkButton-inner-border: 0;
+}
+
+/* sidebar */
+NautilusWindow .sidebar,
+NautilusWindow .sidebar .view {
+ background-color: @bg_color;
+}
+
+NautilusWindow .sidebar .frame {
+ border-radius: 0;
+ border-width: 0;
+}
+
+NautilusWindow > GtkTable > .pane-separator {
+}
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/unity.css b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/unity.css
new file mode 100644
index 00000000..3cfc7dcb
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/apps/unity.css
@@ -0,0 +1,38 @@
+UnityPanelWidget,
+.unity-panel {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.5)),
+ to (shade (@dark_bg_color, 1.04)));
+ border-top-color: shade (@dark_bg_color, 1.6);
+ border-style: solid;
+ border-width: 1 0 0 0;
+
+ -unico-border-gradient: none;
+}
+
+.unity-panel.menubar,
+.unity-panel .menubar {
+}
+
+.unity-panel.menuitem,
+.unity-panel .menuitem {
+ border-width: 1 1 0 1;
+
+ icon-shadow: 0 -1 shade (@dark_bg_color, 0.7);
+}
+
+.unity-panel.menubar.menuitem:hover,
+.unity-panel.menubar .menuitem *:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.7)),
+ to (shade (@dark_bg_color, 1.12)));
+
+ color: shade (@dark_fg_color, 1.1);
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.08)),
+ to (shade (@dark_bg_color, 0.98)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.8)),
+ to (shade (@dark_bg_color, 1.2)));
+}
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/scrollbar_handle.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/scrollbar_handle.png
new file mode 100644
index 00000000..c8019d19
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/scrollbar_handle.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/scrollbar_handle_vertical.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/scrollbar_handle_vertical.png
new file mode 100644
index 00000000..69642719
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/scrollbar_handle_vertical.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider.png
new file mode 100644
index 00000000..dcb07eba
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider_prelight.png
new file mode 100644
index 00000000..048d8b41
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider_prelight_vertical.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider_prelight_vertical.png
new file mode 100644
index 00000000..eea519f6
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider_prelight_vertical.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider_vertical.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider_vertical.png
new file mode 100644
index 00000000..6a9d409a
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/assets/slider_vertical.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css
new file mode 100644
index 00000000..1daf4833
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css
@@ -0,0 +1,1885 @@
+/* NOTES to contributors:
+ * use 4 spaces intends, and keep code ALIGNED and ORDERED */
+
+/* default */
+* {
+ -GtkArrow-arrow-scaling: 0.6;
+ -GtkButton-child-displacement-x: 1;
+ -GtkButton-child-displacement-y: 1;
+ -GtkButton-default-border: 0;
+ -GtkButton-image-spacing: 0;
+ -GtkButton-interior-focus: true;
+ -GtkButton-inner-border: 3;
+ -GtkCheckButton-indicator-size: 16;
+ -GtkCheckMenuItem-indicator-size: 14;
+ -GtkEntry-inner-border: 2;
+ -GtkEntry-progress-border: 0;
+ -GtkExpander-expander-size: 8;
+ -GtkHTML-link-color: @link_color;
+ -GtkIMHtml-hyperlink-color: @link_color;
+ -GtkMenu-horizontal-padding: 0;
+ -GtkMenu-vertical-padding: 3;
+ -GtkMenuBar-internal-padding: 0;
+ -GtkMenuItem-arrow-scaling: 0.5;
+ -GtkNotebook-tab-overlap: 1;
+ -GtkPaned-handle-size: 6;
+ -GtkProgressBar-min-horizontal-bar-height: 14;
+ -GtkProgressBar-min-vertical-bar-width: 14;
+ -GtkRange-trough-border: 0;
+ -GtkRange-slider-width: 14;
+ -GtkRange-stepper-size: 13;
+ -GtkRange-trough-under-steppers: 1;
+ -GtkRange-stepper-spacing: 0;
+ -GtkScale-trough-border: 0;
+ -GtkScrollbar-activate-slider: 1;
+ -GtkScrollbar-trough-border: 0;
+ -GtkScrollbar-min-slider-length: 31;
+ -GtkScrolledWindow-scrollbar-spacing: 0;
+ -GtkScrolledWindow-scrollbars-within-bevel: 1;
+ -GtkSeparatorMenuItem-horizontal-padding: 0;
+ -GtkStatusbar-shadow-type: none;
+ -GtkTextView-error-underline-color: @error_color;
+ -GtkToolButton-icon-spacing: 6;
+ -GtkToolItemGroup-expander-size: 11;
+ -GtkToolbar-internal-padding: 0;
+ -GtkTreeView-expander-size: 8;
+ -GtkTreeView-vertical-separator: 0;
+ -GtkWidget-wide-separators: true;
+ -GtkWidget-separator-width: 2;
+ -GtkWidget-separator-height: 2;
+ -GtkWidget-focus-padding: 0;
+ -GtkWidget-focus-line-width: 1;
+ -GtkWidget-link-color: @link_color;
+ -GtkWidget-visited-link-color: @link_color;
+ -GtkWindow-resize-grip-default: false;
+ -WnckTasklist-fade-overlay-rect: 0;
+
+ border-width: 1;
+
+ engine: unico;
+
+ -unico-focus-border-color: alpha (@selected_bg_color, 0.5);
+ -unico-focus-border-radius: 3;
+ -unico-focus-fill-color: alpha (@selected_bg_color, 0.1);
+ -unico-focus-outer-stroke-color: @transparent;
+
+ -unico-inner-stroke-color: shade (@bg_color, 1.1);
+ -unico-inner-stroke-width: 0;
+}
+
+/**********
+ * states *
+ **********/
+*:insensitive {
+ color: shade (@bg_color, 0.6);
+ text-shadow: 0 1 alpha (shade (@bg_color, 1.25), 0.5);
+}
+
+*:active {
+}
+
+*:active:hover:insensitive {
+}
+
+*:active:insensitive {
+}
+
+*:hover {
+}
+
+*:hover:insensitive {
+}
+
+*:selected {
+}
+
+*:selected:focused {
+}
+
+/******************
+ * common effects *
+ ******************/
+/* border and inner stroke */
+.button,
+.frame,
+.notebook {
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.8)),
+ to (shade (@bg_color, 0.76)));
+}
+
+.frame,
+.notebook {
+ -unico-inner-stroke-color: alpha (shade (@bg_color, 1.26), 0.2);
+ -unico-inner-stroke-gradient: none;
+ -unico-inner-stroke-width: 1;
+}
+
+.button:insensitive,
+.frame:insensitive,
+.notebook:insensitive {
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.8)),
+ to (shade (@bg_color, 0.8)));
+}
+
+/* inset */
+GtkComboBox.combobox-entry .button,
+.button:active,
+.button:insensitive,
+.check,
+.entry,
+.radio {
+ -unico-outer-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (shade (@bg_color, 0.85), 0.2)),
+ to (alpha (shade (@bg_color, 1.25), 0.6)));
+ -unico-outer-stroke-width: 1;
+}
+
+/* shadow */
+.button,
+.check:active,
+.frame,
+.notebook .button,
+.notebook,
+.radio:active {
+ -unico-outer-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (@bg_color, 0.00)),
+ to (alpha (shade (@bg_color, 1.25), 0.5)));
+ -unico-outer-stroke-width: 1;
+}
+/*
+.button:hover,
+.notebook .button:hover {
+ -unico-outer-stroke-top-color: @transparent;
+ -unico-outer-stroke-right-color: @transparent;
+ -unico-outer-stroke-bottom-color: alpha (shade (@bg_color, 0.05), 0.06);
+ -unico-outer-stroke-left-color: @transparent;
+ -unico-outer-stroke-gradient: none;
+ -unico-outer-stroke-width: 1;
+}
+*/
+/*************
+ * assistant *
+ *************/
+GtkAssistant .sidebar .highlight {
+ color: @fg_color;
+ font: bold;
+}
+
+GtkAssistant .sidebar {
+ background-color: shade (@bg_color, 0.97);
+ border-right-color: shade (@bg_color, 0.8);
+ border-radius: 0;
+ border-style: solid;
+ border-width: 0 1 0 0;
+ padding: 12;
+
+ color: mix (@fg_color, @bg_color, 0.40);
+ text-shadow: 0 1 shade (@bg_color, 1.04);
+
+ -unico-border-gradient: none;
+ -unico-inner-stroke-right-color: shade (@bg_color, 0.94);
+ -unico-inner-stroke-width: 0 1 0 0;
+ -unico-outer-stroke-width: 0;
+}
+
+/**************
+ * background *
+ **************/
+.background {
+ background-color: @bg_color;
+ border-width: 0;
+}
+
+/**********
+ * button *
+ **********/
+.button {
+ -unico-focus-border-color: alpha (@selected_bg_color, 0.7);
+ -unico-focus-fill-color: @transparent;
+ -unico-focus-outer-stroke-color: alpha (@selected_bg_color, 0.2);
+}
+
+GtkComboBox,
+GtkScale.slider,
+.button {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_bg_color, 1.1)),
+ to (shade (@button_bg_color, 0.9)));
+ border-radius: 3;
+ border-style: solid;
+
+ text-shadow: 0 1 alpha (shade (@button_bg_color, 1.25), 0.4);
+
+ transition: 100ms ease-in-out;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_bg_color, 0.85)),
+ to (shade (@button_bg_color, 0.67)));
+ -unico-glow-color: shade (@button_bg_color, 1.14);
+ -unico-glow-radius: 6;
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_bg_color, 1.16)),
+ to (shade (@button_bg_color, 1.015)));
+ -unico-inner-stroke-width: 1;
+}
+
+GtkScale.slider:hover,
+.button:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_bg_color, 1.16)),
+ to (shade (@button_bg_color, 0.95)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_bg_color, 0.89)),
+ to (shade (@button_bg_color, 0.7)));
+ -unico-glow-color: shade (@button_bg_color, 1.18);
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_bg_color, 1.2)),
+ to (shade (@button_bg_color, 1.06)));
+}
+
+.button:active {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_bg_color, 0.9)),
+ to (shade (@button_bg_color, 0.95)));
+
+ -unico-focus-outer-stroke-color: @transparent;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_bg_color, 0.6)),
+ to (shade (@button_bg_color, 0.7)));
+ -unico-glow-radius: 0;
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_bg_color, 0.84)),
+ to (shade (@button_bg_color, 0.9)));
+}
+
+.button:active:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_bg_color, 0.95)),
+ to (shade (@button_bg_color, 1.0)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_bg_color, 0.6)),
+ to (shade (@button_bg_color, 0.7)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_bg_color, 0.88)),
+ to (shade (@button_bg_color, 0.94)));
+}
+
+.button:insensitive {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_insensitive_bg_color, 1.04)),
+ to (shade (@button_insensitive_bg_color, 0.96)));
+
+ text-shadow: 0 1 alpha (shade (@button_bg_color, 1.25), 0.4);
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_insensitive_bg_color, 0.8)),
+ to (shade (@button_insensitive_bg_color, 0.8)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_insensitive_bg_color, 1.08)),
+ to (shade (@button_insensitive_bg_color, 1.0)));
+}
+
+.button:insensitive:active {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_insensitive_bg_color, 0.97)),
+ to (shade (@button_insensitive_bg_color, 1.0)));
+
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_insensitive_bg_color, 0.95)),
+ to (shade (@button_insensitive_bg_color, 0.98)));
+}
+
+GtkComboBox.combobox-entry .button,
+GtkScale.slider,
+GtkScale.slider.vertical,
+.notebook .button,
+.inline-toolbar.toolbar .button {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.12)),
+ to (shade (@bg_color, 0.92)));
+ border-top-color: shade (@bg_color, 0.82);
+ border-right-color: shade (@bg_color, 0.78);
+ border-bottom-color: shade (@bg_color, 0.64);
+ border-left-color: shade (@bg_color, 0.78);
+ padding: 1;
+
+ text-shadow: 0 1 alpha (shade (@bg_color, 1.26), 0.5);
+
+ -unico-border-gradient: none;
+ -unico-glow-color: shade (@bg_color, 1.02);
+ -unico-glow-radius: 4;
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.2)),
+ to (shade (@bg_color, 0.98)));
+}
+
+GtkComboBox.combobox-entry .button:hover,
+GtkScale.slider:hover,
+GtkScale.slider.vertical:hover,
+.notebook .button:hover,
+.inline-toolbar.toolbar .button:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.16)),
+ to (shade (@bg_color, 0.95)));
+ border-top-color: shade (@bg_color, 0.85);
+ border-right-color: shade (@bg_color, 0.82);
+ border-bottom-color: shade (@bg_color, 0.67);
+ border-left-color: shade (@bg_color, 0.82);
+
+ -unico-border-gradient: none;
+ -unico-glow-color: shade (@bg_color, 1.07);
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.21)),
+ to (shade (@bg_color, 1.02)));
+}
+
+GtkComboBox.combobox-entry .button:active,
+.notebook .button:active,
+.inline-toolbar.toolbar .button:active {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.9)),
+ to (shade (@bg_color, 0.95)));
+ border-top-color: shade (@bg_color, 0.62);
+ border-right-color: shade (@bg_color, 0.72);
+ border-bottom-color: shade (@bg_color, 0.76);
+ border-left-color: shade (@bg_color, 0.72);
+
+ -unico-border-gradient: none;
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.85)),
+ to (shade (@bg_color, 0.9)));
+}
+
+GtkComboBox.combobox-entry .button:active:hover,
+.notebook .button:active:hover,
+.inline-toolbar.toolbar .button:active:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.95)),
+ to (shade (@bg_color, 1.0)));
+ border-top-color: shade (@bg_color, 0.64);
+ border-right-color: shade (@bg_color, 0.74);
+ border-bottom-color: shade (@bg_color, 0.79);
+ border-left-color: shade (@bg_color, 0.74);
+
+ -unico-border-gradient: none;
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.93)),
+ to (shade (@bg_color, 0.94)));
+}
+
+GtkComboBox.combobox-entry .button:insensitive,
+.notebook .button:insensitive,
+.inline-toolbar.toolbar .button:insensitive {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.06)),
+ to (shade (@bg_color, 0.98)));
+ border-top-color: shade (@bg_color, 0.86);
+ border-right-color: shade (@bg_color, 0.86);
+ border-bottom-color: shade (@bg_color, 0.86);
+ border-left-color: shade (@bg_color, 0.9);
+
+ -unico-border-gradient: none;
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.1)),
+ to (shade (@bg_color, 1.0)));
+}
+
+/* default button */
+.button.default {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (mix (shade (@selected_bg_color, 1.16), @bg_color, 0.3)),
+ to (mix (shade (@selected_bg_color, 0.84), @bg_color, 0.3)));
+
+ text-shadow: 0 1 alpha (shade (@selected_bg_color, 1.26), 0.4);
+
+ -unico-focus-border-color: @transparent;
+ -unico-focus-outer-stroke-color: alpha (@selected_bg_color, 0.2);
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (mix (shade (@selected_bg_color, 0.8), @bg_color, 0.3)),
+ to (mix (shade (@selected_bg_color, 0.64), @bg_color, 0.3)));
+ -unico-glow-color: mix (shade (@selected_bg_color, 1.5), @bg_color, 0.3);
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (mix (shade (@selected_bg_color, 1.42), @bg_color, 0.3)),
+ to (mix (shade (@selected_bg_color, 1.12), @bg_color, 0.3)));
+}
+
+.button.default:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (mix (shade (@selected_bg_color, 1.21), @bg_color, 0.3)),
+ to (mix (shade (@selected_bg_color, 0.89), @bg_color, 0.3)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (mix (shade (@selected_bg_color, 0.83), @bg_color, 0.3)),
+ to (mix (shade (@selected_bg_color, 0.67), @bg_color, 0.3)));
+ -unico-glow-color: mix (shade (@selected_bg_color, 1.55), @bg_color, 0.3);
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (mix (shade (@selected_bg_color, 1.47), @bg_color, 0.3)),
+ to (mix (shade (@selected_bg_color, 1.17), @bg_color, 0.3)));
+}
+
+.button.default:active {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (mix (shade (@selected_bg_color, 0.95), @bg_color, 0.3)),
+ to (mix (shade (@selected_bg_color, 1.05), @bg_color, 0.3)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (mix (shade (@selected_bg_color, 0.7), @bg_color, 0.3)),
+ to (mix (shade (@selected_bg_color, 0.7), @bg_color, 0.3)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (mix (shade (@selected_bg_color, 0.9), @bg_color, 0.3)),
+ to (mix (shade (@selected_bg_color, 1.0), @bg_color, 0.3)));
+}
+
+.button.default:active:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (mix (shade (@selected_bg_color, 1.0), @bg_color, 0.3)),
+ to (mix (shade (@selected_bg_color, 1.1), @bg_color, 0.3)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (mix (shade (@selected_bg_color, 0.7), @bg_color, 0.3)),
+ to (mix (shade (@selected_bg_color, 0.7), @bg_color, 0.3)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (mix (shade (@selected_bg_color, 0.95), @bg_color, 0.3)),
+ to (mix (shade (@selected_bg_color, 1.05), @bg_color, 0.3)));
+}
+
+.button.default:insensitive {
+ -unico-glow-radius: 0;
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@button_insensitive_bg_color, 1.08)),
+ to (shade (@button_insensitive_bg_color, 1.0)));
+}
+
+/****************
+ * cell and row *
+ ****************/
+.cell {
+ border-radius: 0;
+ border-width: 0;
+}
+
+.cell:selected {
+}
+
+row:hover {
+}
+
+row:insensitive {
+}
+
+row:selected:focused {
+}
+
+row:selected {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 1.06)),
+ to (shade (@selected_bg_color, 0.94)));
+ border-top-color: shade (@selected_bg_color, 0.88);
+ border-style: solid;
+ border-width: 1 0 0 0;
+}
+
+/*******************
+ * check and radio *
+ *******************/
+.check row:selected,
+.radio row:selected,
+.check,
+.check row,
+.radio,
+.radio row {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@base_color, 0.96)),
+ to (@base_color));
+ border-top-color: shade (@bg_color, 0.64);
+ border-right-color: shade (@bg_color, 0.76);
+ border-bottom-color: shade (@bg_color, 0.82);
+ border-left-color: shade (@bg_color, 0.76);
+ border-style: solid;
+ border-width: 1;
+
+ -unico-border-gradient: none;
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (shade (@bg_color, 0.05), 0.06)),
+ to (alpha (shade (@bg_color, 0.05), 0.03)));
+ -unico-inner-stroke-width: 1;
+}
+
+.check,
+.check row {
+ border-radius: 3;
+}
+
+.radio,
+.radio row {
+ border-radius: 10;
+}
+
+.check:active,
+.check row:selected:active,
+.check row:selected:focused:active,
+.notebook .check:active,
+.notebook .radio:active,
+.radio:active,
+.radio row:selected:active,
+.radio row:selected:focused:active {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 1.2)),
+ color-stop (0.5, shade (@selected_bg_color, 1.0)),
+ to (shade (@selected_bg_color, 0.9)));
+
+ -unico-bullet-color: shade (@selected_bg_color, 0.535);
+ -unico-bullet-outline-color: shade (@selected_bg_color, 1.2);
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 0.7)),
+ to (shade (@selected_bg_color, 0.7)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 1.3)),
+ to (shade (@selected_bg_color, 1.06)));
+ -unico-outer-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (shade (@bg_color, 0.05), 0.02)),
+ to (alpha (shade (@bg_color, 0.05), 0.06)));
+ -unico-outer-stroke-width: 1;
+}
+
+.check:active:hover,
+.check row:selected:active:hover,
+.check row:selected:focused:active:hover,
+.notebook .check:active:hover,
+.notebook .radio:active:hover,
+.radio:active:hover,
+.radio row:selected:active:hover,
+.radio row:selected:focused:active:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 1.26)),
+ color-stop (0.5, shade (@selected_bg_color, 1.05)),
+ to (shade (@selected_bg_color, 0.95)));
+
+ -unico-bullet-color: shade (@selected_bg_color, 0.56);
+ -unico-bullet-outline-color: shade (@selected_bg_color, 1.26);
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 0.74)),
+ to (shade (@selected_bg_color, 0.74)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 1.37)),
+ to (shade (@selected_bg_color, 1.12)));
+}
+
+.check row:selected,
+.check row:selected:active,
+.check row:selected:focused,
+.check row:selected:focused:active,
+.radio row:selected,
+.radio row:selected:active,
+.radio row:selected:focused,
+.radio row:selected:focused:active {
+ -unico-outer-stroke-color: @transparent;
+ -unico-outer-stroke-gradient: none;
+}
+
+.check:insensitive,
+.radio:insensitive {
+ background-color: shade (@bg_color, 0.96);
+ background-image: none;
+}
+
+.check:insensitive:active,
+.radio:insensitive:active {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.96)),
+ to (shade (@bg_color, 0.9)));
+
+ -unico-bullet-color: shade (@bg_color, 0.6);
+ -unico-bullet-outline-color: shade (@bg_color, 1.0);
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.8)),
+ to (shade (@bg_color, 0.7)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.0)),
+ to (shade (@bg_color, 0.94)));
+}
+
+/*****************
+ * column-header *
+ *****************/
+column-header .button,
+column-header .button:active,
+.notebook column-header .button,
+.notebook column-header .button:active {
+ border-radius: 0;
+ border-width: 0 1 1 0;
+
+ -unico-focus-border-radius: 0;
+ -unico-focus-border-color: @transparent;
+ -unico-focus-fill-color: alpha (@selected_bg_color, 0.2);
+ -unico-focus-outer-stroke-color: @transparent;
+
+ -unico-glow-radius: 0;
+ -unico-outer-stroke-width: 0;
+}
+
+column-header .button,
+.notebook column-header .button {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.08)),
+ to (shade (@bg_color, 0.92)));
+
+ text-shadow: 0 1 alpha (shade (@bg_color, 1.25), 0.4);
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.8)),
+ to (shade (@bg_color, 0.76)));
+ -unico-glow-color: shade (@bg_color, 1.02);
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.16)),
+ to (shade (@bg_color, 0.99)));
+}
+
+column-header .button:hover,
+.notebook column-header .button:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.13)),
+ to (shade (@bg_color, 0.97)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.84)),
+ to (shade (@bg_color, 0.75)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.21)),
+ to (shade (@bg_color, 1.04)));
+}
+
+column-header:nth-child(last) .button {
+ border-width: 0 0 1 0;
+}
+
+/******************
+ * combobox entry *
+ ******************/
+.primary-toolbar GtkComboBox.combobox-entry .entry,
+.primary-toolbar GtkComboBox.combobox-entry .entry:active,
+.primary-toolbar GtkComboBox.combobox-entry .entry:focused,
+.primary-toolbar GtkComboBox.combobox-entry .entry:insensitive,
+GtkComboBox.combobox-entry .entry,
+GtkComboBox.combobox-entry .entry:active,
+GtkComboBox.combobox-entry .entry:focused,
+GtkComboBox.combobox-entry .entry:insensitive {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ border-width: 1 0 1 1;
+
+ -unico-outer-stroke-width: 1 0 1 1;
+}
+
+.primary-toolbar GtkComboBox.combobox-entry .button,
+.primary-toolbar GtkComboBox.combobox-entry .button:hover,
+.primary-toolbar GtkComboBox.combobox-entry .button:active,
+.primary-toolbar GtkComboBox.combobox-entry .button:insensitive,
+GtkComboBox.combobox-entry .button,
+GtkComboBox.combobox-entry .button:hover,
+GtkComboBox.combobox-entry .button:active,
+GtkComboBox.combobox-entry .button:insensitive {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ border-width: 1 1 1 1;
+
+ -unico-outer-stroke-width: 1 1 1 0;
+}
+
+GtkComboBox.combobox-entry .button,
+GtkComboBox.combobox-entry .button:hover,
+GtkComboBox.combobox-entry .button:active,
+GtkComboBox.combobox-entry .button:insensitive {
+ border-top-color: shade (@bg_color, 0.64);
+ border-right-color: shade (@bg_color, 0.8);
+ border-bottom-color: shade (@bg_color, 0.86);
+ border-left-color: shade (@bg_color, 0.76);
+}
+
+/*********
+ * entry *
+ *********/
+.entry {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@base_color, 0.96)),
+ to (@base_color));
+ border-top-color: shade (@bg_color, 0.64);
+ border-right-color: shade (@bg_color, 0.76);
+ border-bottom-color: shade (@bg_color, 0.82);
+ border-left-color: shade (@bg_color, 0.76);
+ border-radius: 3;
+ border-style: solid;
+
+ -unico-border-gradient: none;
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (shade (@bg_color, 0.05), 0.04)),
+ to (alpha (shade (@bg_color, 0.05), 0.02)));
+ -unico-inner-stroke-width: 1;
+}
+
+.entry:selected,
+.entry:selected:focused {
+ background-color: @selected_bg_color;
+
+ color: @selected_fg_color;
+}
+
+.entry:focused {
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 0.75)),
+ to (shade (@selected_bg_color, 0.8)));
+ -unico-inner-stroke-color: alpha (@selected_bg_color, 0.3);
+ -unico-inner-stroke-gradient: none;
+}
+
+.entry:insensitive {
+ background-color: shade (@bg_color, 0.96);
+ background-image: none;
+
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (shade (@bg_color, 0.05), 0.04)),
+ to (alpha (shade (@bg_color, 0.05), 0.02)));
+}
+
+.primary-toolbar .toolbar .entry.progressbar,
+.primary-toolbar.toolbar .entry.progressbar,
+.entry.progressbar {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 0.8)),
+ color-stop (0.1, shade (@selected_bg_color, 0.9)),
+ to (shade (@selected_bg_color, 1.1)));
+ border-radius: 3;
+ border-width: 0;
+
+ color: @selected_fg_color;
+
+ -unico-outer-stroke-width: 0;
+}
+
+/************
+ * expander *
+ ************/
+.expander {
+ color: @fg_color;
+}
+
+/*********
+ * frame *
+ *********/
+.frame {
+ border-radius: 3;
+
+ -unico-outer-stroke-width: 0;
+}
+
+/************
+ * iconview *
+ ************/
+GtkIconView.view.cell:selected,
+GtkIconView.view.cell:selected:focused {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 1.0)),
+ to (shade (@selected_bg_color, 0.9)));
+ border-radius: 4;
+ border-style: solid;
+ border-width: 1;
+
+ color: @selected_fg_color;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 0.7)),
+ to (shade (@selected_bg_color, 0.7)));
+ -unico-glow-radius: 8;
+ -unico-glow-color: shade (@selected_bg_color, 1.3);
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 1.2)),
+ to (shade (@selected_bg_color, 1.08)));
+ -unico-inner-stroke-width: 1;
+}
+
+.rubberband {
+ background-color: alpha (@selected_bg_color, 0.35);
+ border-color: @selected_bg_color;
+ border-radius: 0;
+ border-style: solid;
+ border-width: 1;
+}
+
+/***********
+ * infobar *
+ ***********/
+.info {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@info_bg_color, 1.04)),
+ to (shade (@info_bg_color, 0.96)));
+ border-style: solid;
+ border-width: 1;
+
+ color: @info_fg_color;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@info_bg_color, 0.8)),
+ to (shade (@info_bg_color, 0.75)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@info_bg_color, 1.1)),
+ to (shade (@info_bg_color, 1.04)));
+ -unico-inner-stroke-width: 1;
+}
+
+.warning {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@warning_bg_color, 1.04)),
+ to (shade (@warning_bg_color, 0.96)));
+ border-style: solid;
+ border-width: 1;
+
+ color: @warning_fg_color;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@warning_bg_color, 0.8)),
+ to (shade (@warning_bg_color, 0.75)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@warning_bg_color, 1.1)),
+ to (shade (@warning_bg_color, 1.04)));
+ -unico-inner-stroke-width: 1;
+}
+
+.question {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@question_bg_color, 1.04)),
+ to (shade (@question_bg_color, 0.96)));
+ border-style: solid;
+ border-width: 1;
+
+ color: @question_fg_color;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@question_bg_color, 0.8)),
+ to (shade (@question_bg_color, 0.75)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@question_bg_color, 1.1)),
+ to (shade (@question_bg_color, 1.04)));
+ -unico-inner-stroke-width: 1;
+}
+
+.error {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@error_bg_color, 1.04)),
+ to (shade (@error_bg_color, 0.96)));
+ border-style: solid;
+ border-width: 1;
+
+ color: @error_fg_color;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@error_bg_color, 0.8)),
+ to (shade (@error_bg_color, 0.75)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@error_bg_color, 1.1)),
+ to (shade (@error_bg_color, 1.04)));
+ -unico-inner-stroke-width: 1;
+}
+
+/********
+ * menu *
+ ********/
+.menu {
+ background-color: shade (@dark_bg_color, 1.08);
+ background-image: none;
+ border-bottom-color: shade (@dark_bg_color, 0.96);
+ border-left-color: shade (@dark_bg_color, 0.8);
+ border-right-color: shade (@dark_bg_color, 0.8);
+ border-top-color: shade (@dark_bg_color, 0.96);
+ border-style: solid;
+ padding: 0;
+
+ color: @dark_fg_color;
+
+ -unico-inner-stroke-color: shade (@dark_bg_color, 1.18);
+ -unico-inner-stroke-gradient: none;
+ -unico-inner-stroke-width: 1 1 0 1;
+}
+
+.menu:selected {
+ background-color: @selected_bg_color;
+}
+
+.menu.button:hover,
+.menu.button:active,
+.menu.button:active:insensitive,
+.menu.button:insensitive,
+.menu.button {
+ background-color: shade (@dark_bg_color, 1.08);
+ background-image: none;
+ border-radius: 0;
+ border-style: none;
+ border-width: 1;
+
+ -unico-border-gradient: none;
+ -unico-glow-radius: 0;
+ -unico-inner-stroke-width: 0;
+ -unico-outer-stroke-width: 0;
+}
+
+/***********
+ * menubar *
+ ***********/
+.menubar {
+ -GtkWidget-window-dragging: true;
+
+ background-color: @dark_bg_color;
+ background-image: none;
+ border-width: 0;
+
+ color: @dark_fg_color;
+ text-shadow: 0 -1 shade (@dark_bg_color, 0.6);
+
+ -unico-border-gradient: none;
+}
+
+/***************
+ * menubaritem *
+ ***************/
+.menubar.menuitem,
+.menubar .menuitem {
+ border-radius: 4 4 0 0;
+ border-width: 1 1 0 1;
+}
+
+.menubar.menuitem:hover,
+.menubar .menuitem *:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.38)),
+ to (shade (@dark_bg_color, 1.11)));
+
+ color: shade (@dark_fg_color, 1.1);
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.88)),
+ to (shade (@dark_bg_color, 0.9)));
+ -unico-glow-radius: 0;
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.5)),
+ to (shade (@dark_bg_color, 1.15)));
+ -unico-inner-stroke-width: 1;
+}
+
+/************
+ * menuitem *
+ ************/
+.menuitem {
+ border-radius: 0;
+ border-style: solid;
+ border-width: 1;
+ padding: 2;
+
+ color: @dark_fg_color;
+
+ -unico-inner-stroke-width: 1;
+}
+
+.menuitem:hover,
+.menuitem *:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 1.1)),
+ to (shade (@selected_bg_color, 0.9)));
+
+ color: @selected_fg_color;
+
+ -unico-bullet-color: @dark_fg_color;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 0.7)),
+ to (shade (@selected_bg_color, 0.7)));
+ -unico-glow-color: shade (@selected_bg_color, 1.1);
+ -unico-glow-radius: 6;
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 1.2)),
+ to (shade (@selected_bg_color, 1.0)));
+}
+
+.menuitem:insensitive,
+.menuitem *:insensitive {
+ color: mix (@dark_fg_color, @dark_bg_color, 0.5);
+ text-shadow: 0 -1 shade (@dark_bg_color, 0.6);
+}
+
+.menuitem.check:active,
+.menuitem.radio:active {
+ color: @dark_fg_color;
+
+ -unico-bullet-color: @dark_fg_color;
+}
+
+.menuitem.check:active:hover,
+.menuitem.radio:active:hover {
+ color: @selected_fg_color;
+
+ -unico-bullet-color: @selected_fg_color;
+}
+
+.menuitem GtkCalendar,
+.menuitem GtkCalendar.button,
+.menuitem GtkCalendar.header,
+.menuitem GtkCalendar.view {
+ background-color: @dark_bg_color;
+ background-image: none;
+ border-radius: 0;
+ border-style: solid;
+ border-width: 0;
+ padding: 0;
+
+ color: @dark_fg_color;
+}
+
+.menuitem GtkCalendar {
+ background-color: shade (@dark_bg_color, 1.3);
+ background-image: none;
+}
+
+.menuitem .entry {
+ background-color: shade (@dark_bg_color, 1.3);
+ background-image: none;
+
+ color: @dark_fg_color;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.75)),
+ to (shade (@dark_bg_color, 0.9)));
+ -unico-outer-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.98)),
+ to (shade (@dark_bg_color, 1.1)));;
+}
+
+.menuitem GtkScale.trough {
+ background-color: @dark_bg_color;
+ background-image: none;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.75)),
+ to (shade (@dark_bg_color, 1.15)));
+}
+
+.menuitem .accelerator {
+ color: alpha (@dark_fg_color, 0.5);
+}
+
+.menuitem .accelerator:hover {
+ color: alpha (@selected_fg_color, 0.8);
+}
+
+.menuitem .accelerator:insensitive {
+ color: alpha (mix (@dark_fg_color, @dark_bg_color, 0.5), 0.5);
+ text-shadow: 0 -1 shade (@dark_bg_color, 0.7);
+}
+
+/************
+ * notebook *
+ ************/
+.notebook {
+ background-color: shade (@bg_color, 1.02);
+ background-image: none;
+ border-radius: 3;
+ padding: 3;
+
+ -unico-inner-stroke-color: alpha (shade (@bg_color, 1.26), 0.3);
+ -unico-inner-stroke-gradient: none;
+}
+
+.notebook tab {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.97)),
+ color-stop (0.80, shade (@bg_color, 0.95)),
+ to (shade (@bg_color, 0.92)));
+ padding: 2 1 0 1;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.86)),
+ to (shade (@bg_color, 0.84)));
+ -unico-inner-stroke-color: alpha (shade (@bg_color, 1.26), 0.34);
+ -unico-inner-stroke-gradient: none;
+ -unico-inner-stroke-width: 1;
+ -unico-outer-stroke-color: @transparent;
+ -unico-outer-stroke-gradient: none;
+ -unico-outer-stroke-width: 1;
+}
+
+.notebook tab:active {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.1)),
+ to (shade (@bg_color, 1.02)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.84)),
+ to (shade (@bg_color, 0.8)));
+}
+
+.notebook tab .button {
+ padding: 0;
+}
+
+/******************
+ * pane separator *
+ ******************/
+.sidebar .pane-separator,
+.pane-separator {
+ background-color: @transparent;
+ border-color: shade (@bg_color, 0.84);
+
+ -unico-border-gradient: none;
+ -unico-inner-stroke-color: shade (@bg_color, 1.1);
+ -unico-inner-stroke-gradient: none;
+ -unico-inner-stroke-width: 1;
+}
+
+/*************************
+ * progressbar and scale *
+ *************************/
+GtkScale,
+GtkProgressBar {
+ border-radius: 8;
+ border-width: 1;
+ padding: 0;
+}
+
+.progressbar,
+.progressbar row,
+.progressbar row:hover,
+.progressbar row:selected,
+.progressbar row:selected:focused {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 1.13)),
+ to (shade (@selected_bg_color, 0.9)));
+ border-width: 1;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 0.75)),
+ to (shade (@selected_bg_color, 0.75)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 1.22)),
+ to (shade (@selected_bg_color, 1.0)));
+ -unico-inner-stroke-width: 1;
+ -unico-outer-stroke-color: @transparent;
+ -unico-outer-stroke-gradient: none;
+ -unico-outer-stroke-width: 1;
+}
+
+.progressbar.vertical {
+ background-image: -gtk-gradient (linear, left top, right top,
+ from (shade (@selected_bg_color, 1.13)),
+ to (shade (@selected_bg_color, 0.9)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, right top,
+ from (shade (@selected_bg_color, 0.75)),
+ to (shade (@selected_bg_color, 0.75)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, right top,
+ from (shade (@selected_bg_color, 1.22)),
+ to (shade (@selected_bg_color, 1.0)));
+}
+
+.trough,
+.trough row,
+.trough row:hover,
+.trough row:selected,
+.trough row:selected:focused {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.92)),
+ to (shade (@bg_color, 0.96)));
+ border-width: 1;
+
+ color: @text_color;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.75)),
+ to (shade (@bg_color, 1.05)));
+ -unico-outer-stroke-width: 0;
+}
+
+.trough.vertical {
+ background-image: -gtk-gradient (linear, left top, right top,
+ from (shade (@bg_color, 0.92)),
+ to (shade (@bg_color, 0.96)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, right top,
+ from (shade (@bg_color, 0.75)),
+ to (shade (@bg_color, 1.05)));
+}
+
+GtkScale {
+ -GtkRange-slider-width: 22;
+ -GtkRange-trough-border: 1;
+ -GtkScale-slider-length: 14;
+
+ -unico-glow-radius: 0;
+}
+
+GtkScale.vertical {
+ -GtkScale-slider-length: 13;
+}
+
+GtkScale.slider {
+ background-image: url("assets/slider.png");
+}
+
+GtkScale.slider:hover {
+ background-image: url("assets/slider_prelight.png");
+}
+
+GtkScale.slider.vertical {
+ background-image: url("assets/slider_vertical.png");
+}
+
+GtkScale.slider.vertical:hover {
+ background-image: url("assets/slider_prelight_vertical.png");
+}
+
+GtkScale.mark {
+ border-color: shade (@bg_color, 0.8);
+}
+
+/*************
+ * scrollbar *
+ *************/
+.scrollbar {
+ -GtkScrollbar-has-backward-stepper: 0;
+ -GtkScrollbar-has-forward-stepper: 0;
+ -GtkRange-slider-width: 13;
+
+ border-radius: 20;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.74)),
+ to (shade (@bg_color, 0.74)));
+}
+
+.scrollbar.trough,
+.scrollbar.trough.vertical {
+ background-image: -gtk-gradient (linear, left top, right top,
+ from (shade (@bg_color, 0.9)),
+ to (shade (@bg_color, 0.95)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.74)),
+ to (shade (@bg_color, 0.74)));
+}
+
+.scrollbar.trough.horizontal {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.9)),
+ to (shade (@bg_color, 0.95)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.74)),
+ to (shade (@bg_color, 0.74)));
+}
+
+.scrollbar.slider,
+.scrollbar.slider:hover,
+.scrollbar.button,
+.scrollbar.slider.vertical,
+.scrollbar.slider.vertical:hover,
+.scrollbar.button.vertical {
+ background-image: -gtk-gradient (linear, left top, right top,
+ from (shade (@bg_color, 1.08)),
+ to (shade (@bg_color, 0.92)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, right top,
+ from (shade (@bg_color, 0.74)),
+ to (shade (@bg_color, 0.74)));
+ -unico-centroid-texture: url("assets/scrollbar_handle_vertical.png");
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, right top,
+ from (shade (@bg_color, 1.2)),
+ to (shade (@bg_color, 1.0)));
+ -unico-inner-stroke-width: 1;
+}
+
+.scrollbar.slider.horizontal,
+.scrollbar.slider.horizontal:hover,
+.scrollbar.button.horizontal {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.08)),
+ to (shade (@bg_color, 0.92)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.74)),
+ to (shade (@bg_color, 0.74)));
+ -unico-centroid-texture: url("assets/scrollbar_handle.png");
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.16)),
+ to (shade (@bg_color, 1.0)));
+}
+
+.scrollbar.button,
+.scrollbar.button:insensitive {
+ -unico-outer-stroke-width: 0;
+}
+
+/* overlay scrollbar */
+OsThumb:selected,
+OsScrollbar:selected {
+ background-color: @selected_bg_color;
+}
+
+OsThumb:active,
+OsScrollbar:active {
+ background-color: shade (@bg_color, 0.6);
+}
+
+OsThumb:insensitive,
+OsScrollbar:insensitive {
+ background-color: shade (@bg_color, 0.85);
+}
+
+/*******************
+ * scrolled window *
+ *******************/
+GtkScrolledWindow.frame {
+ border-top-color: shade (@bg_color, 0.84);
+ border-right-color: shade (@bg_color, 0.76);
+ border-bottom-color: shade (@bg_color, 0.86);
+ border-left-color: shade (@bg_color, 0.76);
+ border-radius: 0;
+ border-style: solid;
+
+ -unico-border-gradient: none;
+ -unico-inner-stroke-width: 0;
+ -unico-outer-stroke-width: 0;
+}
+
+/*************
+ * separator *
+ *************/
+.separator {
+ border-color: shade (@bg_color, 0.86);
+ border-style: solid;
+
+ -unico-border-gradient: none;
+ -unico-inner-stroke-color: alpha (shade (@bg_color, 1.26), 0.6);
+ -unico-inner-stroke-gradient: none;
+}
+
+.button .separator,
+.button.separator {
+ border-color: shade (@button_bg_color, 0.84);
+
+ -unico-inner-stroke-color: alpha (shade (@button_bg_color, 1.26), 0.5);
+ -unico-inner-stroke-gradient: none;
+}
+
+.notebook .button .separator,
+.notebook .button.separator {
+ border-color: shade (@bg_color, 0.9);
+
+ -unico-inner-stroke-color: alpha (shade (@bg_color, 1.26), 0.6);
+ -unico-inner-stroke-gradient: none;
+}
+
+.button .separator:insensitive,
+.button.separator:insensitive {
+ border-color: shade (@button_insensitive_bg_color, 0.9);
+
+ -unico-inner-stroke-color: alpha (shade (@button_insensitive_bg_color, 1.26), 0.6);
+ -unico-inner-stroke-gradient: none;
+}
+
+.notebook .button .separator,
+.notebook .button.separator {
+ border-color: shade (@bg_color, 0.84);
+
+ -unico-inner-stroke-color: alpha (shade (@bg_color, 1.26), 0.5);
+ -unico-inner-stroke-gradient: none;
+}
+
+.menuitem.separator {
+ -GtkMenuItem-horizontal-padding: 0;
+
+ border-color: shade (@dark_bg_color, 0.96);
+
+ -unico-inner-stroke-color: alpha (shade (@dark_bg_color, 1.26), 0.5);
+}
+
+/***********
+ * sidebar *
+ ***********/
+.sidebar,
+.sidebar .view {
+}
+
+.sidebar row:selected {
+ text-shadow: 0 1 shade (@selected_bg_color, 0.7);
+}
+
+.sidebar .frame {
+ border-width: 0;
+}
+
+/**************
+ * spinbutton *
+ **************/
+.spinbutton.button:active,
+.spinbutton.button:insensitive,
+.notebook .spinbutton.button:active,
+.notebook .spinbutton.button:insensitive,
+.spinbutton.button,
+.notebook .spinbutton.button {
+ -unico-outer-stroke-width: 1 1 1 0;
+}
+
+.spinbutton.button,
+.notebook .spinbutton.button {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.1)),
+ to (shade (@bg_color, 0.9)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.65)),
+ to (shade (@bg_color, 0.7)));
+}
+
+.spinbutton,
+.spinbutton:hover {
+ color: @fg_color;
+}
+
+/***********
+ * spinner *
+ ***********/
+.menu.spinner,
+.primary-toolbar .toolbar .spinner,
+.primary-toolbar.toolbar .spinner {
+ color: @selected_bg_color;
+}
+
+/*************
+ * statusbar *
+ *************/
+GtkStatusbar {
+}
+
+/**********
+ * switch *
+ **********/
+GtkSwitch {
+ border-radius: 4;
+ padding: 0;
+
+ -unico-focus-border-radius: 4;
+ -unico-focus-border-color: alpha (@selected_bg_color, 0.3);
+ -unico-focus-fill-color: @transparent;
+}
+
+GtkSwitch.trough {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.83)),
+ to (shade (@bg_color, 0.89)));
+
+ color: @fg_color;
+ text-shadow: 0 1 alpha (shade (@bg_color, 1.25), 0.5);
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.6)),
+ to (shade (@bg_color, 0.65)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.78)),
+ to (shade (@bg_color, 0.86)));
+ -unico-inner-stroke-width: 1;
+}
+
+GtkSwitch.trough:active {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 0.93)),
+ to (shade (@selected_bg_color, 0.99)));
+
+ color: @selected_fg_color;
+ text-shadow: 0 -1 shade (@selected_bg_color, 0.7);
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 0.7)),
+ to (shade (@selected_bg_color, 0.76)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 0.86)),
+ to (shade (@selected_bg_color, 0.94)));
+}
+
+GtkSwitch.trough:insensitive {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.93)),
+ to (shade (@bg_color, 0.99)));
+
+ color: shade (@bg_color, 0.6);
+ text-shadow: 0 1 alpha (shade (@bg_color, 1.25), 0.5);
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.7)),
+ to (shade (@bg_color, 0.75)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.88)),
+ to (shade (@bg_color, 0.965)));
+}
+
+GtkSwitch.slider {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.1)),
+ to (shade (@bg_color, 0.9)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.65)),
+ to (shade (@bg_color, 0.6)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.2)),
+ to (shade (@bg_color, 0.96)));
+ -unico-inner-stroke-width: 1;
+ -unico-outer-stroke-width: 0;
+}
+
+GtkSwitch.slider:insensitive {
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.7)),
+ to (shade (@bg_color, 0.75)));
+}
+
+/***********
+ * toolbar *
+ ***********/
+.toolbar {
+ border-style: none;
+}
+
+/* primary-toolbar */
+.primary-toolbar .toolbar,
+.primary-toolbar.toolbar {
+ -GtkWidget-window-dragging: true;
+
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.96)),
+ to (shade (@dark_bg_color, 1.4)));
+ border-bottom-color: shade (@dark_bg_color, 1.1);
+ border-top-color: shade (@dark_bg_color, 1.1);
+ border-style: solid;
+ border-width: 1 0 1 0;
+ padding: 2;
+
+ color: @dark_fg_color;
+ text-shadow: 0 -1 shade (@dark_bg_color, 0.7);
+
+ -unico-border-gradient: none;
+ -unico-inner-stroke-gradient: none;
+ -unico-inner-stroke-top-color: shade (@dark_bg_color, 0.94);
+ -unico-inner-stroke-width: 1 0 0 0;
+}
+
+.primary-toolbar .toolbar :insensitive,
+.primary-toolbar.toolbar :insensitive {
+ text-shadow: 0 -1 shade (@dark_bg_color, 0.7);
+}
+
+.primary-toolbar .toolbar GtkComboBox,
+.primary-toolbar.toolbar GtkComboBox,
+.primary-toolbar .toolbar .button,
+.primary-toolbar.toolbar .button {
+ background-color: @transparent;
+ background-image: none;
+ border-radius: 3;
+ border-width: 0;
+
+ color: @dark_fg_color;
+ text-shadow: 0 -1 shade (@dark_bg_color, 0.7);
+
+ transition: none;
+
+ -unico-focus-border-radius: 4;
+ -unico-focus-border-color: alpha (@selected_bg_color, 0.5);
+ -unico-focus-fill-color: alpha (@selected_bg_color, 0.2);
+ -unico-focus-outer-stroke-color: @transparent;
+
+ -unico-inner-stroke-width: 0;
+ -unico-outer-stroke-width: 0;
+}
+
+.primary-toolbar .toolbar .raised .button,
+.primary-toolbar.toolbar .raised .button,
+.primary-toolbar .toolbar .raised.button,
+.primary-toolbar.toolbar .raised.button,
+.primary-toolbar .toolbar .button:hover,
+.primary-toolbar.toolbar .button:hover,
+.primary-toolbar .toolbar .button:active,
+.primary-toolbar.toolbar .button:active,
+.primary-toolbar .toolbar .button:insensitive,
+.primary-toolbar.toolbar .button:insensitive {
+ border-width: 1;
+
+ -unico-focus-border-radius: 3;
+ -unico-focus-fill-color: @transparent;
+ -unico-focus-border-color: @transparent;
+ -unico-focus-outer-stroke-color: alpha (@selected_bg_color, 0.5);
+
+ -unico-inner-stroke-width: 1;
+ -unico-outer-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (shade (@dark_bg_color, 1.2), 0.25)),
+ to (alpha (shade (@dark_bg_color, 1.4), 0.75)));
+ -unico-outer-stroke-width: 1;
+}
+
+.primary-toolbar GtkComboBox.combobox-entry .button {
+ -unico-inner-stroke-width: 1;
+ -unico-outer-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (shade (@dark_bg_color, 1.2), 0.25)),
+ to (alpha (shade (@dark_bg_color, 1.4), 0.75)));
+}
+
+.primary-toolbar GtkComboBox.combobox-entry .button,
+.primary-toolbar .toolbar .raised .button,
+.primary-toolbar.toolbar .raised .button,
+.primary-toolbar .toolbar .raised.button,
+.primary-toolbar.toolbar .raised.button,
+.primary-toolbar .toolbar .button:hover,
+.primary-toolbar.toolbar .button:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.1)),
+ to (shade (@dark_bg_color, 0.94)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.9)),
+ to (shade (@dark_bg_color, 0.87)));
+ -unico-glow-color: shade (@dark_bg_color, 1.08);
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.18)),
+ to (shade (@dark_bg_color, 1.08)));
+}
+
+.primary-toolbar .toolbar .button:active,
+.primary-toolbar.toolbar .button:active {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.9)),
+ to (shade (@dark_bg_color, 0.95)));
+
+ text-shadow: 0 -1 shade (@dark_bg_color, 0.6);
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.75)),
+ to (shade (@dark_bg_color, 0.85)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.88)),
+ to (shade (@dark_bg_color, 0.9)))
+}
+
+.primary-toolbar .toolbar .button:active:hover,
+.primary-toolbar.toolbar .button:active:hover {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.95)),
+ to (shade (@dark_bg_color, 1.0)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.75)),
+ to (shade (@dark_bg_color, 0.85)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.93)),
+ to (shade (@dark_bg_color, 0.94)))
+}
+
+.primary-toolbar .toolbar .button:active:insensitive,
+.primary-toolbar.toolbar .button:active:insensitive,
+.primary-toolbar .toolbar .button:insensitive,
+.primary-toolbar.toolbar .button:insensitive {
+ text-shadow: none;
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.85)),
+ to (shade (@dark_bg_color, 0.95)));
+ -unico-glow-radius: 0;
+ -unico-outer-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (shade (@dark_bg_color, 1.2), 0.18)),
+ to (alpha (shade (@dark_bg_color, 1.4), 0.5)));
+}
+
+.primary-toolbar .toolbar .button:insensitive,
+.primary-toolbar.toolbar .button:insensitive {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.01)),
+ to (shade (@dark_bg_color, 0.99)));
+
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 1.1)),
+ to (shade (@dark_bg_color, 1.04)));
+}
+
+.primary-toolbar .toolbar .button:active:insensitive,
+.primary-toolbar.toolbar .button:active:insensitive {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.94)),
+ to (shade (@dark_bg_color, 1.02)));
+
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.92)),
+ to (shade (@dark_bg_color, 1.0)));
+}
+
+.primary-toolbar .toolbar .entry,
+.primary-toolbar.toolbar .entry,
+.primary-toolbar .toolbar .entry:active,
+.primary-toolbar.toolbar .entry:active,
+.primary-toolbar .toolbar .entry:focused,
+.primary-toolbar.toolbar .entry:focused {
+ border-radius: 3;
+
+ color: @text_color;
+
+ -unico-outer-stroke-width: 1;
+ -unico-outer-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (shade (@dark_bg_color, 1.2), 0.25)),
+ to (alpha (shade (@dark_bg_color, 1.4), 0.75)));
+}
+
+.primary-toolbar .toolbar .entry,
+.primary-toolbar.toolbar .entry {
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@dark_bg_color, 0.75)),
+ to (shade (@dark_bg_color, 0.95)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (shade (@bg_color, 0.05), 0.16)),
+ to (alpha (shade (@bg_color, 0.05), 0.08)));
+}
+
+.primary-toolbar .toolbar .entry:insensitive,
+.primary-toolbar.toolbar .entry:insensitive {
+ -unico-outer-stroke-width: 1;
+ -unico-outer-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (shade (@dark_bg_color, 1.2), 0.18)),
+ to (alpha (shade (@dark_bg_color, 1.4), 0.5)));
+}
+
+.primary-toolbar .toolbar .entry:focused,
+.primary-toolbar.toolbar .entry:focused {
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@selected_bg_color, 0.75)),
+ to (shade (@selected_bg_color, 0.8)));
+ -unico-inner-stroke-color: alpha (@selected_bg_color, 0.2);
+ -unico-inner-stroke-gradient: none;
+}
+
+.primary-toolbar .toolbar GtkSeparatorToolItem,
+.primary-toolbar.toolbar GtkSeparatorToolItem,
+.primary-toolbar .toolbar .separator,
+.primary-toolbar.toolbar .separator,
+.primary-toolbar .toolbar .separator:insensitive,
+.primary-toolbar.toolbar .separator:insensitive {
+ border-color: alpha (shade (@dark_bg_color, 0.94), 0.5);
+ border-style: solid;
+
+ -unico-border-gradient: none;
+ -unico-inner-stroke-color: alpha (shade (@dark_bg_color, 1.5), 0.4);
+ -unico-inner-stroke-gradient: none;
+}
+
+/* inline-toolbar */
+.inline-toolbar.toolbar {
+ -GtkToolbar-button-relief: normal;
+
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (#f2f1ef, 0.93)),
+ color-stop (0.08, #f2f1ef),
+ to (#ffffff));
+ border-radius: 0;
+ border-style: solid;
+ border-width: 1;
+ padding: 3 4 4 4;
+}
+
+.inline-toolbar.toolbar:nth-child(last) {
+ border-bottom-color: shade (@bg_color, 0.76);
+ border-color: shade (@bg_color, 0.8);
+ border-radius: 0 0 3 3;
+ border-width: 0 1 1 1;
+}
+
+.inline-toolbar.toolbar .button {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.12)),
+ to (shade (@bg_color, 0.88)));
+ border-radius: 0;
+ border-style: solid;
+ border-width: 1 0 1 1;
+ padding: 1;
+
+ icon-shadow: 0 1 shade (@bg_color, 1.16);
+
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.16)),
+ to (shade (@bg_color, 0.98)));
+ -unico-outer-stroke-width: 1 0 1 0;
+}
+
+.inline-toolbar.toolbar .button *:active,
+.inline-toolbar.toolbar .button *:insensitive,
+.inline-toolbar.toolbar GtkToolButton .button:active,
+.inline-toolbar.toolbar GtkToolButton .button:insensitive {
+ -unico-outer-stroke-width: 1 0 1 0;
+ -unico-outer-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (alpha (shade (@bg_color, 0.05), 0.02)),
+ to (alpha (shade (@bg_color, 0.05), 0.06)));
+}
+
+.inline-toolbar.toolbar .button *:insensitive,
+.inline-toolbar.toolbar GtkToolButton .button:insensitive {
+ background-image: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.02)),
+ to (shade (@bg_color, 0.98)));
+
+ -unico-border-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 0.85)),
+ to (shade (@bg_color, 0.8)));
+ -unico-inner-stroke-gradient: -gtk-gradient (linear, left top, left bottom,
+ from (shade (@bg_color, 1.16)),
+ to (shade (@bg_color, 1.0)));
+}
+
+.inline-toolbar.toolbar .button:nth-child(first),
+.inline-toolbar.toolbar GtkToolButton:nth-child(first) .button {
+ border-radius: 3 0 0 3;
+
+ -unico-outer-stroke-width: 1 0 1 1;
+}
+
+.inline-toolbar.toolbar .button:nth-child(last),
+.inline-toolbar.toolbar GtkToolButton:nth-child(last) .button {
+ border-radius: 0 3 3 0;
+ border-width: 1;
+
+ -unico-outer-stroke-width: 1 1 1 0;
+}
+
+/***********
+ * tooltip *
+ ***********/
+.tooltip {
+ border-color: @tooltip_bg_color;
+}
+
+/************
+ * treeview *
+ ************/
+GtkTreeView .entry {
+ background-image: none;
+ border-radius: 0;
+
+ -unico-inner-stroke-gradient: none;
+ -unico-inner-stroke-width: 1;
+}
+
+/************
+ * viewport *
+ ************/
+GtkViewport.frame {
+ border-width: 0;
+
+ -unico-inner-stroke-width: 0;
+}
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/gtk.css b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/gtk.css
new file mode 100644
index 00000000..8c28389c
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/gtk.css
@@ -0,0 +1,34 @@
+/* default color scheme */
+@define-color bg_color #f2f1f0;
+@define-color fg_color #4c4c4c;
+@define-color base_color #ffffff;
+@define-color text_color #3C3C3C;
+@define-color selected_bg_color #f07746;
+@define-color selected_fg_color #ffffff;
+@define-color tooltip_bg_color #f5f5b5;
+@define-color tooltip_fg_color #000000;
+
+/* misc colors used by gtk+ */
+@define-color info_fg_color rgb (181, 171, 156);
+@define-color info_bg_color rgb (252, 252, 189);
+@define-color warning_fg_color rgb (173, 120, 41);
+@define-color warning_bg_color rgb (250, 173, 61);
+@define-color question_fg_color rgb (97, 122, 214);
+@define-color question_bg_color rgb (138, 173, 212);
+@define-color error_fg_color rgb (166, 38, 38);
+@define-color error_bg_color rgb (237, 54, 54);
+@define-color link_color #4a90d9;
+@define-color error_color #cc0000;
+
+/* theme common colors */
+@define-color button_bg_color shade (#cdcdcd, 1.06);
+@define-color button_insensitive_bg_color mix (@button_bg_color, @bg_color, 0.6);
+@define-color dark_bg_color #3c3b37;
+@define-color dark_fg_color #dfdbd2;
+@define-color transparent rgba (0, 0, 0, 0);
+
+@import url("gtk-widgets.css");
+@import url("apps/gnome-panel.css");
+@import url("apps/gnome-terminal.css");
+@import url("apps/nautilus.css");
+@import url("apps/unity.css");
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/settings.ini b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/settings.ini
new file mode 100644
index 00000000..ab8f3b00
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/gtk-3.0/settings.ini
@@ -0,0 +1,3 @@
+[Settings]
+gtk-color-scheme = "base_color:#ffffff\nbg_color:#f2f1f0\ntooltip_bg_color:#f5f5b5\nselected_bg_color:#f07746\ntext_color:#3C3C3C\nfg_color:#4c4c4c\ntooltip_fg_color:#000000\nselected_fg_color:#ffffff\nlink_color:#DD4814\nbg_color_dark:#3c3b37\nfg_color_dark:#dfdbd2"
+gtk-auto-mnemonics = 1
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/index.theme b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/index.theme
new file mode 100644
index 00000000..105dee69
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/index.theme
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Type=X-GNOME-Metatheme
+Name=Ambiance
+Comment=Ubuntu Ambiance theme
+Encoding=UTF-8
+
+[X-GNOME-Metatheme]
+GtkTheme=Ambiance
+MetacityTheme=Ambiance
+IconTheme=ubuntu-mono-dark
+CursorTheme=DMZ-White
+ButtonLayout=close,minimize,maximize:
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close.png
new file mode 100644
index 00000000..9ef84eaf
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_focused_normal.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_focused_normal.png
new file mode 100644
index 00000000..9ef84eaf
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_focused_normal.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_focused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_focused_prelight.png
new file mode 100644
index 00000000..9e09161a
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_focused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_focused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_focused_pressed.png
new file mode 100644
index 00000000..04431b94
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_focused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused.png
new file mode 100644
index 00000000..9be481d6
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused_over.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused_over.png
new file mode 100644
index 00000000..63004d48
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused_over.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused_prelight.png
new file mode 100644
index 00000000..6732780f
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused_pressed.png
new file mode 100644
index 00000000..c5f120f3
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/close_unfocused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize.png
new file mode 100644
index 00000000..d3833110
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_focused_normal.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_focused_normal.png
new file mode 100644
index 00000000..d3833110
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_focused_normal.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_focused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_focused_prelight.png
new file mode 100644
index 00000000..fc97526f
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_focused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_focused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_focused_pressed.png
new file mode 100644
index 00000000..2e667f27
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_focused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused.png
new file mode 100644
index 00000000..6a9fd7fe
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused_over.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused_over.png
new file mode 100644
index 00000000..274c1831
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused_over.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused_prelight.png
new file mode 100644
index 00000000..fc97526f
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused_pressed.png
new file mode 100644
index 00000000..378d4a77
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/maximize_unfocused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/menu.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/menu.png
new file mode 100644
index 00000000..7d2fff78
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/menu.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/menu_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/menu_prelight.png
new file mode 100644
index 00000000..efd98ccd
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/menu_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/metacity-theme-1.xml b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/metacity-theme-1.xml
new file mode 100644
index 00000000..cb2cb5f3
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/metacity-theme-1.xml
@@ -0,0 +1,558 @@
+<?xml version="1.0"?>
+
+<metacity_theme>
+<info>
+ <name>Ambiance</name>
+ <author>Kenneth Wimer, James Schriver, Andrea Cimitan</author>
+ <copyright>Canonical Ltd.</copyright>
+ <date>June, 2011</date>
+ <description>Metacity theme</description>
+</info>
+
+<!-- general window layout -->
+<frame_geometry name="frame_geometry_normal" title_scale="medium" rounded_top_left="true" rounded_top_right="true" rounded_bottom_left="false" rounded_bottom_right="false">
+ <distance name="left_width" value="1"/>
+ <distance name="right_width" value="1"/>
+ <distance name="bottom_height" value="1"/>
+ <distance name="left_titlebar_edge" value="10"/>
+ <distance name="right_titlebar_edge" value="10"/>
+ <distance name="button_width" value="18"/>
+ <distance name="button_height" value="20"/>
+ <distance name="title_vertical_pad" value="12"/>
+ <border name="title_border" left="2" right="2" top="0" bottom="0"/>
+ <border name="button_border" left="0" right="0" top="1" bottom="1"/>
+</frame_geometry>
+
+<frame_geometry name="frame_geometry_abnormal" title_scale="medium" rounded_top_left="false" rounded_top_right="false">
+ <distance name="left_width" value="0"/>
+ <distance name="right_width" value="0"/>
+ <distance name="bottom_height" value="0"/>
+ <distance name="left_titlebar_edge" value="10"/>
+ <distance name="right_titlebar_edge" value="10"/>
+ <distance name="button_width" value="18"/>
+ <distance name="button_height" value="20"/>
+ <distance name="title_vertical_pad" value="2"/>
+ <border name="title_border" left="2" right="2" top="0" bottom="0"/>
+ <border name="button_border" left="0" right="0" top="1" bottom="1"/>
+</frame_geometry>
+
+<frame_geometry name="geometry_maximized" rounded_top_left="false" rounded_top_right="false" rounded_bottom_left="false" rounded_bottom_right="false">
+ <distance name="left_width" value="0"/>
+ <distance name="right_width" value="0"/>
+ <distance name="bottom_height" value="0"/>
+ <distance name="left_titlebar_edge" value="10"/>
+ <distance name="right_titlebar_edge" value="10"/>
+ <distance name="button_width" value="18"/>
+ <distance name="button_height" value="20"/>
+ <distance name="title_vertical_pad" value="12"/>
+ <border name="title_border" left="2" right="2" top="0" bottom="0"/>
+ <border name="button_border" left="0" right="0" top="1" bottom="1"/>
+</frame_geometry>
+
+<frame_geometry name="border" has_title="false">
+ <distance name="left_width" value="3"/>
+ <distance name="right_width" value="3"/>
+ <distance name="bottom_height" value="3"/>
+ <distance name="left_titlebar_edge" value="0"/>
+ <distance name="right_titlebar_edge" value="0"/>
+ <distance name="button_width" value="0"/>
+ <distance name="button_height" value="0"/>
+ <distance name="title_vertical_pad" value="3"/>
+ <border name="title_border" left="0" right="0" top="0" bottom="0"/>
+ <border name="button_border" left="0" right="0" top="0" bottom="0"/>
+</frame_geometry>
+
+<!-- window titles -->
+
+<draw_ops name="draw_title_text_normal">
+ <title color="#333" x="10" y="(((height - title_height) / 2) `max` 0)+1"/>
+ <title color="#333" x="10" y="(((height - title_height) / 2) `max` 0)-1"/>
+ <title color="#333" x="9" y="(((height - title_height) / 2) `max` 0)"/>
+ <title color="#333" x="11" y="(((height - title_height) / 2) `max` 0)"/>
+ <title color="#dfdbd2" x="10" y="(((height - title_height) / 2) `max` 0)"/>
+</draw_ops>
+
+<draw_ops name="draw_title_text_unfocused">
+ <title color="#333" x="10" y="(((height - title_height) / 2) `max` 0)+1"/>
+ <title color="#333" x="10" y="(((height - title_height) / 2) `max` 0)-1"/>
+ <title color="#333" x="9" y="(((height - title_height) / 2) `max` 0)"/>
+ <title color="#333" x="11" y="(((height - title_height) / 2) `max` 0)"/>
+ <title color="#807d78" x="10" y="(((height - title_height) / 2) `max` 0)"/>
+</draw_ops>
+
+<draw_ops name="draw_title">
+ <!-- frame and gradient -->
+ <rectangle color="#3c3b37" filled="false" x="0" y="0" width="width-1" height="top_height"/>
+ <gradient type="vertical" x="1" y="1" width="width-2" height="top_height-1">
+ <color value="#474642" />
+ <color value="#474642" />
+ <color value="#474642" />
+ <color value="#3c3b37" />
+ <color value="#3c3b37" />
+ <color value="#3c3b37" />
+ </gradient>
+ <!-- top line -->
+ <gradient type="horizontal" x="0" y="1" width="width" height="1">
+ <color value="shade/#474642/1.1" />
+ <color value="shade/#474642/1.4" />
+ <color value="shade/#474642/1.1" />
+ </gradient>
+ <!-- left arch -->
+ <!-- <arc color="shade/#474642/1.1" x="0" y="1" width="9" height="7" start_angle="270" extent_angle="90" />
+ <arc color="#3c3b37" x="0" y="0" width="9" height="9" start_angle="270" extent_angle="90" /> -->
+ <line color="#3c3b37" x1="0" x2="4" y1="1" y2="1"/>
+ <line color="#3c3b37" x1="0" x2="2" y1="2" y2="2"/>
+ <line color="#3c3b37" x1="0" x2="1" y1="3" y2="3"/>
+ <line color="#3c3b37" x1="0" x2="1" y1="4" y2="4"/>
+ <!-- right arch -->
+ <!-- <arc color="shade/#474642/1.1" x="width-10" y="1" width="9" height="7" start_angle="0" extent_angle="90" />
+ <arc color="#3c3b37" x="width-10" y="0" width="9" height="9" start_angle="0" extent_angle="90" /> -->
+ <line color="#3c3b37" x1="width-5" x2="width" y1="1" y2="1"/>
+ <line color="#3c3b37" x1="width-3" x2="width" y1="2" y2="2"/>
+ <line color="#3c3b37" x1="width-2" x2="width" y1="3" y2="3"/>
+ <line color="#3c3b37" x1="width-2" x2="width" y1="4" y2="4"/>
+</draw_ops>
+
+<draw_ops name="draw_title_utility">
+ <include name="draw_title" />
+ <line color="shade/#3c3b37/0.88" x1="0" x2="width" y1="height-1" y2="height-1"/>
+</draw_ops>
+
+<draw_ops name="draw_title_unfocused">
+ <!-- frame and gradient -->
+ <rectangle color="#3c3b37" filled="false" x="0" y="0" width="width-1" height="top_height"/>
+ <gradient type="vertical" x="1" y="1" width="width-2" height="top_height-1">
+ <color value="shade/#474642/0.92" />
+ <color value="shade/#474642/0.92" />
+ <color value="shade/#474642/0.92" />
+ <color value="#3c3b37" />
+ <color value="#3c3b37" />
+ <color value="#3c3b37" />
+ </gradient>
+ <!-- top line -->
+ <line color="#474642" x1="0" x2="width" y1="1" y2="1"/>
+ <!-- left arch -->
+ <!-- <arc color="shade/#474642/0.98" x="0" y="1" width="9" height="7" start_angle="270" extent_angle="90" />
+ <arc color="#3c3b37" x="0" y="0" width="9" height="9" start_angle="270" extent_angle="90" /> -->
+ <line color="#3c3b37" x1="0" x2="4" y1="1" y2="1"/>
+ <line color="#3c3b37" x1="0" x2="2" y1="2" y2="2"/>
+ <line color="#3c3b37" x1="0" x2="1" y1="3" y2="3"/>
+ <line color="#3c3b37" x1="0" x2="1" y1="4" y2="4"/>
+ <!-- right arch -->
+ <!-- <arc color="shade/#474642/0.98" x="width-10" y="1" width="9" height="7" start_angle="0" extent_angle="90" />
+ <arc color="#3c3b37" x="width-10" y="0" width="9" height="9" start_angle="0" extent_angle="90" /> -->
+ <line color="#3c3b37" x1="width-5" x2="width" y1="1" y2="1"/>
+ <line color="#3c3b37" x1="width-3" x2="width" y1="2" y2="2"/>
+ <line color="#3c3b37" x1="width-2" x2="width" y1="3" y2="3"/>
+ <line color="#3c3b37" x1="width-2" x2="width" y1="4" y2="4"/>
+</draw_ops>
+
+<draw_ops name="draw_title_utility_unfocused">
+ <include name="draw_title_unfocused" />
+ <line color="shade/#3c3b37/0.88" x1="0" x2="width" y1="height-1" y2="height-1"/>
+</draw_ops>
+
+<draw_ops name="draw_title_maximized">
+ <!-- frame and gradient -->
+ <line color="#3c3b37" x1="0" x2="width" y1="0" y2="0"/>
+ <gradient type="vertical" x="0" y="1" width="width" height="top_height-1">
+ <color value="shade/#474642/0.98" />
+ <color value="shade/#474642/0.98" />
+ <color value="shade/#474642/0.98" />
+ <color value="#3c3b37" />
+ <color value="#3c3b37" />
+ <color value="#3c3b37" />
+ </gradient>
+ <!-- top line -->
+ <gradient type="horizontal" x="0" y="1" width="width" height="1">
+ <color value="shade/#474642/1.08" />
+ <color value="shade/#474642/1.38" />
+ <color value="shade/#474642/1.08" />
+ </gradient>
+</draw_ops>
+
+<draw_ops name="draw_title_maximized_unfocused">
+ <!-- frame and gradient -->
+ <line color="#3c3b37" x1="0" x2="width" y1="0" y2="0"/>
+ <gradient type="vertical" x="0" y="1" width="width" height="top_height-1">
+ <color value="shade/#474642/0.9" />
+ <color value="shade/#474642/0.9" />
+ <color value="shade/#474642/0.9" />
+ <color value="#3c3b37" />
+ <color value="#3c3b37" />
+ <color value="#3c3b37" />
+ </gradient>
+ <!-- top line -->
+ <line color="shade/#474642/0.96" x1="0" x2="width" y1="1" y2="1"/>
+</draw_ops>
+
+<!-- window frames -->
+
+<draw_ops name="draw_frame">
+ <rectangle color="shade/gtk:bg[NORMAL]/0.7" filled="true" x="0" y="0" width="width" height="height"/>
+ <gradient type="vertical" x="0" y="0" width="width" height="80">
+ <color value="#3c3b37" />
+ <color value="#3c3b37" />
+ <color value="shade/gtk:bg[NORMAL]/0.7" />
+ </gradient>
+</draw_ops>
+
+<draw_ops name="draw_frame_utility">
+ <rectangle color="shade/gtk:bg[NORMAL]/0.7" filled="true" x="0" y="0" width="width" height="height"/>
+</draw_ops>
+
+<draw_ops name="bottom_edge">
+ <line color="shade/gtk:bg[NORMAL]/0.7" x1="0" x2="width" y1="height-1" y2="height-1"/>
+</draw_ops>
+
+<draw_ops name="border">
+ <line color="shade/gtk:bg[NORMAL]/0.88" x1="1" y1="height - 2" x2="width - 2" y2="height - 2"/>
+ <line color="shade/gtk:bg[NORMAL]/0.88" x1="width - 2" y1="1" x2="width - 2" y2="height - 2"/>
+ <line color="shade/gtk:bg[NORMAL]/1.4" x1="1" y1="1" x2="width - 2" y2="1"/>
+ <line color="shade/gtk:bg[NORMAL]/1.4" x1="1" y1="1" x2="1" y2="height - 2"/>
+ <rectangle color="shade/gtk:bg[NORMAL]/0.25" filled="false" x="0" y="0" width="width - 1" height="height - 1"/>
+</draw_ops>
+
+<!-- buttons -->
+
+<!-- button trough left -->
+<draw_ops name="left_left_background_focused_normal">
+ <image filename="trough_left.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="left_left_background_focused_pressed">
+ <image filename="trough_left.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="left_middle_background_focused_normal">
+ <image filename="trough_middle.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="left_middle_background_focused_pressed">
+ <image filename="trough_middle.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="left_right_background_focused_normal">
+ <image filename="trough_right.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="left_right_background_focused_pressed">
+ <image filename="trough_right.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="left_left_background_unfocused_normal">
+ <image filename="trough_left.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="left_left_background_unfocused_pressed">
+ <image filename="trough_left.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="left_middle_background_unfocused_normal">
+ <image filename="trough_middle.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="left_middle_background_unfocused_pressed">
+ <image filename="trough_middle.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="left_right_background_unfocused_normal">
+ <image filename="trough_right.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="left_right_background_unfocused_pressed">
+ <image filename="trough_right.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+
+<!-- button trough right -->
+<draw_ops name="right_left_background_focused_normal">
+ <image filename="trough_left.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="right_left_background_focused_pressed">
+ <image filename="trough_left.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="right_middle_background_focused_normal">
+ <image filename="trough_middle.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="right_middle_background_focused_pressed">
+ <image filename="trough_middle.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="right_right_background_focused_normal">
+ <image filename="trough_right.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="right_right_background_focused_pressed">
+ <image filename="trough_right.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="right_left_background_unfocused_normal">
+ <image filename="trough_left.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="right_left_background_unfocused_pressed">
+ <image filename="trough_left.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="right_middle_background_unfocused_normal">
+ <image filename="trough_middle.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="right_middle_background_unfocused_pressed">
+ <image filename="trough_middle.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="right_right_background_unfocused_normal">
+ <image filename="trough_right.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="right_right_background_unfocused_pressed">
+ <image filename="trough_right.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+
+<!-- button prelightlays -->
+<draw_ops name="menu_focused_normal">
+ <image filename="menu.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="menu_focused_prelight">
+ <image filename="menu_prelight.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="menu_unfocused_normal">
+ <image filename="menu.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="menu_unfocused_prelight">
+ <image filename="menu_prelight.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="minimize_focused_normal">
+ <image filename="minimize_focused_normal.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="minimize_focused_prelight">
+ <image filename="minimize_focused_prelight.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="minimize_focused_pressed">
+ <image filename="minimize_focused_pressed.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="minimize_unfocused_normal">
+ <image filename="minimize_unfocused.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="minimize_unfocused_prelight">
+ <image filename="minimize_unfocused_prelight.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="minimize_unfocused_pressed">
+ <image filename="minimize.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="maximize_focused_normal">
+ <image filename="maximize_focused_normal.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="maximize_focused_prelight">
+ <image filename="maximize_focused_prelight.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="maximize_focused_pressed">
+ <image filename="maximize_focused_pressed.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="maximize_unfocused_normal">
+ <image filename="maximize_unfocused.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="maximize_unfocused_prelight">
+ <image filename="maximize_unfocused_prelight.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="maximize_unfocused_pressed">
+ <image filename="maximize.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="unmaximize_focused_normal">
+ <image filename="unmaximize_focused_normal.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="unmaximize_focused_prelight">
+ <image filename="unmaximize_focused_prelight.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="unmaximize_focused_pressed">
+ <image filename="unmaximize_focused_pressed.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="unmaximize_unfocused_normal">
+ <image filename="unmaximize_unfocused.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="unmaximize_unfocused_prelight">
+ <image filename="unmaximize_unfocused_prelight.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="unmaximize_unfocused_pressed">
+ <image filename="unmaximize.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="close_focused_normal">
+ <image filename="close_focused_normal.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="close_focused_prelight">
+ <image filename="close_focused_prelight.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="close_focused_pressed">
+ <image filename="close_focused_pressed.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="close_unfocused_normal">
+ <image filename="close_unfocused.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="close_unfocused_prelight">
+ <image filename="close_unfocused_prelight.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+<draw_ops name="close_unfocused_pressed">
+ <image filename="close.png" x="0" y="1" width="object_width" height="object_height"/>
+</draw_ops>
+
+<!-- frame style -->
+<frame_style name="normal_focused" geometry="frame_geometry_normal">
+ <piece position="title" draw_ops="draw_title_text_normal"/>
+ <piece position="titlebar" draw_ops="draw_title"/>
+ <piece position="left_edge" draw_ops="draw_frame"/>
+ <piece position="right_edge" draw_ops="draw_frame"/>
+ <piece position="bottom_edge" draw_ops="bottom_edge"/>
+ <button function="left_left_background" state="normal" draw_ops="left_left_background_focused_normal"/>
+ <button function="left_middle_background" state="normal" draw_ops="left_middle_background_focused_normal"/>
+ <button function="left_right_background" state="normal" draw_ops="left_right_background_focused_normal"/>
+ <button function="left_left_background" state="prelight" draw_ops="left_left_background_focused_normal"/>
+ <button function="left_middle_background" state="prelight" draw_ops="left_middle_background_focused_normal"/>
+ <button function="left_right_background" state="prelight" draw_ops="left_right_background_focused_normal"/>
+ <button function="left_left_background" state="pressed" draw_ops="left_left_background_focused_pressed"/>
+ <button function="left_middle_background" state="pressed" draw_ops="left_middle_background_focused_pressed"/>
+ <button function="left_right_background" state="pressed" draw_ops="left_right_background_focused_pressed"/>
+ <button function="right_left_background" state="normal" draw_ops="right_left_background_focused_normal"/>
+ <button function="right_middle_background" state="normal" draw_ops="right_middle_background_focused_normal"/>
+ <button function="right_right_background" state="normal" draw_ops="right_right_background_focused_normal"/>
+ <button function="right_left_background" state="prelight" draw_ops="right_left_background_focused_normal"/>
+ <button function="right_middle_background" state="prelight" draw_ops="right_middle_background_focused_normal"/>
+ <button function="right_right_background" state="prelight" draw_ops="right_right_background_focused_normal"/>
+ <button function="right_left_background" state="pressed" draw_ops="right_left_background_focused_pressed"/>
+ <button function="right_middle_background" state="pressed" draw_ops="right_middle_background_focused_pressed"/>
+ <button function="right_right_background" state="pressed" draw_ops="right_right_background_focused_pressed"/>
+ <button function="menu" state="normal" draw_ops="menu_focused_normal"/>
+ <button function="menu" state="prelight" draw_ops="menu_focused_prelight"/>
+ <button function="menu" state="pressed" draw_ops="menu_focused_normal"/>
+ <button function="minimize" state="normal" draw_ops="minimize_focused_normal"/>
+ <button function="minimize" state="prelight" draw_ops="minimize_focused_prelight"/>
+ <button function="minimize" state="pressed" draw_ops="minimize_focused_pressed"/>
+ <button function="maximize" state="normal" draw_ops="maximize_focused_normal"/>
+ <button function="maximize" state="prelight" draw_ops="maximize_focused_prelight"/>
+ <button function="maximize" state="pressed" draw_ops="maximize_focused_pressed"/>
+ <button function="close" state="normal" draw_ops="close_focused_normal"/>
+ <button function="close" state="prelight" draw_ops="close_focused_prelight"/>
+ <button function="close" state="pressed" draw_ops="close_focused_pressed"/>
+ <shadow radius="8.0" opacity="0.75" color="#abde4f" x_offset="1" y_offset="4"/>
+ <padding left="7" right="7" bottom="7"/>
+</frame_style>
+
+<frame_style name="normal_unfocused" geometry="frame_geometry_normal">
+ <piece position="title" draw_ops="draw_title_text_unfocused"/>
+ <piece position="titlebar" draw_ops="draw_title_unfocused"/>
+ <piece position="left_edge" draw_ops="draw_frame"/>
+ <piece position="right_edge" draw_ops="draw_frame"/>
+ <piece position="bottom_edge" draw_ops="bottom_edge"/>
+ <button function="left_left_background" state="normal" draw_ops="left_left_background_unfocused_normal"/>
+ <button function="left_middle_background" state="normal" draw_ops="left_middle_background_unfocused_normal"/>
+ <button function="left_right_background" state="normal" draw_ops="left_right_background_unfocused_normal"/>
+ <button function="left_left_background" state="prelight" draw_ops="left_left_background_unfocused_normal"/>
+ <button function="left_middle_background" state="prelight" draw_ops="left_middle_background_unfocused_normal"/>
+ <button function="left_right_background" state="prelight" draw_ops="left_right_background_unfocused_normal"/>
+ <button function="left_left_background" state="pressed" draw_ops="left_left_background_unfocused_pressed"/>
+ <button function="left_middle_background" state="pressed" draw_ops="left_middle_background_unfocused_pressed"/>
+ <button function="left_right_background" state="pressed" draw_ops="left_right_background_unfocused_pressed"/>
+ <button function="right_left_background" state="normal" draw_ops="right_left_background_unfocused_normal"/>
+ <button function="right_middle_background" state="normal" draw_ops="right_middle_background_unfocused_normal"/>
+ <button function="right_right_background" state="normal" draw_ops="right_right_background_unfocused_normal"/>
+ <button function="right_left_background" state="prelight" draw_ops="right_left_background_unfocused_normal"/>
+ <button function="right_middle_background" state="prelight" draw_ops="right_middle_background_unfocused_normal"/>
+ <button function="right_right_background" state="prelight" draw_ops="right_right_background_unfocused_normal"/>
+ <button function="right_left_background" state="pressed" draw_ops="right_left_background_unfocused_pressed"/>
+ <button function="right_middle_background" state="pressed" draw_ops="right_middle_background_unfocused_pressed"/>
+ <button function="right_right_background" state="pressed" draw_ops="right_right_background_unfocused_pressed"/>
+ <button function="menu" state="normal" draw_ops="menu_unfocused_normal"/>
+ <button function="menu" state="prelight" draw_ops="menu_unfocused_prelight"/>
+ <button function="menu" state="pressed" draw_ops="menu_unfocused_normal"/>
+ <button function="minimize" state="normal" draw_ops="minimize_unfocused_normal"/>
+ <button function="minimize" state="prelight" draw_ops="minimize_unfocused_prelight"/>
+ <button function="minimize" state="pressed" draw_ops="minimize_unfocused_pressed"/>
+ <button function="maximize" state="normal" draw_ops="maximize_unfocused_normal"/>
+ <button function="maximize" state="prelight" draw_ops="maximize_unfocused_prelight"/>
+ <button function="maximize" state="pressed" draw_ops="maximize_unfocused_pressed"/>
+ <button function="close" state="normal" draw_ops="close_unfocused_normal"/>
+ <button function="close" state="prelight" draw_ops="close_unfocused_prelight"/>
+ <button function="close" state="pressed" draw_ops="close_unfocused_pressed"/>
+ <shadow radius="8.0" opacity="0.5" color="#abde4f" x_offset="1" y_offset="4"/>
+ <padding left="7" right="7" bottom="7"/>
+</frame_style>
+
+<frame_style name="maximized_focused" geometry="geometry_maximized" parent="normal_focused">
+ <piece position="title" draw_ops="draw_title_text_normal"/>
+ <piece position="titlebar" draw_ops="draw_title_maximized"/>
+ <button function="maximize" state="normal" draw_ops="unmaximize_focused_normal"/>
+ <button function="maximize" state="prelight" draw_ops="unmaximize_focused_prelight"/>
+ <button function="maximize" state="pressed" draw_ops="unmaximize_focused_pressed"/>
+ <shadow radius="0.0" opacity="0.0" color="#000000" x_offset="0" y_offset="0"/>
+ <padding left="0" right="0" bottom="0"/>
+</frame_style>
+
+<frame_style name="maximized_unfocused" geometry="geometry_maximized" parent="normal_unfocused">
+ <piece position="title" draw_ops="draw_title_text_unfocused"/>
+ <piece position="titlebar" draw_ops="draw_title_maximized_unfocused"/>
+ <button function="maximize" state="normal" draw_ops="unmaximize_unfocused_normal"/>
+ <button function="maximize" state="prelight" draw_ops="unmaximize_unfocused_prelight"/>
+ <button function="maximize" state="pressed" draw_ops="unmaximize_unfocused_pressed"/>
+ <shadow radius="0.0" opacity="0.0" color="#000000" x_offset="0" y_offset="0"/>
+ <padding left="0" right="0" bottom="0"/>
+</frame_style>
+
+<frame_style name="utility_focused" parent="normal_focused">
+ <piece position="title" draw_ops="draw_title_text_normal"/>
+ <piece position="titlebar" draw_ops="draw_title_utility"/>
+ <piece position="left_edge" draw_ops="draw_frame_utility"/>
+ <piece position="right_edge" draw_ops="draw_frame_utility"/>
+ <button function="menu" state="normal" draw_ops="menu_focused_normal"/>
+ <button function="menu" state="prelight" draw_ops="menu_focused_prelight"/>
+ <button function="menu" state="pressed" draw_ops="menu_focused_normal"/>
+ <button function="close" state="normal" draw_ops="close_focused_normal"/>
+ <button function="close" state="prelight" draw_ops="close_focused_prelight"/>
+ <button function="close" state="pressed" draw_ops="close_focused_pressed"/>
+ <shadow radius="8.0" opacity="0.3" color="#abde4f" x_offset="1" y_offset="1"/>
+ <padding left="2" right="2" bottom="2"/>
+</frame_style>
+
+<frame_style name="utility_unfocused" parent="normal_unfocused">
+ <piece position="title" draw_ops="draw_title_text_unfocused"/>
+ <piece position="titlebar" draw_ops="draw_title_utility_unfocused"/>
+ <piece position="left_edge" draw_ops="draw_frame_utility"/>
+ <piece position="right_edge" draw_ops="draw_frame_utility"/>
+ <button function="menu" state="normal" draw_ops="menu_unfocused_normal"/>
+ <button function="menu" state="prelight" draw_ops="menu_unfocused_prelight"/>
+ <button function="menu" state="pressed" draw_ops="menu_focused_normal"/>
+ <button function="close" state="normal" draw_ops="close_unfocused_normal"/>
+ <button function="close" state="prelight" draw_ops="close_unfocused_prelight"/>
+ <button function="close" state="pressed" draw_ops="close_unfocused_pressed"/>
+ <shadow radius="8.0" opacity="0.3" color="#abde4f" x_offset="1" y_offset="1"/>
+ <padding left="2" right="2" bottom="2"/>
+</frame_style>
+
+<frame_style name="border" geometry="border" parent="normal_focused">
+ <piece position="title" draw_ops="draw_title"/>
+ <piece position="titlebar" draw_ops="draw_title_unfocused"/>
+</frame_style>
+
+<!-- style set -->
+<frame_style_set name="normal">
+ <frame focus="yes" state="normal" resize="both" style="normal_focused"/>
+ <frame focus="no" state="normal" resize="both" style="normal_unfocused"/>
+ <frame focus="yes" state="maximized" style="maximized_focused"/>
+ <frame focus="no" state="maximized" style="maximized_unfocused"/>
+ <frame focus="yes" state="shaded" style="normal_focused"/><!-- todo -->
+ <frame focus="no" state="shaded" style="normal_unfocused"/><!-- todo -->
+ <frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/><!-- todo -->
+ <frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/><!-- todo -->
+</frame_style_set>
+
+<frame_style_set name="utility">
+ <frame focus="yes" state="normal" resize="both" style="utility_focused"/>
+ <frame focus="no" state="normal" resize="both" style="utility_unfocused"/>
+ <frame focus="yes" state="maximized" style="maximized_focused"/>
+ <frame focus="no" state="maximized" style="normal_focused"/>
+ <frame focus="yes" state="shaded" style="normal_focused"/><!-- todo -->
+ <frame focus="no" state="shaded" style="normal_unfocused"/><!-- todo -->
+ <frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/><!-- todo -->
+ <frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/><!-- todo -->
+</frame_style_set>
+
+<frame_style_set name="border">
+ <frame focus="yes" state="normal" resize="both" style="border"/>
+ <frame focus="no" state="normal" resize="both" style="border"/>
+ <frame focus="yes" state="maximized" style="maximized_focused"/>
+ <frame focus="no" state="maximized" style="normal_focused"/>
+ <frame focus="yes" state="shaded" style="normal_focused"/><!-- todo -->
+ <frame focus="no" state="shaded" style="normal_unfocused"/><!-- todo -->
+ <frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/><!-- todo -->
+ <frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/><!-- todo -->
+</frame_style_set>
+
+<!-- window -->
+<window type="normal" style_set="normal"/>
+<window type="dialog" style_set="utility"/>
+<window type="modal_dialog" style_set="utility"/>
+<window type="menu" style_set="utility"/>
+<window type="utility" style_set="utility"/>
+<window type="border" style_set="border"/>
+
+</metacity_theme>
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize.png
new file mode 100644
index 00000000..c15844e3
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_focused_normal.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_focused_normal.png
new file mode 100644
index 00000000..c15844e3
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_focused_normal.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_focused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_focused_prelight.png
new file mode 100644
index 00000000..96c0492a
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_focused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_focused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_focused_pressed.png
new file mode 100644
index 00000000..c8b69ee2
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_focused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused.png
new file mode 100644
index 00000000..a1f34902
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused_over.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused_over.png
new file mode 100644
index 00000000..ab03287b
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused_over.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused_prelight.png
new file mode 100644
index 00000000..96c0492a
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused_pressed.png
new file mode 100644
index 00000000..c8b69ee2
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/minimize_unfocused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/trough_left.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/trough_left.png
new file mode 100644
index 00000000..0c462416
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/trough_left.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/trough_middle.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/trough_middle.png
new file mode 100644
index 00000000..bbb3a0c4
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/trough_middle.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/trough_right.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/trough_right.png
new file mode 100644
index 00000000..90bca45b
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/trough_right.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize.png
new file mode 100644
index 00000000..44170155
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_focused_normal.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_focused_normal.png
new file mode 100644
index 00000000..44170155
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_focused_normal.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_focused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_focused_prelight.png
new file mode 100644
index 00000000..2d79bf56
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_focused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_focused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_focused_pressed.png
new file mode 100644
index 00000000..dff681fc
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_focused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused.png
new file mode 100644
index 00000000..f2c85846
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused_over.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused_over.png
new file mode 100644
index 00000000..a5c7093a
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused_over.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused_prelight.png
new file mode 100644
index 00000000..2d79bf56
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused_pressed.png
new file mode 100644
index 00000000..dff681fc
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/metacity-1/unmaximize_unfocused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close.png
new file mode 100644
index 00000000..72e3b9cb
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_focused_normal.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_focused_normal.png
new file mode 100644
index 00000000..72e3b9cb
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_focused_normal.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_focused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_focused_prelight.png
new file mode 100644
index 00000000..5768c54c
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_focused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_focused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_focused_pressed.png
new file mode 100644
index 00000000..590a7c31
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_focused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_unfocused.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_unfocused.png
new file mode 100644
index 00000000..03eb5a69
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_unfocused.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_unfocused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_unfocused_prelight.png
new file mode 100644
index 00000000..6e5ec3d9
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_unfocused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_unfocused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_unfocused_pressed.png
new file mode 100644
index 00000000..d8c52f10
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/close_unfocused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize.png
new file mode 100644
index 00000000..ae1d896b
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_focused_normal.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_focused_normal.png
new file mode 100644
index 00000000..ae1d896b
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_focused_normal.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_focused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_focused_prelight.png
new file mode 100644
index 00000000..af33732b
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_focused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_focused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_focused_pressed.png
new file mode 100644
index 00000000..4e07a0cb
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_focused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_unfocused.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_unfocused.png
new file mode 100644
index 00000000..7a67f2fe
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_unfocused.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_unfocused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_unfocused_prelight.png
new file mode 100644
index 00000000..3601d729
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_unfocused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_unfocused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_unfocused_pressed.png
new file mode 100644
index 00000000..c70e49bb
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/maximize_unfocused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize.png
new file mode 100644
index 00000000..c5d7d21c
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_focused_normal.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_focused_normal.png
new file mode 100644
index 00000000..c5d7d21c
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_focused_normal.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_focused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_focused_prelight.png
new file mode 100644
index 00000000..6aa77c07
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_focused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_focused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_focused_pressed.png
new file mode 100644
index 00000000..13b1b064
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_focused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_unfocused.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_unfocused.png
new file mode 100644
index 00000000..ab9cfa82
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_unfocused.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_unfocused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_unfocused_prelight.png
new file mode 100644
index 00000000..6aa77c07
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_unfocused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_unfocused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_unfocused_pressed.png
new file mode 100644
index 00000000..13b1b064
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/minimize_unfocused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize.png
new file mode 100644
index 00000000..45e915ef
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_focused_normal.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_focused_normal.png
new file mode 100644
index 00000000..45e915ef
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_focused_normal.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_focused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_focused_prelight.png
new file mode 100644
index 00000000..8c9d888f
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_focused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_focused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_focused_pressed.png
new file mode 100644
index 00000000..240b9249
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_focused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_unfocused.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_unfocused.png
new file mode 100644
index 00000000..d06a8452
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_unfocused.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_unfocused_prelight.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_unfocused_prelight.png
new file mode 100644
index 00000000..8c9d888f
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_unfocused_prelight.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_unfocused_pressed.png b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_unfocused_pressed.png
new file mode 100644
index 00000000..240b9249
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/data/usr/share/themes/Ambiance/unity/unmaximize_unfocused_pressed.png
Binary files differ
diff --git a/remote/modules/ldm-gtk-greeter/ldm-gtk-greeter.build b/remote/modules/ldm-gtk-greeter/ldm-gtk-greeter.build
new file mode 100644
index 00000000..19adf66a
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/ldm-gtk-greeter.build
@@ -0,0 +1,43 @@
+#tool/distro specific functions for fetching, building and installing dependencies
+
+fetch_source () {
+ [ ! -e .fetched_source ] && download_untar "$URL" "src/"
+ touch .fetched_source
+}
+
+build () {
+ if [ ! -e .built ]; then
+ cd "src/$VERSION"
+ pinfo "Running configure"
+ ./configure --prefix="/" --datarootdir="/usr/share" || perror "failed."
+ pinfo "Running make"
+ make || perror "failed."
+ pinfo "Running make install"
+ DESTDIR="${MODULE_BUILD_DIR}" make install || perror "failed."
+
+ COPYLIST="list_dpkg_output"
+ [ -e "$COPYLIST" ] && rm "$COPYLIST"
+
+ list_packet_files >> "$COPYLIST"
+ tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}"
+
+ cd -
+ touch .built
+
+ fi
+}
+
+post_copy() {
+ #copy static data files
+ cp -r "${MODULE_DIR}/data/"* "${TARGET_BUILD_DIR}" || perror "Copying data/* failed."
+ # TODO: FIX PATH TO TRIPLET...
+ TRIPLET="$(basename "$(dirname "$(ldd "$SHELL" | grep libc | awk -F " " '{print $3}')")")"
+ gdk-pixbuf-query-loaders > "${TARGET_BUILD_DIR}/usr/lib/${TRIPLET}/gdk-pixbuf-2.0/2.10.0/loaders.cache" || perror "pixbuf-query-loaders failed."
+ mkdir -p "${TARGET_BUILD_DIR}/etc/pango" || perror "Making etc/pango failed."
+ pango-querymodules > "${TARGET_BUILD_DIR}/etc/pango/pango.modules" || perror "pango-querymodules failed."
+ gtk-update-icon-cache-3.0 "${TARGET_BUILD_DIR}/usr/share/icons/hicolor/" || perror "update-icon-cache-3.0 failed."
+ update-mime-database "${TARGET_BUILD_DIR}/usr/share/mime" || perror "update-mime-database failed."
+ mkdir -p "${TARGET_BUILD_DIR}/var/lib"
+ cp -r "/var/lib/polkit-1" "${TARGET_BUILD_DIR}/var/lib/" || perror "Copying -r /var/lib/polkit-1 to '${TARGET_BUILD_DIR}/var/lib/' failed."
+}
+
diff --git a/remote/modules/ldm-gtk-greeter/ldm-gtk-greeter.conf b/remote/modules/ldm-gtk-greeter/ldm-gtk-greeter.conf
new file mode 100644
index 00000000..58d189b7
--- /dev/null
+++ b/remote/modules/ldm-gtk-greeter/ldm-gtk-greeter.conf
@@ -0,0 +1,9 @@
+VERSION=lightdm-gtk-greeter-1.3.1
+URL=https://launchpad.net/lightdm-gtk-greeter/1.4/1.3.1/+download/lightdm-gtk-greeter-1.3.1.tar.gz
+REQUIRED_DEPENDENCIES="gtk+-3.0 liblightdm-gobject-1-dev libgdk-pixbuf2.0-0 libpango1.0-0 librsvg2-common shared-mime-info gnome-themes-standard"
+REQUIRED_PACKAGES="libgdk-pixbuf2.0-0 libpango1.0-0 librsvg2-common shared-mime-info gnome-themes-standard"
+REQUIRED_BINARIES="lightdm-gtk-greeter"
+REQUIRED_DIRECTORIES="/usr/lib /usr/share/lightdm-gtk-greeter /usr/share/mime /usr/share/xgreeters /usr/share/icons /usr/share/themes /etc /usr/bin"
+REQUIRED_FILES="/etc/lightdm/lightdm-gtk-greeter.conf"
+REQUIRED_MODULES="ldm"
+
diff --git a/remote/modules/ldm/data/etc/systemd/system/graphical.target.wants/lightdm.service b/remote/modules/ldm/data/etc/systemd/system/graphical.target.wants/lightdm.service
new file mode 120000
index 00000000..c7aaa65a
--- /dev/null
+++ b/remote/modules/ldm/data/etc/systemd/system/graphical.target.wants/lightdm.service
@@ -0,0 +1 @@
+../lightdm.service \ No newline at end of file
diff --git a/remote/modules/ldm/data/etc/systemd/system/lightdm.service b/remote/modules/ldm/data/etc/systemd/system/lightdm.service
new file mode 100644
index 00000000..99911bff
--- /dev/null
+++ b/remote/modules/ldm/data/etc/systemd/system/lightdm.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=LightDM Display Manager
+Requires=dev-tty7.device
+After=dev-tty7.device systemd-user-sessions.service
+
+[Service]
+ExecStart=/sbin/lightdm
+
+[Install]
+WantedBy=graphical.target
diff --git a/remote/modules/ldm/ldm.build b/remote/modules/ldm/ldm.build
new file mode 100644
index 00000000..88429cff
--- /dev/null
+++ b/remote/modules/ldm/ldm.build
@@ -0,0 +1,41 @@
+#tool/distro specific functions for fetching, building and installing dependencies
+
+fetch_source () {
+ [ ! -e .fetched_source ] && download_untar "$URL" "src/"
+ touch .fetched_source
+}
+
+build () {
+ if [ ! -e .built ]; then
+ cd "src/$VERSION"
+ pinfo "Running configure"
+ ./configure --prefix="/" --datarootdir="/usr/share" || perror "failed."
+ pinfo "Running make"
+ make || perror "failed."
+ pinfo "Running make install"
+ DESTDIR="${MODULE_BUILD_DIR}" make install || perror "failed."
+
+ COPYLIST="list_dpkg_output"
+
+ [ -e "$COPYLIST" ] && rm "$COPYLIST"
+
+ list_packet_files >> "$COPYLIST"
+ tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}"
+
+ cd -
+ touch .built
+ fi
+}
+
+post_copy() {
+ mkdir -p "${TARGET_BUILD_DIR}/var/lib/lightdm"
+ touch "${TARGET_BUILD_DIR}/var/lib/lightdm/.Xauthority" || perror "Cannot touch '${TARGET_BUILD_DIR}/var/lib/lightdm/.Xauthority'"
+ local LDMUID=$(add_user "lightdm")
+ local LDMGID=$(add_group "lightdm")
+ pinfo "lightdm user and group is $LDMUID $LDMGID"
+ chown -R "${LDMUID}:${LDMGID}" "${TARGET_BUILD_DIR}/var/lib/lightdm/" || perror "chowning '${TARGET_BUILD_DIR}/var/lib/lightdm/' failed."
+ #copyi static data files
+ cp -r "${MODULE_DIR}/data/"* "${TARGET_BUILD_DIR}" || perror "Copying data/ failed."
+
+}
+
diff --git a/remote/modules/ldm/ldm.conf b/remote/modules/ldm/ldm.conf
new file mode 100644
index 00000000..d40aab7f
--- /dev/null
+++ b/remote/modules/ldm/ldm.conf
@@ -0,0 +1,8 @@
+VERSION=lightdm-1.4.0
+URL=https://launchpad.net/lightdm/1.4/1.4.0/+download/lightdm-1.4.0.tar.gz
+REQUIRED_DEPENDENCIES="libpam-dev itstool liblightdm-gobject-1-dev"
+REQUIRED_PACKAGES=""
+REQUIRED_BINARIES="dm-tool lightdm lightdm-set-defaults gdmflexiserver lightdm-guest-session-wrapper lightdm-set-defaults"
+REQUIRED_DIRECTORIES="/etc /lib"
+REQUIRED_FILES=""
+
diff --git a/remote/modules/plymouth/data/etc/systemd/system/plymouth-halt.service b/remote/modules/plymouth/data/etc/systemd/system/plymouth-halt.service
new file mode 100644
index 00000000..d01ba9b8
--- /dev/null
+++ b/remote/modules/plymouth/data/etc/systemd/system/plymouth-halt.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Show Plymouth Halt Screen
+After=getty@tty1.service prefdm.service plymouth-start.service
+Before=halt.service
+DefaultDependencies=no
+ConditionKernelCommandLine=!plymouth.enable=0
+
+[Service]
+ExecStart=/sbin/plymouthd --mode=shutdown --attach-to-session
+ExecStartPost=-/bin/plymouth show-splash
+Type=forking
diff --git a/remote/modules/plymouth/data/etc/systemd/system/plymouth-kexec.service b/remote/modules/plymouth/data/etc/systemd/system/plymouth-kexec.service
new file mode 100644
index 00000000..1fe6e47f
--- /dev/null
+++ b/remote/modules/plymouth/data/etc/systemd/system/plymouth-kexec.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Show Plymouth Reboot with kexec Screen
+After=getty@tty1.service prefdm.service plymouth-start.service
+Before=kexec.service
+DefaultDependencies=no
+ConditionKernelCommandLine=!plymouth.enable=0
+
+[Service]
+ExecStart=/sbin/plymouthd --mode=shutdown --attach-to-session
+ExecStartPost=-/bin/plymouth show-splash
+Type=forking
diff --git a/remote/modules/plymouth/data/etc/systemd/system/plymouth-poweroff.service b/remote/modules/plymouth/data/etc/systemd/system/plymouth-poweroff.service
new file mode 100644
index 00000000..49742f6e
--- /dev/null
+++ b/remote/modules/plymouth/data/etc/systemd/system/plymouth-poweroff.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Show Plymouth Power Off Screen
+After=getty@tty1.service prefdm.service plymouth-start.service
+Before=poweroff.service
+DefaultDependencies=no
+ConditionKernelCommandLine=!plymouth.enable=0
+
+[Service]
+ExecStart=/sbin/plymouthd --mode=shutdown --attach-to-session
+ExecStartPost=-/bin/plymouth show-splash
+Type=forking
diff --git a/remote/modules/plymouth/data/etc/systemd/system/plymouth-quit-wait.service b/remote/modules/plymouth/data/etc/systemd/system/plymouth-quit-wait.service
new file mode 100644
index 00000000..56af45a7
--- /dev/null
+++ b/remote/modules/plymouth/data/etc/systemd/system/plymouth-quit-wait.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Wait for Plymouth Boot Screen to Quit
+After=rc-local.service plymouth-start.service systemd-user-sessions.service
+
+[Service]
+ExecStart=-/bin/plymouth --wait
+Type=oneshot
+TimeoutSec=20
diff --git a/remote/modules/plymouth/data/etc/systemd/system/plymouth-quit.service b/remote/modules/plymouth/data/etc/systemd/system/plymouth-quit.service
new file mode 100644
index 00000000..be3c1888
--- /dev/null
+++ b/remote/modules/plymouth/data/etc/systemd/system/plymouth-quit.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Terminate Plymouth Boot Screen
+After=rc-local.service plymouth-start.service systemd-user-sessions.service
+
+[Service]
+ExecStart=-/bin/plymouth quit
+Type=oneshot
+TimeoutSec=20
diff --git a/remote/modules/plymouth/data/etc/systemd/system/plymouth-read-write.service b/remote/modules/plymouth/data/etc/systemd/system/plymouth-read-write.service
new file mode 100644
index 00000000..caa3973b
--- /dev/null
+++ b/remote/modules/plymouth/data/etc/systemd/system/plymouth-read-write.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Tell Plymouth To Write Out Runtime Data
+DefaultDependencies=no
+After=local-fs.target
+Before=sysinit.target
+
+[Service]
+ExecStart=-/bin/plymouth update-root-fs --read-write
+Type=oneshot
diff --git a/remote/modules/plymouth/data/etc/systemd/system/plymouth-reboot.service b/remote/modules/plymouth/data/etc/systemd/system/plymouth-reboot.service
new file mode 100644
index 00000000..dbedd00d
--- /dev/null
+++ b/remote/modules/plymouth/data/etc/systemd/system/plymouth-reboot.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Show Plymouth Reboot Screen
+After=getty@tty1.service prefdm.service plymouth-start.service
+Before=reboot.service
+DefaultDependencies=no
+ConditionKernelCommandLine=!plymouth.enable=0
+
+[Service]
+ExecStart=/sbin/plymouthd --mode=shutdown --attach-to-session
+ExecStartPost=-/bin/plymouth show-splash
+Type=forking
diff --git a/remote/modules/plymouth/data/etc/systemd/system/plymouth-start.service b/remote/modules/plymouth/data/etc/systemd/system/plymouth-start.service
new file mode 100644
index 00000000..09243001
--- /dev/null
+++ b/remote/modules/plymouth/data/etc/systemd/system/plymouth-start.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Show Plymouth Boot Screen
+DefaultDependencies=no
+Wants=systemd-ask-password-plymouth.path
+After=systemd-vconsole-setup.service systemd-udev-settle.service
+Before=systemd-ask-password-plymouth.service
+ConditionKernelCommandLine=!plymouth.enable=0
+ConditionPathExists=!/run/plymouth/pid
+
+[Service]
+ExecStart=/sbin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
+ExecStartPost=-/bin/udevadm settle --timeout=30 --exit-if-exists=/sys/class/drm/card0/dev;-/bin/udevadm settle --timeout=30 --exit-if-exists=/sys/class/graphics/fb0/dev; -/bin/plymouth show-splash
+Type=forking
diff --git a/remote/modules/plymouth/data/etc/systemd/system/systemd-ask-password-plymouth.path b/remote/modules/plymouth/data/etc/systemd/system/systemd-ask-password-plymouth.path
new file mode 100644
index 00000000..c2ee4206
--- /dev/null
+++ b/remote/modules/plymouth/data/etc/systemd/system/systemd-ask-password-plymouth.path
@@ -0,0 +1,13 @@
+[Unit]
+Description=Forward Password Requests to Plymouth Directory Watch
+Documentation=http://www.freedesktop.org/wiki/Software/systemd/PasswordAgents
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=plymouth-start.service
+Before=basic.target shutdown.target
+ConditionKernelCommandLine=!plymouth.enable=0
+ConditionPathExists=/run/plymouth/pid
+
+[Path]
+DirectoryNotEmpty=/run/systemd/ask-password
+MakeDirectory=yes
diff --git a/remote/modules/plymouth/data/etc/systemd/system/systemd-ask-password-plymouth.service b/remote/modules/plymouth/data/etc/systemd/system/systemd-ask-password-plymouth.service
new file mode 100644
index 00000000..aa9ffc21
--- /dev/null
+++ b/remote/modules/plymouth/data/etc/systemd/system/systemd-ask-password-plymouth.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Forward Password Requests to Plymouth
+Documentation=http://www.freedesktop.org/wiki/Software/systemd/PasswordAgents
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=plymouth-start.service
+Before=shutdown.target
+ConditionKernelCommandLine=!plymouth.enable=0
+ConditionPathExists=/run/plymouth/pid
+
+[Service]
+ExecStart=/bin/systemd-tty-ask-password-agent --watch --plymouth
diff --git a/remote/modules/plymouth/data/lib/plymouth/themes/default.plymouth b/remote/modules/plymouth/data/lib/plymouth/themes/default.plymouth
new file mode 100644
index 00000000..bc669108
--- /dev/null
+++ b/remote/modules/plymouth/data/lib/plymouth/themes/default.plymouth
@@ -0,0 +1,8 @@
+[Plymouth Theme]
+Name=Uni-Freiburg Basic Theme
+Description=Uni-Freiburg simple blue-ish theme with simple progress bar
+ModuleName=script
+
+[script]
+ImageDir=/lib/plymouth/themes/unifr-rz
+ScriptFile=/lib/plymouth/themes/unifr-rz/unifr-rz.script
diff --git a/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/rz_banner_trans.png b/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/rz_banner_trans.png
new file mode 100644
index 00000000..9cb68040
--- /dev/null
+++ b/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/rz_banner_trans.png
Binary files differ
diff --git a/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/rz_logo_trans.png b/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/rz_logo_trans.png
new file mode 100644
index 00000000..16b069cc
--- /dev/null
+++ b/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/rz_logo_trans.png
Binary files differ
diff --git a/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/unifr-rz.plymouth b/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/unifr-rz.plymouth
new file mode 100644
index 00000000..0f300f6b
--- /dev/null
+++ b/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/unifr-rz.plymouth
@@ -0,0 +1,9 @@
+[Plymouth Theme]
+Name=Simple RZ Theme
+Description=Simple blue RZ theme with progress bar.
+ModuleName=script
+
+[script]
+ImageDir=/lib/plymouth/themes/unifr-rz
+ScriptFile=/lib/plymouth/themes/unifr-rz/unifr-rz.script
+
diff --git a/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/unifr-rz.script b/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/unifr-rz.script
new file mode 100644
index 00000000..f2d8bd28
--- /dev/null
+++ b/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/unifr-rz.script
@@ -0,0 +1,116 @@
+Window.SetBackgroundTopColor(0.00, 0.21, 0.57);
+#Window.SetBackgroundBottomColor(0.00, 0.17, 0.95);
+
+title_left_image = Image("rz_banner_trans.png");
+title_right_image = Image("rz_logo_trans.png");
+title_left_sprite = Sprite(title_left_image);
+title_right_sprite = Sprite(title_right_image);
+
+title_right_sprite.SetX(Window.GetWidth() - title_right_image.GetWidth());
+
+dot.image = Image("white_dot_small.png");
+dot.sprite1 = Sprite(dot.image);
+dot.sprite2 = Sprite(dot.image);
+dot.sprite3 = Sprite(dot.image);
+dot.sprite4 = Sprite(dot.image);
+dot.sprite5 = Sprite(dot.image);
+
+#----------------------------------------- Progress Dots --------------------------------
+
+dot.x = Window.GetWidth() / 2 - dot.image.GetWidth() / 2;
+dot.y = Window.GetHeight() * 0.75 - dot.image.GetHeight() / 2;
+dot.spacing = Window.GetWidth() / 15;
+
+# place 5 centered dots
+dot.sprite1.SetPosition(dot.x - 2 * dot.spacing, dot.y, 1);
+dot.sprite2.SetPosition(dot.x - dot.spacing, dot.y, 1);
+dot.sprite3.SetPosition(dot.x, dot.y, 1);
+dot.sprite4.SetPosition(dot.x + dot.spacing, dot.y, 1);
+dot.sprite5.SetPosition(dot.x + 2 * dot.spacing, dot.y, 1);
+
+# set opacity
+dot.sprite1.SetOpacity(0.1);
+dot.sprite2.SetOpacity(0.1);
+dot.sprite3.SetOpacity(0.1);
+dot.sprite4.SetOpacity(0.1);
+dot.sprite5.SetOpacity(0.1);
+
+fun progress_callback (duration, progress)
+ {
+ phase = Math.Int(duration * 2) % 10;
+
+ if ( phase == 1 )
+ {
+ fade_out(dot.sprite5);
+ fade_in(dot.sprite1);
+ }
+
+ if ( phase == 2 )
+ {
+ fade_out(dot.sprite1);
+ fade_in(dot.sprite2);
+ }
+
+ if ( phase == 3 )
+ {
+ fade_out(dot.sprite2);
+ fade_in(dot.sprite3);
+ }
+
+ if ( phase == 4 )
+ {
+ fade_out(dot.sprite3);
+ fade_in(dot.sprite4);
+ }
+
+ if ( phase == 5 )
+ {
+ fade_out(dot.sprite4);
+ fade_in(dot.sprite5);
+ }
+
+ if ( phase == 6 )
+ {
+ fade_out(dot.sprite5);
+ fade_in(dot.sprite1);
+ }
+
+ if ( phase == 7 )
+ {
+ fade_out(dot.sprite1);
+ fade_in(dot.sprite2);
+ }
+
+ if ( phase == 8 )
+ {
+ fade_out(dot.sprite2);
+ fade_in(dot.sprite3);
+ }
+
+ if ( phase == 9 )
+ {
+ fade_out(dot.sprite3);
+ fade_in(dot.sprite4);
+ }
+
+ if ( phase == 0 )
+ {
+ fade_out(dot.sprite4);
+ if ( Math.Int(duration) > 0 )
+ { fade_in(dot.sprite5); }
+ }
+ }
+
+fun fade_in(sprite)
+{
+ if ( sprite.GetOpacity() + 0.1 < 1 )
+ { sprite.SetOpacity(sprite.GetOpacity() + 0.1);}
+}
+
+fun fade_out(sprite)
+{
+ if ( sprite.GetOpacity() - 0.1 > 0.1 )
+ { sprite.SetOpacity(sprite.GetOpacity() - 0.1);}
+}
+
+Plymouth.SetBootProgressFunction(progress_callback);
diff --git a/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/white_dot_small.png b/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/white_dot_small.png
new file mode 100644
index 00000000..4fd4be30
--- /dev/null
+++ b/remote/modules/plymouth/data/lib/plymouth/themes/unifr-rz/white_dot_small.png
Binary files differ
diff --git a/remote/modules/plymouth/plymouth.build b/remote/modules/plymouth/plymouth.build
new file mode 100644
index 00000000..4363e809
--- /dev/null
+++ b/remote/modules/plymouth/plymouth.build
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+fetch_source() {
+ [ ! -e .fetched_source ] && download_untar "$URL" "src/"
+ touch .fetched_source
+}
+
+build() {
+ if [ ! -e .built ]; then
+ cd src/$VERSION
+ pinfo "Running configure"
+ ./configure --enable-systemd-integration --disable-gtk --disable-static --prefix=""|| perror "failed."
+ pinfo "Running make"
+ make -j5 || perror "failed"
+ pinfo "Running make install"
+ DESTDIR="${MODULE_BUILD_DIR}" make install || perror "failed"
+ cd -
+ touch .built
+ fi
+}
+
+post_copy() {
+ # copy static dbus systemd unit files to stage3.2
+ SYSTEMDDIR=${TARGET_BUILD_DIR}/etc/systemd/system
+ [ ! -d ${SYSTEMDDIR} ] && mkdir -p ${SYSTEMDDIR}
+ cp -r ${MODULE_DIR}/data/* ${TARGET_BUILD_DIR}
+}
diff --git a/remote/modules/plymouth/plymouth.conf b/remote/modules/plymouth/plymouth.conf
new file mode 100644
index 00000000..026aff9c
--- /dev/null
+++ b/remote/modules/plymouth/plymouth.conf
@@ -0,0 +1,14 @@
+VERSION=plymouth-0.8.6.1
+URL=http://www.freedesktop.org/software/plymouth/releases/${VERSION}.tar.bz2
+REQUIRED_DEPENDENCIES=" libpng-dev
+ libpango1.0-dev
+ libcairo-dev
+ libgtk2.0-dev
+ libdrm-dev"
+REQUIRED_BINARIES=" plymouth
+ plymouthd"
+REQUIRED_DIRECTORIES=" /bin
+ /etc
+ /lib
+ /sbin
+ /var"
diff --git a/remote/modules/policykit-src/policykit.build b/remote/modules/policykit-src/policykit.build
new file mode 100644
index 00000000..811d9b0c
--- /dev/null
+++ b/remote/modules/policykit-src/policykit.build
@@ -0,0 +1,42 @@
+#tool/distro specific functions for fetching, building and installing dependencies
+
+
+fetch_source () {
+ [ ! -e .fetched_source ] && download_untar "$URL" "src/"
+ touch .fetched_source
+}
+
+build () {
+ if [ ! -e .built ]; then
+ cd src/$VERSION
+
+ [ ! -d "${MODULES_DIR}/systemd/build" ] && perror "systemd build directory not found. Build it first."
+ SYSTEMD_BUILD_DIR="${MODULES_DIR}/systemd/build"
+ pinfo "configuring..."
+ LIBSYSTEMD_LOGIN_LIBS="-L${SYSTEMD_BUILD_DIR}/usr/lib/" \
+ LIBSYSTEMD_LOGIN_CFLAGS="-I${SYSTEMD_BUILD_DIR}/usr/include -I${SYSTEMD_BUILD_DIR}/usr/include/systemd -lsystemd-login -lsystemd-daemon" \
+ ./configure --enable-libsystemd-login=yes --with-systemdsystemunitdir=/etc/systemd/system -prefix="/" --datarootdir="/usr/share" --enable-man-pages=no --enable-gtk-doc-html=no --enable-examples=no --enable-static=no
+ pinfo "calling make..."
+ make || perror "make failed."
+ [ ! -d "${MODULE_BUILD_DIR}" ] && mkdir -p "${MODULE_BUILD_DIR}"
+ pinfo "installing to ${MODULE_BUILD_DIR}..."
+ DESTDIR="${MODULE_BUILD_DIR}" make install || perror "make install failed..."
+
+ COPYLIST="list_dpkg_output"
+ [ -e "$COPYLIST" ] && rm "$COPYLIST"
+
+ list_packet_files >> "$COPYLIST"
+ tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}"
+
+ cd -
+ touch .built
+ fi
+}
+
+post_copy() {
+
+ #Add Polkit User/Group/Shadow to Stage3.2
+ pinfo "Adding polkitd user to target system..."
+ add_user "polkitd"
+}
+
diff --git a/remote/modules/policykit-src/policykit.conf b/remote/modules/policykit-src/policykit.conf
new file mode 100644
index 00000000..73b04015
--- /dev/null
+++ b/remote/modules/policykit-src/policykit.conf
@@ -0,0 +1,10 @@
+VERSION=polkit-0.110
+URL=http://www.freedesktop.org/software/polkit/releases/polkit-0.110.tar.gz
+REQUIRED_DEPENDENCIES="libmozjs185-1.0"
+REQUIRED_PACKAGES="libmozjs185-1.0"
+REQUIRED_BINARIES=""
+REQUIRED_DIRECTORIES="/bin /etc /lib /usr/share/dbus-1 /usr/share/polkit-1"
+REQUIRED_FILES=""
+REQUIRED_LIBRARIES="libmozjs185"
+REQUIRED_MODULES="systemd"
+
diff --git a/remote/modules/policykit/data/lib/systemd/system/polkitd.service b/remote/modules/policykit/data/lib/systemd/system/polkitd.service
new file mode 100644
index 00000000..d3f192d1
--- /dev/null
+++ b/remote/modules/policykit/data/lib/systemd/system/polkitd.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=Authenticate and Authorize Users to Run Privileged Tasks
+
+[Service]
+Type=dbus
+BusName=org.freedesktop.PolicyKit1
+ExecStart=/usr/lib/policykit-1/polkitd --no-debug
diff --git a/remote/modules/policykit/policykit.build b/remote/modules/policykit/policykit.build
new file mode 100644
index 00000000..6a03b81c
--- /dev/null
+++ b/remote/modules/policykit/policykit.build
@@ -0,0 +1,25 @@
+#tool/distro specific functions for fetching, building and installing dependencies
+
+
+fetch_source () {
+ pinfo "Extracting from running system..."
+}
+
+build () {
+ COPYLIST="list_dpkg_output"
+ [ -e "${COPYLIST}" ] && rm "${COPYLIST}"
+
+ list_packet_files >> "${COPYLIST}"
+ tarcopy "$(cat "${COPYLIST}" | sort -u)" "${MODULE_BUILD_DIR}"
+}
+
+post_copy() {
+
+ # copy static policykit files to stage3.2
+ cp -r ${MODULE_BUILD_DIR}/data/* ${TARGET_BUILD_DIR}
+
+ #Add Polkit User/Group/Shadow to Stage3.2
+ pinfo "Adding polkitd user to target system..."
+ add_user "polkitd"
+}
+
diff --git a/remote/modules/policykit/policykit.conf b/remote/modules/policykit/policykit.conf
new file mode 100644
index 00000000..3dcfd8d9
--- /dev/null
+++ b/remote/modules/policykit/policykit.conf
@@ -0,0 +1,11 @@
+REQUIRED_DEPENDENCIES="libmozjs185-1.0"
+REQUIRED_PACKAGES="libmozjs185-1.0 policykit-1"
+REQUIRED_BINARIES=""
+REQUIRED_DIRECTORIES=" /etc/pam.d /etc/dbus-1 /etc/polkit-1
+ /usr/bin
+ /usr/share/dbus-1
+ /usr/share/polkit-1
+ /usr/lib/policykit-1
+ /usr/lib/${ARCH_TRIPLET}/polkit-1"
+REQUIRED_FILES=""
+REQUIRED_LIBRARIES="libmozjs185"
diff --git a/remote/modules/rsyslogd/rsyslogd.build b/remote/modules/rsyslogd/rsyslogd.build
new file mode 100644
index 00000000..43aa112d
--- /dev/null
+++ b/remote/modules/rsyslogd/rsyslogd.build
@@ -0,0 +1,38 @@
+fetch_source() {
+ :
+}
+
+build() {
+
+ FILELIST="list_binaries_and_files"
+ BIN_LOCATION=$(which rsyslogd)
+ if [ ! -z ${BIN_LOCATION} -a -e ${BIN_LOCATION} ];
+ then
+ get_link_chain "${BIN_LOCATION}" >> "${FILELIST}"
+ else
+ perror "${BIN} not found on the system! Please install it."
+ exit 1
+ fi
+
+ for ENTRY in ${REQUIRED_FILES} ${REQUIRED_DIRECTORIES}; do
+ get_link_chain "${ENTRY}" >> "${FILELIST}"
+ done
+
+ tarcopy "$(cat ${FILELIST}|sort -u)" "${MODULE_BUILD_DIR}"
+
+}
+
+post_copy() {
+ mkdir -p "${TARGET_BUILD_DIR}"/var/spool/rsyslog
+
+ [ -e /lib/systemd/system/rsyslog.service ] \
+ && cp /lib/systemd/system/rsyslog.service "${TARGET_BUILD_DIR}"/etc/systemd/system/
+ sed -i 's/\/bin\/systemctl/-\/usr\/bin\/systemctl/g' "${TARGET_BUILD_DIR}"/etc/systemd/system/rsyslog.service
+ sed -i 's/^Before=udev/#&/' "${TARGET_BUILD_DIR}"/etc/systemd/system/rsyslog.service
+
+ # activate the service
+ ln -s rsyslog.service "${TARGET_BUILD_DIR}"/etc/systemd/system/syslog.service
+ [ ! -d "${TARGET_BUILD_DIR}"/etc/systemd/system/basic.target.wants ] && mkdir -p "${TARGET_BUILD_DIR}"/etc/systemd/system/basic.target.wants
+ ln -s ../syslog.service "${TARGET_BUILD_DIR}"/etc/systemd/system/basic.target.wants/syslog.service
+
+}
diff --git a/remote/modules/rsyslogd/rsyslogd.conf b/remote/modules/rsyslogd/rsyslogd.conf
new file mode 100644
index 00000000..20b5df1b
--- /dev/null
+++ b/remote/modules/rsyslogd/rsyslogd.conf
@@ -0,0 +1,4 @@
+REQUIRED_BINARIES=" rsyslogd"
+REQUIRED_FILES=" /etc/rsyslog.conf"
+REQUIRED_DIRECTORIES=" /etc/rsyslog.d
+ /usr/lib/rsyslog"
diff --git a/remote/modules/sshd/data/etc/issue.net b/remote/modules/sshd/data/etc/issue.net
new file mode 100644
index 00000000..7dfbddb5
--- /dev/null
+++ b/remote/modules/sshd/data/etc/issue.net
@@ -0,0 +1,6 @@
+++++++++++++++++++++++++++++++++++++++
++ +
++ MiniLinux SSH Session +
++ +
+++++++++++++++++++++++++++++++++++++++
+
diff --git a/remote/modules/sshd/data/etc/ssh/ssh_host_dsa_key b/remote/modules/sshd/data/etc/ssh/ssh_host_dsa_key
new file mode 100644
index 00000000..0132fe84
--- /dev/null
+++ b/remote/modules/sshd/data/etc/ssh/ssh_host_dsa_key
@@ -0,0 +1,12 @@
+-----BEGIN DSA PRIVATE KEY-----
+MIIBugIBAAKBgQDu6vk2uFnUyKt9/In9Rtkq+2zqwd8slm90NUt6JBXyjYsIJwRp
+hxRG1sFDho3ogog5hlt+y+UuNPc5QchT/e3O71zt2XbrfK2irr4XBJILuup95AGe
+iW/gzMIUD4an8I58yYM9rXhTzvIMwri7jM6EKlCUytafVTdMICVH78Y97QIVAJ9a
+Cs8Gxy91XMoHK3zcHutQcIF3AoGAV6p2ISW0pAE+2GbeKUDvraCNXDG37JaMCjZr
+S+NB3cN/vJwjy0fPI6CB5o6GcgFhB0cxdgCb60lV8Qz76clx4ZJId8PVxeKp4vSw
+kHdSbcRlBpRbe/YJY8ja/ITkvmeiEMncTQByo1t2VXDqHbvgQsllIqbbRWl0B2yV
+WO4Uw4gCgYAFCgiy2Ncal0KhsHAJV5dP4imeyd49lONI488RO18wiODhCzGtkbvV
+pL/saDZWkm3pUhJ9J0qalIZaJGG0WO6GHiQC5CzH21GF9RgsoNjrMl3gzuZB9FxB
+4cg8UyZ2QCqXlRusOCIiZhBdIZzDkK6HlQMMtFGEGg/c9yNgxkPAzQIULLxfDTNh
+8Ouz5BhfKWJrZ0XGUsA=
+-----END DSA PRIVATE KEY-----
diff --git a/remote/modules/sshd/data/etc/ssh/ssh_host_dsa_key.pub b/remote/modules/sshd/data/etc/ssh/ssh_host_dsa_key.pub
new file mode 100644
index 00000000..97af5cb0
--- /dev/null
+++ b/remote/modules/sshd/data/etc/ssh/ssh_host_dsa_key.pub
@@ -0,0 +1 @@
+ssh-dss AAAAB3NzaC1kc3MAAACBAO7q+Ta4WdTIq338if1G2Sr7bOrB3yyWb3Q1S3okFfKNiwgnBGmHFEbWwUOGjeiCiDmGW37L5S409zlByFP97c7vXO3Zdut8raKuvhcEkgu66n3kAZ6Jb+DMwhQPhqfwjnzJgz2teFPO8gzCuLuMzoQqUJTK1p9VN0wgJUfvxj3tAAAAFQCfWgrPBscvdVzKByt83B7rUHCBdwAAAIBXqnYhJbSkAT7YZt4pQO+toI1cMbfslowKNmtL40Hdw3+8nCPLR88joIHmjoZyAWEHRzF2AJvrSVXxDPvpyXHhkkh3w9XF4qni9LCQd1JtxGUGlFt79gljyNr8hOS+Z6IQydxNAHKjW3ZVcOodu+BCyWUipttFaXQHbJVY7hTDiAAAAIAFCgiy2Ncal0KhsHAJV5dP4imeyd49lONI488RO18wiODhCzGtkbvVpL/saDZWkm3pUhJ9J0qalIZaJGG0WO6GHiQC5CzH21GF9RgsoNjrMl3gzuZB9FxB4cg8UyZ2QCqXlRusOCIiZhBdIZzDkK6HlQMMtFGEGg/c9yNgxkPAzQ== root@stp
diff --git a/remote/modules/sshd/data/etc/ssh/ssh_host_ecdsa_key b/remote/modules/sshd/data/etc/ssh/ssh_host_ecdsa_key
new file mode 100644
index 00000000..1fea2717
--- /dev/null
+++ b/remote/modules/sshd/data/etc/ssh/ssh_host_ecdsa_key
@@ -0,0 +1,6 @@
+-----BEGIN EC PRIVATE KEY-----
+MIGkAgEBBDDwyXBE0s5I7Cci/by2EInEyHyIvfC6IB5U8XF5eZUDlVMxkgBYK0sm
+r3Lyuy4XR3CgBwYFK4EEACKhZANiAATwyn0SyUKavp9CfPiv9IRSu8ICK1HekDMf
+lB4AIOObT1CMEROVfwh6ur1w980426YSZW+j+bQN5RQVDF7njcsD0eiSeJj8HVrR
+3PDpreZJMZVV2mLNYZxuE0kx9ILK12I=
+-----END EC PRIVATE KEY-----
diff --git a/remote/modules/sshd/data/etc/ssh/ssh_host_ecdsa_key.pub b/remote/modules/sshd/data/etc/ssh/ssh_host_ecdsa_key.pub
new file mode 100644
index 00000000..0ef413ba
--- /dev/null
+++ b/remote/modules/sshd/data/etc/ssh/ssh_host_ecdsa_key.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBPDKfRLJQpq+n0J8+K/0hFK7wgIrUd6QMx+UHgAg45tPUIwRE5V/CHq6vXD3zTjbphJlb6P5tA3lFBUMXueNywPR6JJ4mPwdWtHc8Omt5kkxlVXaYs1hnG4TSTH0gsrXYg== root@stp
diff --git a/remote/modules/sshd/data/etc/ssh/ssh_host_rsa_key b/remote/modules/sshd/data/etc/ssh/ssh_host_rsa_key
new file mode 100644
index 00000000..b37b5a74
--- /dev/null
+++ b/remote/modules/sshd/data/etc/ssh/ssh_host_rsa_key
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQC4QG0lNN4NewU8nTxNr/dpF4FGRrVifIDOgTVcfJluYt3c1mfJ
+tA2/ujwJ9jUV196P7UJ4QsAlpwd6SlKlxQ/tCTF2Zi2tjNtypIuSwBysxBM0BTRr
+L/ntwET2vqdA1wRRRVDMl+l3B3YI1aJBUYqyM72v/yK/jbJiS5hZLp9TXwIDAQAB
+AoGAXEGuJPYexWM20Q3t9vxIBrAFQ9n90o2CtWPPAztEXBhW/M/CciWcyMaIb3h/
+RiurvidPpAXQTkofHWV/ko9klDLDAOTsJE+mir61izvdPHqZH13ZJyI+GUN4bQ0a
+1hV415OPsiks1jBL+J5sD1dvFZU4nOOeFbIZcmCf/Z5DIlECQQDke7DdNiiy2zls
+C1GrCbj0R85h1ZmwZ4GytVkxlik+Ids2aeskxDba5wlEUZutVyGlQuUe6Zm4r2eI
+Vq7/47VnAkEAznELdXCd6zYynGz8RYY4zMtLvu+oWePLKX/6P/egkfkloaB13Ohr
+yEd//V+cnobL9g5ed5Ggt4WF4AhcvKn/SQJBAJDO1AlfievRhVM02U3Nm6s211aq
+Sf3DnC/nP+BtizYVvxl9h8qFkT6rrvPdxQzXbDuRaiVtaD/k63k9dyw25YECQBfF
+GGarUuOUV/t+6QUwUTXzaoNPoPjIq8nZfH0FDC4Cm/yiNy/6av6ijPAlpCj0qGNq
+gCIQWIsJCsMi81qd0FECQQCfu6wSDszVseas0CAcxjP4MU5lVr6/L8//ZUn9TDJM
+WSQelziGbnbsIXq7owCVDxROJ770IqOL4OQZDw5R8Swd
+-----END RSA PRIVATE KEY-----
diff --git a/remote/modules/sshd/data/etc/ssh/ssh_host_rsa_key.pub b/remote/modules/sshd/data/etc/ssh/ssh_host_rsa_key.pub
new file mode 100644
index 00000000..e6fd0588
--- /dev/null
+++ b/remote/modules/sshd/data/etc/ssh/ssh_host_rsa_key.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC4QG0lNN4NewU8nTxNr/dpF4FGRrVifIDOgTVcfJluYt3c1mfJtA2/ujwJ9jUV196P7UJ4QsAlpwd6SlKlxQ/tCTF2Zi2tjNtypIuSwBysxBM0BTRrL/ntwET2vqdA1wRRRVDMl+l3B3YI1aJBUYqyM72v/yK/jbJiS5hZLp9TXw== root@stp
diff --git a/remote/modules/sshd/data/etc/ssh/sshd_config b/remote/modules/sshd/data/etc/ssh/sshd_config
new file mode 100644
index 00000000..da9e5e01
--- /dev/null
+++ b/remote/modules/sshd/data/etc/ssh/sshd_config
@@ -0,0 +1,87 @@
+# Package generated configuration file
+# See the sshd_config(5) manpage for details
+
+# What ports, IPs and protocols we listen for
+Port 22
+# Use these options to restrict which interfaces/protocols sshd will bind to
+#ListenAddress ::
+#ListenAddress 0.0.0.0
+Protocol 2
+# HostKeys for protocol version 2
+HostKey /etc/ssh/ssh_host_rsa_key
+HostKey /etc/ssh/ssh_host_dsa_key
+HostKey /etc/ssh/ssh_host_ecdsa_key
+#Privilege Separation is turned on for security
+UsePrivilegeSeparation yes
+
+# Lifetime and size of ephemeral version 1 server key
+KeyRegenerationInterval 3600
+ServerKeyBits 768
+
+# Logging
+SyslogFacility AUTH
+LogLevel INFO
+
+# Authentication:
+LoginGraceTime 30
+PermitRootLogin yes
+StrictModes yes
+
+RSAAuthentication yes
+PubkeyAuthentication yes
+AuthorizedKeysFile %h/.ssh/authorized_keys
+
+# Don't read the user's ~/.rhosts and ~/.shosts files
+IgnoreRhosts yes
+# For this to work you will also need host keys in /etc/ssh_known_hosts
+RhostsRSAAuthentication no
+# similar for protocol version 2
+HostbasedAuthentication no
+# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
+#IgnoreUserKnownHosts yes
+
+# To enable empty passwords, change to yes (NOT RECOMMENDED)
+PermitEmptyPasswords no
+
+# Change to yes to enable challenge-response passwords (beware issues with
+# some PAM modules and threads)
+ChallengeResponseAuthentication no
+
+# Change to no to disable tunnelled clear text passwords
+#PasswordAuthentication yes
+
+# Kerberos options
+#KerberosAuthentication no
+#KerberosGetAFSToken no
+#KerberosOrLocalPasswd yes
+#KerberosTicketCleanup yes
+
+# GSSAPI options
+#GSSAPIAuthentication no
+#GSSAPICleanupCredentials yes
+
+X11Forwarding yes
+X11DisplayOffset 10
+PrintMotd no
+PrintLastLog yes
+TCPKeepAlive yes
+#UseLogin no
+
+#MaxStartups 10:30:60
+Banner /etc/issue.net
+
+# Allow client to pass locale environment variables
+AcceptEnv LANG LC_*
+
+Subsystem sftp /usr/lib/openssh/sftp-server
+
+# Set this to 'yes' to enable PAM authentication, account processing,
+# and session processing. If this is enabled, PAM authentication will
+# be allowed through the ChallengeResponseAuthentication and
+# PasswordAuthentication. Depending on your PAM configuration,
+# PAM authentication via ChallengeResponseAuthentication may bypass
+# the setting of "PermitRootLogin without-password".
+# If you just want the PAM account and session checks to run without
+# PAM authentication, then enable this but set PasswordAuthentication
+# and ChallengeResponseAuthentication to 'no'.
+UsePAM yes
diff --git a/remote/modules/sshd/data/etc/systemd/system/sshd.service b/remote/modules/sshd/data/etc/systemd/system/sshd.service
new file mode 100644
index 00000000..fc711808
--- /dev/null
+++ b/remote/modules/sshd/data/etc/systemd/system/sshd.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=OpenSSH Daemon
+
+[Service]
+ExecStart=/usr/sbin/sshd -D
+ExecReload=/bin/kill -HUP $MAINPID
+KillMode=process
+Restart=always
diff --git a/remote/modules/sshd/sshd.build b/remote/modules/sshd/sshd.build
new file mode 100644
index 00000000..57a9e35d
--- /dev/null
+++ b/remote/modules/sshd/sshd.build
@@ -0,0 +1,19 @@
+fetch_source() {
+ :
+}
+
+build() {
+
+ BIN_LOCATION=$(which sshd)
+ [ ! -z ${BIN_LOCATION} ] && BIN_LOCATION=$(readlink -f "$BIN_LOCATION")
+ if [ ! -z ${BIN_LOCATION} -a -e ${BIN_LOCATION} ]; then
+ tarcopy "${BIN_LOCATION}" "${MODULE_BUILD_DIR}"
+ else
+ perror "'sshd' not found on the system! Please install it."
+ fi
+}
+
+post_copy() {
+ mkdir -p "${TARGET_BUILD_DIR}/var/run/sshd"
+ cp -r "${MODULE_DIR}"/data/* "${TARGET_BUILD_DIR}"
+}
diff --git a/remote/modules/sshd/sshd.conf b/remote/modules/sshd/sshd.conf
new file mode 100644
index 00000000..25793c72
--- /dev/null
+++ b/remote/modules/sshd/sshd.conf
@@ -0,0 +1,3 @@
+REQUIRED_BINARIES="sshd"
+REQUIRED_LIBRARIES=""
+REQUIRED_DIRECTORIES=""
diff --git a/remote/modules/systemd/data/etc/systemd/system/activate-swap b/remote/modules/systemd/data/etc/systemd/system/activate-swap
new file mode 100644
index 00000000..10cb42e9
--- /dev/null
+++ b/remote/modules/systemd/data/etc/systemd/system/activate-swap
@@ -0,0 +1,30 @@
+#!/bin/sh
+# Copyright (c) 2013 - OpenSLX GmbH
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your feedback to feedback@openslx.org
+#
+# General information about OpenSLX can be found under http://openslx.org
+#
+# Initialize swap for OpenSLX linux stateless clients, both for swap on local
+# disk partitions as well as compressed ramzswap or similar
+
+#############################################################################
+
+# depends on mount-disk.sh
+# depends on availability of the appropriate kernel module/functionality
+
+# try to enable compressed RAM SWAP / ZRAM
+if modprobe ${MODPRV} ramzswap 2>/dev/null && [ -f /usr/bin/rzscontrol ] ; then
+ rzscontrol /dev/ramzswap0 --init
+ swapon /dev/ramzswap0 2>/dev/null
+ #hdswap="# disk swap disabled because of enabled compressed ramswap"
+elif modprobe ${MODPRV} zram 2>/dev/null ; then
+ # assign a quarter of total mem to zram
+ echo $(( $(free -k | awk '/^Mem:/ { print $2 }') * 256 )) > /sys/block/zram0/disksize
+ mkswap /dev/zram0 2>/dev/null
+ swapon /dev/zram0 2>/dev/null
+fi
diff --git a/remote/modules/systemd/data/etc/systemd/system/analyse-disk.sh b/remote/modules/systemd/data/etc/systemd/system/analyse-disk.sh
new file mode 100644
index 00000000..0c152dbf
--- /dev/null
+++ b/remote/modules/systemd/data/etc/systemd/system/analyse-disk.sh
@@ -0,0 +1,120 @@
+#!/bin/sh
+# Copyright (c) 2013 - OpenSLX GmbH
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your feedback to feedback@openslx.org
+#
+# General information about OpenSLX can be found under http://openslx.org
+#
+# Local hard disk autoconfiguration script for OpenSLX linux stateless
+# clients, detecting swap and special partitions
+
+#############################################################################
+
+# Todo:
+# * This script should be run just once per boot!
+# * The activation of swap could/should be handled in separate script!?
+# * The mounting of /tmp could/should be done separately?
+# * Same for other partitions, use information of /etc/fstab for that?
+# * Should we just install xfs in the source system and boil down everything
+# onto that?
+
+# General formatter for the /tmp partition on a local harddisk
+diskfm () {
+local target=$1
+local mntpnt=$2
+local fs
+local path
+for fs in xfs reiserfs ext2 ; do
+ if strinfile "$fs" /proc/filesystems || modprobe ${MODPRV} $fs ; then
+ unset $found
+ for path in /sbin /bin /usr/sbin /usr/bin ; do
+ if test -x /mnt/$path/mkfs.$fs ; then
+ found=yes
+ case mkfs.$fs in
+ mkfs.xfs)
+ fopt="-f"
+ mopt="-o noexec"
+ ;;
+ mkfs.ext2)
+ fopt="-Fq"
+ mopt="-o nocheck,noexec"
+ ;;
+ mkfs.reiserfs)
+ fopt="-f"
+ mopt="-o noexec"
+ ;;
+ esac
+ mkfs.$fs $fopt $target >/dev/null 2>&1 #|| error
+ if [ -z $mntpnt ] ; then
+ umount /tmp 2>/dev/null
+ if mount -t $fs -n $mopt $target /tmp 2>/dev/null; then
+ return 0
+ else
+ mount -n -t tmpfs none /tmp
+ fi
+ else
+ mkdir -p $mntpnt
+ mount -t $fs -n -o loop $target $mntpnt 2>/dev/null
+ return 0
+ fi
+ fi
+ done
+ [ -z $found ] && continue
+ else break
+ fi
+done
+}
+
+# Check for local harddisks and appropriate partitions
+fdisk -l /dev/$hd|sed -n "/^\/dev\//p" >/etc/disk.partition
+
+# Check for standard swap partitions and make them available to the system
+for hdpartnr in $(cat /etc/disk.partition | \
+ sed -n -e "/ 82 /p"|sed -e "s/[[:space:]].*//") ; do
+ echo -e "$hdpartnr\tswap\t\tswap\t\tdefaults\t 0 0" >>/etc/fstab
+done
+
+# We use special non assigned partition type (id44) for harddisk scratch
+# space, thus no normal filesystem will be incidentally deleted or
+# corrupted
+for hdpartnr in $(cat /etc/disk.partition | \
+ sed -n -e "/ 44 /p"|sed -e "s/[[:space:]].*//") ; do
+ # check for supported filesystem and formatter
+ ( if diskfm $hdpartnr ; then
+ echo "$hdpartnr is mounted to /mnt/tmp at $(sysup)" >/tmp/tmpready
+ echo -e "$hdpartnr\t/tmp\t\tauto\t\tdefaults\t 0 0" >>/etc/fstab
+ else
+ echo "formatting failed for some reason ($(sysup))" >/tmp/tmpready
+ fi ) &
+ break
+done
+
+# Put detected linux partitions (83) into /etc/fstab with "noauto", special
+# partition 45 (persistent scratch) to /var/scratch and 46 to /var/openslx
+for partid in 83 45 46 ; do
+ for hdpartnr in $(cat /etc/disk.partition | \
+ sed -n -e "/ ${partid} /p"|sed -e "s/[[:space:]].*//") ; do
+ mkdir -p /media/${hdpartnr#/dev/*} 2>/dev/null
+ if [ ${partid} -eq 83 ] ; then
+ echo -e "$hdpartnr\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto,\
+noexec\t 0 0" >>/tmp/fstab
+ elif [ ${partid} -eq 45 ] ; then
+ #mount -t auto ${hdpartnr} /media/${hdpartnr#/dev/*}
+ #ln -sf /media/${hdpartnr#/dev/*} /var/scratch
+ echo -e "${hdpartnr}\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto\
+\t\t 0 0" >>/tmp/fstab
+ elif [ ${partid} -eq 46 ] ; then
+ # Mount a home directory to (/mnt)/var/home
+ #mount -t auto ${hdpartnr} /mnt/media/${hdpartnr#/dev/*} \n\
+ #test -d /mnt/media/${hdpartnr#/dev/*}/home && \
+ # ln -sf /media/${hdpartnr#/dev/*} /var/home
+ echo -e "${hdpartnr}\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto\
+\t\t 0 0" >>/tmp/fstab
+ fi
+ done
+done
+
diff --git a/remote/modules/systemd/data/etc/systemd/system/debug-shell.service b/remote/modules/systemd/data/etc/systemd/system/debug-shell.service
new file mode 100644
index 00000000..063d4995
--- /dev/null
+++ b/remote/modules/systemd/data/etc/systemd/system/debug-shell.service
@@ -0,0 +1,34 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Early root shell on tty9 FOR DEBUGGING ONLY
+Documentation=man:sushell(8)
+DefaultDependencies=no
+IgnoreOnIsolate=yes
+
+[Service]
+Environment=TERM=linux
+EnvironmentPath=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/openslx/sbin:/openslx/bin:/openslx/usr/sbin:/openslx/usr/bin
+ExecStart=/openslx/bin/ash
+Restart=always
+RestartSec=0
+StandardInput=tty
+TTYPath=/dev/tty9
+TTYReset=yes
+TTYVHangup=yes
+KillMode=process
+IgnoreSIGPIPE=no
+# bash ignores SIGTERM
+KillSignal=SIGHUP
+
+# Unset locale for the console getty since the console has problems
+# displaying some internationalized messages.
+Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=
+
+[Install]
+WantedBy=sysinit.target
diff --git a/remote/modules/systemd/data/etc/systemd/system/fetch-config b/remote/modules/systemd/data/etc/systemd/system/fetch-config
new file mode 100644
index 00000000..556f0f41
--- /dev/null
+++ b/remote/modules/systemd/data/etc/systemd/system/fetch-config
@@ -0,0 +1,178 @@
+#!/bin/sh
+# Copyright (c) 2013 - OpenSLX GmbH
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your feedback to feedback@openslx.org
+#
+# General information about OpenSLX can be found under http://openslx.org
+#
+# Fetch configuration from server ...
+
+#############################################################################
+
+# Depends on configured networking, provides configuration
+
+
+# Todo: rewrite for next-gen system - principle would be the same ...
+
+# Function for retrieving configuration file (machine-setup) via tftp from a
+# predefined server or given source (file=tftp-server:/path via kernel
+# command line)
+unpack () {
+# $1 is config file name to get, $2 IP of server to get file from
+local dst=$1
+if [ -s $dst ] ; then
+ # fixme: handle different types of packaging (gzip/bzip2)??
+ if ! tar -xpzf $dst 2> /tmp/ConfTGZ-tar-error ; then
+ cat /tmp/ConfTGZ-tar-error
+ error "$unpack_ConfTGZ" nonfatal
+ rm /tmp/ConfTGZ-tar-error
+ fi
+ [ "$DEBUGLEVEL" -le 2 -o "$DEBUGLEVEL" -eq 8 ] && rm $dst
+ return 0
+else
+ return 1
+fi
+}
+
+# tftp wrapper
+# usage tftp_get <path> <tftpdserver> [count]
+# count is optional - default is 3 - use -1 for indefinit
+tftp_get () {
+ local file="$1"
+ local file_server="$2"
+ local download_successful=0
+ local countdown="$3"
+
+ if [ -z "$1" -o -z "$2" ]; then
+ [ $DEBUGLEVEL -ge 1 ] && \
+ echo "[tftp_get] Usage: tftp_get <path> <server> [count]"
+ return 1;
+ fi
+
+ [ "$countdown" = "" ] && countdown=3
+
+ until [ $download_successful -eq 1 ]
+ do
+ if [ "$countdown" = "0" ]; then
+ [ $DEBUGLEVEL -ge 1 ] && \
+ echo "[tftp_get] download of \"$file\" from \"$file_server\" ... failed"
+ return 0;
+ fi
+ tftp -g -r "/$file" -l /tmp/$(basename $file) $file_server
+ [ -s /tmp/$(basename $file) ] && download_successful=1
+ countdown=$(expr $countdown - 1)
+ usleep 200000
+ done
+ [ $DEBUGLEVEL -ge 1 ] && \
+ echo "[tftp_get] download of \"$file\" from \"$file_server\" ... successful"
+ return 0;
+}
+
+
+# wget wrapper
+# usage wget_get <path> <ftp/httpserver> [count]
+# count is optional - default is 3 - use -1 for indefinit
+wget_get () {
+ local file="$1"
+ local file_server="$2"
+ local download_successful=0
+ local countdown="$3"
+
+ if [ -z "$1" -o -z "$2" ]; then
+ [ $DEBUGLEVEL -ge 1 ] && \
+ echo "[wget_get] Usage: wget_get <path> <server> [count]"
+ return 1;
+ fi
+
+ [ "$countdown" = "" ] && countdown=3
+
+ until [ $download_successful -eq 1 ]
+ do
+ if [ "$countdown" = "0" ]; then
+ [ $DEBUGLEVEL -ge 1 ] && \
+ echo "[wget_get] download of \"$file\" from \"$file_server\" ... failed"
+ return 0;
+ fi
+ wget -q $file_server$file -O /tmp/$(basename $file)
+ [ -s /tmp/$(basename $file) ] && download_successful=1
+ countdown=$(expr $countdown - 1)
+ usleep 200000
+ done
+ [ $DEBUGLEVEL -ge 1 ] && \
+ echo "[wget_get] download of \"$file\" from \"$file_server\" ... successful"
+ return 0;
+}
+
+
+fileget () {
+# normally tftp would be used, alternatively use wget for ftp or http
+# if local device file is specified - mount and unmount after copying
+local cfgfile
+[ "x$fileprot" = "x" ] && fileprot=tftp
+if [ "x$filepath" != "x" ] ; then
+ cfgfile=${filepath}
+ [ "x$fileserv" = "x" ] && fileserv=$(checkip ${serverip})
+ # wait for dns if "fileserv" is a name and not lbd device
+ [ "$fileprot" != "lbd" ] && \
+ echo ${fileserv} | grep -qi [a-z]
+ [ $DEBUGLEVEL -ge 1 ] && echo "fileget - fileprot:$fileprot, filepath:\
+$filepath, fileserv:$fileserv" >>$LOGFILE
+ case "$fileprot" in
+ ftp|http)
+ wget_get $cfgfile $fileprot://$fileserv \
+ && { unpack /tmp/$(basename $cfgfile) && break; } 2>>$LOGFILE
+ ;;
+ lbd)
+ local ldev=$fileserv
+ echo "Waiting for configuration file ${cfgfile} ...."
+ [ $DEBUGLEVEL -ge 1 ] && echo "fileget - fileprot:$fileprot, filepath:\
+$filepath, fileserv:$fileserv" >>$LOGFILE
+ waitfor /mnt/${cfgfile} 10000
+ if [ -f /mnt/${cfgfile} ]; then
+ unpack /mnt/$cfgfile
+ else
+ error "$init_errlfg"
+ fi
+ ;;
+ *)
+ tftp_get $cfgfile $fileserv \
+ && unpack /tmp/$(basename $cfgfile) 2>>$LOGFILE
+ ;;
+ esac
+else
+ # predefined value for OpenSLX environment; it is expected that this
+ # directory is just below the tftpboot (path to which the daemon is
+ # restricted to)
+ filepath="client-config"
+ [ "x$fileserv" = "x" ] && fileserv=$(checkip ${serverip})
+ [ $DEBUGLEVEL -ge 1 ] && echo "fileget - fileprot:$fileprot, filepath:\
+$filepath, fileserv:$fileserv" >>$LOGFILE
+ # try to get configuration files successively; start with distro client
+ # and try last distro default ...
+ mac=$(echo $macaddr|sed "s/:/-/g")
+ for cfgfile in ${filepath}/${SYSTEM_NAME}/01-$mac.tgz \
+ ${filepath}/${SYSTEM_NAME}/default.tgz ; do
+ case "$fileprot" in
+ ftp|http)
+ wget $fileprot://$fileserv/$cfgfile -O /tmp/$(basename $cfgfile) \
+ 2>>$LOGFILE && { unpack /tmp/$(basename $cfgfile) && break; }
+ ;;
+ tftp)
+ tftp_get $cfgfile $fileserv \
+ 2>>$LOGFILE && { unpack /tmp/$(basename $cfgfile) && break; }
+ ;;
+ esac
+ done
+ echo -e "\n## Configuration via fileget from ${fileprot}://${fileserv}/\
+${cfgfile}\n# Hierarchy is distro client and as last distro/default" \
+ >>/tmp/confviafile
+fi
+cat /initramfs/machine-setup >>/tmp/confviafile 2>/dev/null || \
+ error "$nomachsetup"
+echo "fileget via $fileprot from $fileserv/$cfgfile finished" >/tmp/file-done
+[ $DEBUGLEVEL -ge 1 ] && echo "fileget from $cfgfile finished" >>$LOGFILE
+}
diff --git a/remote/modules/systemd/data/etc/systemd/system/getty.target.wants/load-german-keymap.service b/remote/modules/systemd/data/etc/systemd/system/getty.target.wants/load-german-keymap.service
new file mode 120000
index 00000000..d329f45a
--- /dev/null
+++ b/remote/modules/systemd/data/etc/systemd/system/getty.target.wants/load-german-keymap.service
@@ -0,0 +1 @@
+../load-german-keymap.service \ No newline at end of file
diff --git a/remote/modules/systemd/data/etc/systemd/system/ip-dns-conf b/remote/modules/systemd/data/etc/systemd/system/ip-dns-conf
new file mode 100644
index 00000000..f14ecd88
--- /dev/null
+++ b/remote/modules/systemd/data/etc/systemd/system/ip-dns-conf
@@ -0,0 +1,86 @@
+#!/bin/sh
+# Copyright (c) 2013 - OpenSLX GmbH
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your feedback to feedback@openslx.org
+#
+# General information about OpenSLX can be found under http://openslx.org
+#
+# Set IP and DNS configuration ...
+
+#############################################################################
+
+# Depends on running network interface, provides IP and DNS configuration
+
+# Dns and ip configuration, hostname of the machine --> to be merged with udhcpc.default.script!!
+echo "$host_name" >/proc/sys/kernel/hostname
+echo -e "# /etc/hosts - file generated by $0 during OpenSLX stage3\
+\n#\n# IP-Address Full-Qualified-Hostname Short-Hostname\n#\n\
+127.0.0.1\tlocalhost\n::1\t\tlocalhost ipv6-localhost ipv6-loopback\n\
+fe00::0\t\tipv6-localnet\nff00::0\t\tipv6-mcastprefix\nff02::1\
+\t\tipv6-allnodes\nff02::2\t\tipv6-allrouters\nff02::3\t\t\
+ipv6-allhosts\n" >/etc/hosts
+if [ -n "${domain_name}" ]; then
+ echo -en "${clientip}\t" >>/etc/hosts
+ for name in ${domain_name}; do
+ echo -en "${host_name}.${name} " >>/etc/hosts
+ done
+ echo -e "${host_name}" >>/etc/hosts
+else
+ echo -e "${clientip}\t${host_name}" >>/etc/hosts
+fi
+# set up domainname and resolving
+#rm -rf /etc/resolv.conf
+
+out=/etc/resolv.conf
+echo -e "# /etc/resolv.conf - file generated by\n#\t$0:\n\
+#\t${date}\n#options timeout:1 attempts:1 rotate" > $out
+
+[ "x${domain_name}" != "x" ] && echo -e "domain ${domain_name}" >> $out
+[ "x${domain_search}" != "x" ] && echo -e "search ${domain_search}" >> $out
+# fallback
+[ "x${domain_search}" == "x" ] && [ "x${domain_name}" != "x" ] && \
+ echo -e "search ${domain_name}" >> $out
+
+[ -n "${domain_name_servers}" ] && {
+ for name in ${domain_name_servers}; do
+ echo nameserver ${name} >> $out;
+ done; }
+
+# Create hostname file
+[ -n ${host_name} ] && [ -n ${domain_name} ] && \
+ echo "${host_name}.${domain_name}" > /etc/hostname
+
+
+# Set greeting and add information on booted system
+len=$(expr length ${SLXVERSION}${SYSTEM_NAME})
+if [ $len -le 28 ] ; then
+ vdstr="Stateless Workstation (V${SLXVERSION}/${SYSTEM_NAME})"
+ smax=28
+else
+ vdstr="V${SLXVERSION}/${SYSTEM_NAME}"
+ smax=52
+fi
+while [ $len -le $smax ] ; do
+ vdstr="$vdstr "
+ len=$(($len + 1))
+done
+len=$(expr length ${host_name})
+while [ $len -le 30 ] ; do
+ space="$space "
+ len=$(($len + 1))
+done
+echo "
+ WELCOME TO $space \n (\l)
+ _____ ______ ______ __ __ _______ __ __ __
+ / _ | _ | ___| | | | | ____| | | | | |
+ | | | | |_| | |_ | | | | |___ | | / /
+ | | | | ___/| _| | | ____ | | | |
+ | |_| | | | |___| | | | ____| | |___ / /
+ _____/|__| |______|__| |__| |_______|______|__| |__|
+
+ $vdstr (c) <OpenSLX.ORG>
+" >/etc/issue
diff --git a/remote/modules/systemd/data/etc/systemd/system/load-german-keymap.service b/remote/modules/systemd/data/etc/systemd/system/load-german-keymap.service
new file mode 100644
index 00000000..74753259
--- /dev/null
+++ b/remote/modules/systemd/data/etc/systemd/system/load-german-keymap.service
@@ -0,0 +1,5 @@
+[Unit]
+Description=Setup german keyboard layout
+
+[Service]
+ExecStart=/bin/bash -c 'exec /openslx/sbin/loadkmap < /etc/keymaps/de_DE'
diff --git a/remote/modules/systemd/data/etc/systemd/system/network-interface@.service b/remote/modules/systemd/data/etc/systemd/system/network-interface@.service
new file mode 100644
index 00000000..137b3af6
--- /dev/null
+++ b/remote/modules/systemd/data/etc/systemd/system/network-interface@.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Brings interface %i up
+Wants=udhcpc@%i.service sshd.service
+Before=udhcpc@%i.service
+
+[Service]
+Type=simple
+ExecStart=/openslx/bin/ip link set dev %I up
diff --git a/remote/modules/systemd/data/etc/systemd/system/nfs-mount.service b/remote/modules/systemd/data/etc/systemd/system/nfs-mount.service
new file mode 100644
index 00000000..727ff2ed
--- /dev/null
+++ b/remote/modules/systemd/data/etc/systemd/system/nfs-mount.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=Mount NFS Share [TEST]
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/bin/mount -t nfs -o ro,async,nolock 132.230.4.6:/srv/openslx/export/nfs/ubuntu-12.04-test /openslx/mnt
diff --git a/remote/modules/systemd/data/etc/systemd/system/sysinit.target.wants/debug-shell.service b/remote/modules/systemd/data/etc/systemd/system/sysinit.target.wants/debug-shell.service
new file mode 120000
index 00000000..699b56ac
--- /dev/null
+++ b/remote/modules/systemd/data/etc/systemd/system/sysinit.target.wants/debug-shell.service
@@ -0,0 +1 @@
+../debug-shell.service \ No newline at end of file
diff --git a/remote/modules/systemd/data/etc/systemd/system/udhcpc@.service b/remote/modules/systemd/data/etc/systemd/system/udhcpc@.service
new file mode 100644
index 00000000..e7d4d170
--- /dev/null
+++ b/remote/modules/systemd/data/etc/systemd/system/udhcpc@.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=DHCP Client
+
+[Service]
+Type=simple
+ExecStart=/openslx/sbin/udhcpc -O domain -O nissrv -O nisdomain -t 8 -s /etc/udhcpc.openslx.script -i %I
+
+[Install]
+WantedBy=multi-user.target
diff --git a/remote/modules/systemd/data/usr/lib/udev/rules.d/99-systemd.rules b/remote/modules/systemd/data/usr/lib/udev/rules.d/99-systemd.rules
new file mode 100644
index 00000000..387a5754
--- /dev/null
+++ b/remote/modules/systemd/data/usr/lib/udev/rules.d/99-systemd.rules
@@ -0,0 +1,55 @@
+# This file is part of systemd.
+#
+# systemd 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 2 of the License, or
+# (at your option) any later version.
+
+ACTION=="remove", GOTO="systemd_end"
+
+SUBSYSTEM=="tty", KERNEL=="tty[0-9]|tty1[0-2]", TAG+="systemd"
+SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*", TAG+="systemd"
+
+KERNEL=="vport*", TAG+="systemd"
+
+SUBSYSTEM=="block", KERNEL!="ram*|loop*", TAG+="systemd"
+SUBSYSTEM=="block", KERNEL!="ram*|loop*", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0"
+
+# Ignore encrypted devices with no identified superblock on it, since
+# we are probably still calling mke2fs or mkswap on it.
+
+SUBSYSTEM=="block", KERNEL!="ram*|loop*", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_TABLE_TYPE}=="", ENV{ID_FS_USAGE}=="", ENV{SYSTEMD_READY}="0"
+
+# We need a hardware independent way to identify network devices. We
+# use the /sys/subsystem path for this. Current vanilla kernels don't
+# actually support that hierarchy right now, however upcoming kernels
+# will. HAL and udev internally support /sys/subsystem already, hence
+# it should be safe to use this here, too. This is mostly just an
+# identification string for systemd, so whether the path actually is
+# accessible or not does not matter as long as it is unique and in the
+# filesystem namespace.
+#
+# http://git.kernel.org/?p=linux/hotplug/udev.git;a=blob;f=libudev/libudev-enumerate.c;h=da831449dcaf5e936a14409e8e68ab12d30a98e2;hb=HEAD#l742
+
+SUBSYSTEM=="net", KERNEL!="lo", TAG+="systemd", ENV{SYSTEMD_ALIAS}="/sys/subsystem/net/devices/$name", ENV{SYSTEMD_WANTS}="network-interface@$name.service"
+SUBSYSTEM=="bluetooth", TAG+="systemd", ENV{SYSTEMD_ALIAS}="/sys/subsystem/bluetooth/devices/%k"
+
+SUBSYSTEM=="bluetooth", TAG+="systemd", ENV{SYSTEMD_WANTS}="bluetooth.target"
+ENV{ID_SMARTCARD_READER}=="*?", TAG+="systemd", ENV{SYSTEMD_WANTS}="smartcard.target"
+SUBSYSTEM=="sound", KERNEL=="card*", TAG+="systemd", ENV{SYSTEMD_WANTS}="sound.target"
+
+SUBSYSTEM=="printer", TAG+="systemd", ENV{SYSTEMD_WANTS}="printer.target"
+SUBSYSTEM=="usb", KERNEL=="lp*", TAG+="systemd", ENV{SYSTEMD_WANTS}="printer.target"
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0701??:*", TAG+="systemd", ENV{SYSTEMD_WANTS}="printer.target"
+
+# Apply sysctl variables to network devices (and only to those) as they appear.
+
+SUBSYSTEM=="net", KERNEL!="lo", RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/proc/sys/net/ipv4/conf/$name --prefix=/proc/sys/net/ipv4/neigh/$name --prefix=/proc/sys/net/ipv6/conf/$name --prefix=/proc/sys/net/ipv6/neigh/$name"
+
+# Asynchronously mount file systems implemented by these modules as
+# soon as they are loaded.
+
+SUBSYSTEM=="module", KERNEL=="fuse", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="sys-fs-fuse-connections.mount"
+SUBSYSTEM=="module", KERNEL=="configfs", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="sys-kernel-config.mount"
+
+LABEL="systemd_end"
diff --git a/remote/modules/systemd/systemd.build b/remote/modules/systemd/systemd.build
new file mode 100644
index 00000000..450e743b
--- /dev/null
+++ b/remote/modules/systemd/systemd.build
@@ -0,0 +1,50 @@
+#tool/distro specific functions for fetching, building and installing dependencies
+
+fetch_source () {
+ if [ ! -e .fetched_source ]; then
+ download_untar "$URL" "src/"
+ local LIBKMOD_VERSION="kmod-12"
+ download_untar "http://www.kernel.org/pub/linux/utils/kernel/kmod/${LIBKMOD_VERSION}.tar.gz" "src/"
+ touch .fetched_source
+ fi
+}
+
+build () {
+ if [ ! -e .built ]; then
+ #build libkmod
+ cd "src/$LIBKMOD_VERSION/"
+ ./configure
+ make -j5
+ make install
+ cd -
+
+ #build systemd
+ cd "src/$VERSION/"
+ pinfo "calling configure"
+ ./configure --disable-manpages --enable-split-usr --sysconfdir="/etc" --enable-gtk-doc-html=no || perror "configure failed."
+ pinfo "calling make"
+ make -j5 || perror "make failed."
+ pinfo "calling make install"
+ DESTDIR="${MODULE_BUILD_DIR}" make install || perror "make install failed."
+ cd -
+ touch .built
+ fi
+}
+
+post_copy() {
+ # copy static data files
+ cp -r "${MODULE_DIR}"/data/* "${TARGET_BUILD_DIR}" || perror "copying data files failed."
+
+ # dont clear systemd log at startup
+ sed -i.bak "s/TTYVTDisallocate=yes/TTYVTDisallocate=no/g" "${TARGET_BUILD_DIR}/usr/lib/systemd/system/getty@.service"
+
+ #old agetty version doesn't support --noclear option in getty service
+ if [ "x$(dpkg -s util-linux | grep Version: | cut -d' ' -f2)" == "x2.19.1-2ubuntu3" ];
+ then
+ sed -i.bak "s/ExecStart=-\/sbin\/agetty --noclear %I 38400 linux/ExecStart=-\/sbin\/agetty %I 38400 linux/g" "${TARGET_BUILD_DIR}/usr/lib/systemd/system/getty@.service"
+ fi
+
+ # add nfs to modules-load list
+ echo "nfs" > "${TARGET_BUILD_DIR}/etc/modules-load.d/nfs.conf"
+}
+
diff --git a/remote/modules/systemd/systemd.conf b/remote/modules/systemd/systemd.conf
new file mode 100644
index 00000000..c5e72aeb
--- /dev/null
+++ b/remote/modules/systemd/systemd.conf
@@ -0,0 +1,82 @@
+VERSION=systemd-197
+URL=http://www.freedesktop.org/software/systemd/${VERSION}.tar.xz
+REQUIRED_DEPENDENCIES=" intltool
+ gperf
+ dbus
+ pkg-config
+ libcap-dev
+ libudev-dev
+ libdbus-1-dev"
+REQUIRED_BINARIES=" hostnamectl
+ journalctl
+ localectl
+ loginctl
+ systemctl
+ systemd-analyze
+ systemd-ask-password
+ systemd-cat
+ systemd-cgls
+ systemd-cgtop
+ systemd-coredumpctl
+ systemd-delta
+ systemd-detect-virt
+ systemd-inhibit
+ systemd-machine-id-setup
+ systemd-notify
+ systemd-nspawn
+ systemd-stdio-bridge
+ systemd-tmpfiles
+ systemd-tty-ask-password-agent
+ timedatectl
+ udevadm
+ systemd
+ systemd-ac-power
+ systemd-binfmt
+ systemd-bootchart
+ systemd-cgroups-agent
+ systemd-coredump
+ systemd-fsck
+ systemd-hostnamed
+ systemd-initctl
+ systemd-journald
+ systemd-localed
+ systemd-logind
+ systemd-modules-load
+ systemd-multi-seat-x
+ systemd-quotacheck
+ systemd-random-seed
+ systemd-readahead
+ systemd-remount-fs
+ systemd-reply-password
+ systemd-shutdown
+ systemd-shutdownd
+ systemd-sleep
+ systemd-sysctl
+ systemd-timedated
+ systemd-timestamp
+ systemd-udevd
+ systemd-update-utmp
+ systemd-user-sessions
+ systemd-vconsole-setup
+ systemd-fstab-generator
+ systemd-getty-generator
+ systemd-rc-local-generator
+ systemd-system-update-generator
+ accelerometer
+ ata_id
+ cdrom_id
+ collect
+ keymap
+ mtd_probe
+ scsi_id
+ v4l_id"
+REQUIRED_DIRECTORIES=" /etc
+ /usr/lib
+ /usr/include
+ /usr/share/dbus-1
+ /usr/share/polkit-1
+ /usr/lib/udev/rules.d"
+REQUIRED_FILES=" /usr/bin/systemd-analyze
+ /usr/share/systemd/kbd-model-map
+ /usr/lib/udev/findkeyboards
+ /usr/lib/udev/keyboard-force-release.sh"
diff --git a/remote/modules/vmchooser/data/etc/openslx/vmchooser/vmchooser.conf b/remote/modules/vmchooser/data/etc/openslx/vmchooser/vmchooser.conf
new file mode 100644
index 00000000..3dd30ebc
--- /dev/null
+++ b/remote/modules/vmchooser/data/etc/openslx/vmchooser/vmchooser.conf
@@ -0,0 +1,4 @@
+pool=default
+theme=unifr
+pvs=0
+path=/var/lib/virt
diff --git a/remote/modules/vmchooser/data/openslx/bin/run-virt.sh b/remote/modules/vmchooser/data/openslx/bin/run-virt.sh
new file mode 100755
index 00000000..b3863a2e
--- /dev/null
+++ b/remote/modules/vmchooser/data/openslx/bin/run-virt.sh
@@ -0,0 +1,440 @@
+#!/bin/bash
+# -----------------------------------------------------------------------------
+# Copyright (c) 2007..2010 - RZ Uni FR
+# Copyright (c) 2007..2011 - OpenSLX GmbH
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your suggestions, praise, or complaints to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org/
+# -----------------------------------------------------------------------------
+# run-virt.sh
+# - This is the generic wrapper for the several virtualization solutions.
+# The idea is to setup a set of variables used by at least two different
+# tools and then include the specific plugin which configures the speci-
+# fied virtualization tool.
+################################################################################
+
+. /etc/opt/openslx/openslx.conf
+
+################################################################################
+### Define default dirs / get configs
+################################################################################
+
+PLUGINCONFROOT=${OPENSLX_DEFAULT_CONFDIR}/plugins
+PLUGINCONFDIR=${PLUGINCONFROOT}/vmchooser
+# include general configuration from vmchooser
+[ -f ${PLUGINCONFROOT}/vmchooser/vmchooser.conf ] && \
+ . ${PLUGINCONFROOT}/vmchooser/vmchooser.conf
+# load general virtualization information
+[ -f ${PLUGINCONFROOT}/virtualization/virtualization.conf ] && \
+ . ${PLUGINCONFROOT}/virtualization/virtualization.conf
+
+################################################################################
+### Functions used throughout the script
+################################################################################
+
+# function to write to stdout and logfile
+LOGFILE=${OPENSLX_DEFAULT_LOGDIR}/run-virt.${USER}.$$.log
+writelog () {
+ # write to stdout
+ echo -e "$1"
+ # log into file
+ echo -e "$1" >> ${LOGFILE}
+}
+
+# remove config dirs when exit
+cleanexit () {
+ if echo "${RMDIRS}" 2>/dev/null | grep -q ${xmlvirt}; then
+ writelog "${xmlvirt} exited. Cleanning up... \c"
+ rm -rf ${RMDIRS} >/dev/null 2>&1
+ writelog "done"
+ fi
+
+ exit "$1"
+}
+
+# check for important files used
+filecheck ()
+{
+ filecheck=$(LANG=us ls -lh ${diskfile} 2>&1)
+ writelog "Filecheck:\n${filecheck}\n"
+ noimage=$(echo ${filecheck} | grep -i "no such file or directory" | wc -l)
+ rightsfile=${diskfile}
+
+ # check if link
+ if [ -L "${diskfile}" ]; then
+ # take link target
+ rightsfile=$(ls -lh ${diskfile} 2>&1 | awk -F '-> *' '{print $2}')
+ rightsfile=${vmdir}/${rightsfile}
+ filecheck=$(LANG=us ls -lh ${rightsfile} 2>&1)
+ fi
+
+ # does file exist
+ if [ "${noimage}" -ge "1" ]; then
+ writelog "Virtual Machine Image Problem:\c "
+ writelog "\tThe image you've specified doesn't exist."
+ writelog "Filecheck says:\c "
+ writelog "\t\t${diskfile}:\n\t\t\tNo such file or directory"
+ writelog "Hint:\c "
+ writelog "\t\t\tCompare spelling of the image with your options.\n"
+ exit 1
+ fi
+
+ # readable by calling user
+ if ! [ -r "${diskfile}" >/dev/null 2>&1 \
+ -o -r "${diskfile}" >/dev/null 2>&1 ]; then
+ writelog "Vmware Image Problem:\c "
+ writelog "\tThe image you've specified has wrong rights."
+ writelog "Filecheck says:\t\t$(echo ${filecheck} \
+ | awk '{print $1" "$3" "$4}') ${rightsfile}"
+ writelog "Hint:\t\t\tChange rights with: chmod a+r ${rightsfile}\n"
+ exit 1
+ fi
+
+ # writable (for persistent-mode)?
+ if ! [ -w "${diskfile}" >/dev/null 2>&1 \
+ -o -w "${diskfile}" >/dev/null 2>&1 ] \
+ && [ "${np}" = "independent-persistent" ]; then
+ writelog "Vmware Image Problem:\c "
+ writelog "\tThe image you have specified has wrong rights."
+ writelog "Filecheck says:\t\t$(echo ${filecheck} \
+ | awk '{print $1" "$3" "$4}') ${rightsfile}"
+ writelog "Hint:\t\t\tUse nonpersistent-mode or change rights to rw\n"
+ exit 1
+ fi
+}
+
+################################################################################
+### Get XML file and dir
+################################################################################
+
+# absolute or relative path?
+xmlfile=$1
+if ls ${xmlfile} 2>/dev/null | grep '/' >/dev/null 2>&1; then
+ xmlpath=$(dirname ${xmlfile})
+ xmlfile=$(basename ${xmlfile})
+else
+ xmlpath=${vmchooser_xmlpath}
+fi
+# full path
+xmlfile="${xmlpath}/${xmlfile%.xml}.xml"
+
+################################################################################
+### Sanity checks
+################################################################################
+
+# test if the xml file is valid
+if ! [ -r "${xmlfile}" ]; then
+ writelog "${xmlfile} not a readable XML file!"
+ exit 1
+fi
+
+# test if XML file
+if ! grep '<?xml' "${xmlfile}" >/dev/null 2>&1; then
+ writelog \
+ "Submitted configuration file ${xmlfile} seems to have wrong XML format"
+ exit 1
+fi
+
+# check for running in graphical environment otherwise no much use here
+[ -z "$DISPLAY" ] && echo -e "\n\tStart only within a graphical desktop!\n" \
+ && exit 1
+
+################################################################################
+### Logo for console
+################################################################################
+
+cat <<EOL
+ __ __
+ .----.--.--.-----.___.--.--.|__|.----.| |_
+ | _| | | |___| | || || _|| _|
+ |__| |_____|__|__| \___/ |__||__| |____|
+ OpenSLX virtual machine environment preparation script ...
+
+EOL
+
+################################################################################
+### Read needed variables from XML file
+################################################################################
+
+writelog "Starting configuration..."
+writelog "\tLogfile:\t\t${LOGFILE}"
+writelog "\t/tmp info:\t\t$(df -h | grep " /tmp$" | awk '{print $2}') \c"
+writelog "$(grep "/tmp " /proc/mounts | awk '{print $1" "$2" "$3" "$4}')"
+writelog "\tVM XML dir:\t\t$(dirname ${xmlfile})"
+writelog "\tXML file:\t\t${xmlfile}"
+writelog "VM config:"
+
+# Name of the virt image
+imgname=$(grep -io '<image_name param=.*"' ${xmlfile} \
+ | sed -e "s/&.*;/; /g" | awk -F '"' '{ print $2 }')
+
+# Imagename /w full path
+if echo ${imgname} 2>/dev/null | grep -q '^/' >/dev/null 2>&1; then
+ imgpath=$(dirname ${imgname})
+ imgname=$(basename ${imgname})
+ vmpath=${imgpath}/${imgname}
+# If old vmchooser binary stuff
+# We do not need folder name as it is already included by vmchooser
+elif echo ${xmlfile} 2>/dev/null | grep -q '^/tmp/' >/dev/null 2>&1; then
+ vmpath=$imgname
+ imgname=$(basename ${imgname})
+# Else use same path as xml
+else
+ imgpath=${xmlpath}
+ vmpath=${imgpath}/${imgname}
+fi
+
+# Check if virtual machine container file exists
+if ! [ -e "${vmpath}" ]; then
+ writelog "Virtual machine image ${vmpath} not found!"
+ exit 1
+fi
+
+# Name of the virt machine, sed because of Windows formatting
+vm_name=$(grep -o 'short_description param=.*"' ${xmlfile} \
+ | sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}')
+# If ${vm_name} not defined use ${xmlfile}
+vm_name=${vm_name:-${xmlfile%.xml}}
+
+# Define vm_shortname since vm_name can be very long
+vm_shortname=$(basename ${xmlfile%.xml} | sed -e "s, ,-,g")
+
+# vm_name = displayname, define for old scripts
+displayname=${vm_name}
+
+# image is for the following virtual machine
+xmlvirt=$(grep -o 'virtualmachine param=.*"' ${xmlfile} \
+ | sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}')
+
+# choose the proper virtualization/emulator plugin
+[ "x${xmlvirt}" != "x" -a "x${xmlvirt}" != "xqemukvm" -a \
+ "x${xmlvirt}" != "xvirtualbox" -a "x${xmlvirt}" != "xvmware" ] && \
+ xmlvirt="emufe"
+
+# make a guess from the filename extension if ${xmlvirt} is empty
+# (not set within the XML file)
+# TODO: implement possibility to submit own configuration files
+if [ -z "${xmlvirt}" ] && [ -n "${additional_config}" ]; then
+ writelog "No virtual machine parameter defined in ${xmlfile}"
+ writelog "Trying to guess VM...\c"
+ case "$(cat ${additional_config} | tr \"[A-Z]\" \"[a-z]\")" in
+ *config.version*|*virtualhw.version*|*independent-nonpersistent*|*vmdk*)
+ xmlvirt="vmware"
+ ;;
+ *innotek*|*virtualbox*)
+ xmlvirt="virtualbox"
+ ;;
+ *qemu*|*kvm*)
+ xmlvirt="qemukvm"
+ ;;
+ *)
+ xmlvirt="none"
+ ;;
+ esac
+elif [ -z "${xmlvirt}" ]; then
+ case "$(echo ${imgname##*.} | tr \"[A-Z]\" \"[a-z]\")" in
+ vmdk)
+ xmlvirt="vmware"
+ ;;
+ vbox|vdi)
+ xmlvirt="virtualbox"
+ ;;
+ qcow*)
+ xmlvirt="qemukvm"
+ ;;
+ *)
+ xmlvirt="emufe"
+ ;;
+ esac
+ writelog "result:\t${xmlvirt}"
+fi
+
+# Definition of the client system
+vmostype=$(grep -io '<os param=.*"' ${xmlfile} | awk -F '"' '{ print $2 }' |\
+ tr "[A-Z]" "[a-z]")
+
+# Definition of the networking the client system is connected to
+network_kind=$(grep -io '<network param=.*"' ${xmlfile} \
+ | awk -F '"' '{ print $2 }' | tr "[A-Z]" "[a-z]")
+network_card=$(grep -io '<netcard param=.*"' ${xmlfile} \
+ | awk -F '"' '{ print $2 }'| tr "[A-Z]" "[a-z]")
+
+# Set redirects to 0, see vmgrid if you want to define some
+redirects=0
+
+# Serial/parallel ports defined (e.g. "ttyS0" or "autodetect")
+serial=$(grep -io '<serialport param=.*"' ${xmlfile} \
+ | awk -F '"' '{ print $2 }')
+parallel=$(grep -io '<parport param=.*"' ${xmlfile} \
+ | awk -F '"' '{ print $2 }')
+
+writelog "\tVirtualization:\t\t$xmlvirt"
+writelog "\tVM name:\t\t$vm_name"
+writelog "\tVM short name:\t\t$vm_shortname"
+
+###############################################################################
+### Declaration of default variables
+###############################################################################
+
+# VM-ID static (00)
+VM_ID="00"
+# take last two digits of current pid...
+VM_ID=$(expr substr $$ $(expr ${#$} - 1) 2)
+
+# Make sure cpu_cores is not empty
+cpu_cores=${cpu_cores:-"1"}
+
+# Total amount of memory defined in stage 3
+# TODO: Should be dependent on the setup (if diff is written to RAM ...)
+permem=60
+if [ "x${VMCHOOSER_FORCE_HALF_MEM}" == "x1" ]; then
+ permem=30
+fi
+# Get a result which can be divided through 4
+mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4)
+if [ -n "${mainvirtmem}" ]; then
+ forcemem=$(expr ${mainvirtmem} / 4 \* 4)
+ mem=${forcemem}
+fi
+hostmem=$(expr ${totalmem} - ${mem})
+
+# Configuring ethernet mac address: first 3 bytes are fixed (00:50:56)
+# 4th byte is the VM-ID (0D)
+# last two bytes are taken from the bridge of the host
+# define one MAC per guest
+macguestpart="00:50:56:${VM_ID}"
+machostpart=$(echo ${hostmacaddr} | awk -F ":" '{print $(NF-1)":"$NF}')
+macaddr=$(echo "${macguestpart}:${machostpart}" | tr "[a-z]" "[A-Z]")
+
+# Virtual fd/cd/dvd and drive devices, floppy b: for configuration
+# if $floppy_0 from run-virt.include set then fdtest="TRUE"
+fdtest=
+fdtest=${floppy_0:+"TRUE"}
+# if $fdtest not set floppy0="FALSE", else "TRUE"
+floppy0=${fdtest:-"FALSE"}
+floppy1="TRUE"
+floppy1name="${PLUGINCONFDIR}/loopimg/fd.img"
+# if $cdrom_0 from run-virt.include set then cdtest="TRUE"
+cdtest=
+cdtest=${cdrom_0:+"TRUE"}
+# if $cdtest not set cdrom0="FALSE", else "TRUE"
+cdrom0=${cdtest:-"FALSE"}
+# if $cdrom_1 from run-virt.include set then cdtest="TRUE"
+cdtest=
+cdtest=${cdrom_1:+"TRUE"}
+# if $cdtest not set cdrom1="FALSE", else "TRUE"
+cdrom1=${cdtest:-"FALSE"}
+# IDE is expected default, test for the virtual disk image type should
+# be done while creating the runscripts ...
+ide="TRUE"
+scsi="FALSE"
+hddrv="ide"
+audio="true"
+remotedesktopport="590${VM_ID}"
+
+# Display resolution within the host system
+hostres=$(xvidtune -show 2>/dev/null| grep -ve "^$")
+xres=$(echo "${hostres}" | awk '{print $3}')
+yres=$(echo "${hostres}" | awk '{print $7}')
+
+# Resolution defined via xml parameter: fullscreen, full/X*Y/depth; windowed,
+# win/X*Y/depth
+userres=$(grep -io '<screen param=.*"' ${xmlfile} | awk -F '"' '{ print $2 }' | \
+ tr "A-Z" "a-z")
+case "${userres}" in
+ full*)
+ res=$(echo "${hostres}" | awk -F "/" '{print $2}')
+ uxres=${res%\**}
+ uyres=${#*\*}
+ userres="full"
+ ;;
+ win*)
+ res=$(echo "${hostres}" | awk -F "/" '{print $2}')
+ uxres=${res%\**}
+ uyres=${#*\*}
+ userres="win"
+ ;;
+esac
+
+
+# Enable 3D
+enable3d=$(grep -i "<enable3d param=.*" ${xmlfile} 2>/dev/null | \
+ awk -F '=' {'print $2'} | tr "[A-Z]" "[a-z]")
+
+# Add rw share
+sharepath="${HOME}"
+sharename="home"
+
+# Set hostname: using original hostname and adding string
+hostname="virt-$(hostname)"
+
+writelog "\tVM Hostname:\t\t$hostname"
+
+################################################################################
+### Setup the rest of the environment and run the configured vm
+################################################################################
+
+# Adjust sound volume
+writelog "Unmuting sound...\c "
+amixer -q sset Master 80% unmute 2>/dev/null
+amixer -q sset PCM 80% unmute 2>/dev/null
+amixer -q sset CD 80% unmute 2>/dev/null
+amixer -q sset Headphone 80% unmute 2>/dev/null
+amixer -q sset Front 80% unmute 2>/dev/null # in SUSE 11.0 it's headphone
+amixer -q sset Speaker 80% unmute 2>/dev/null # annoying built-in speaker
+writelog "finished\n"
+
+# Copy guest configuration (with added information) config.xml to be accessed
+# via virtual floppy
+# fixme -> to be changed (vmchooser adapts the file content!?)
+#TODO: wozu echo?
+#echo "Please fix the config.xml generation"
+cp ${xmlfile} ${PLUGINCONFDIR}/fd-loop/config.xml
+
+# Get all virtual machine specific stuff from the respective include file
+if [ -e ${PLUGINCONFROOT}/${xmlvirt}/run-virt.include ] ; then
+ self=${xmlvirt}
+ . ${PLUGINCONFROOT}/${xmlvirt}/run-virt.include
+ # start a windowmanager for easier handling
+ # (expect problems /w windows opening in background /w vmware without wm)
+ for dm in xfwm4 metacity openbox blackbox kwin fvwm2 ; do
+ if which $dm >/dev/null 2>&1 ; then
+ if [ "$dm" = "fvwm2" ] ; then
+ echo "EdgeScroll 0 0" > ${redodir}/fvwm
+ fvwm2 -f ${redodir}/fvwm >/dev/null 2>&1 &
+ else
+ $dm >/dev/null 2>&1 &
+ fi
+ break
+ fi
+ done
+ # Start poolvideoswitch if we find the autostarter file
+ if [ -e /etc/xdg/autostart/pvsgui.desktop ]; then
+ /usr/local/bin/pvsgui -p 2 -b >/dev/null 2>&1 &
+ fi
+ eval ${VIRTCMD} ${VIRTCMDOPTS}
+ writelog "Bye."
+
+ # Postrun for commands after virtualization finishes
+ if [ -n "${POSTRUN}" ]; then
+ eval ${POSTRUN} >/dev/null 2>&1
+ fi
+
+ cleanexit 0
+else
+ writelog "Failed because of missing ${xmlvirt} plugin."
+ cleanexit 1
+fi
+
+# Postrun for commands after virtualization finishes
+if [ -n "${POSTRUN}" ]; then
+ eval ${POSTRUN} >/dev/null 2>&1
+fi
+
+cleanexit 0
+exit 0
diff --git a/remote/modules/vmchooser/data/openslx/bin/vmchooser b/remote/modules/vmchooser/data/openslx/bin/vmchooser
new file mode 100755
index 00000000..d8ec07f9
--- /dev/null
+++ b/remote/modules/vmchooser/data/openslx/bin/vmchooser
Binary files differ
diff --git a/remote/modules/vmchooser/data/openslx/bin/xmlfilter.sh b/remote/modules/vmchooser/data/openslx/bin/xmlfilter.sh
new file mode 100755
index 00000000..ded5d114
--- /dev/null
+++ b/remote/modules/vmchooser/data/openslx/bin/xmlfilter.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+# -----------------------------------------------------------------------------
+# Copyright (c) 2007..2009 - RZ Uni FR
+# Copyright (c) 2007..2011 - OpenSLX GmbH
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your suggestions, praise, or complaints to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org/
+# -----------------------------------------------------------------------------
+# xmlfilter.sh
+# - This script is invoked by the vmchooser tool. It simply filters xml-
+# files (taking the path to these files in $1). You might modify it in any
+# way to match your needs, e.g. ask some database instead. You can re-
+# implement it in any other programming language too. You simply have to
+# return a list of proper xml files to be interpreted by the vmchooser
+# binary). Please check for vmchooser.sh too ...
+# -----------------------------------------------------------------------------
+
+# This script .
+#
+# currently:
+# - filter for slxgrp (which comes from /etc/machine-setup)
+#
+
+# include default directories
+. /etc/opt/openslx/openslx.conf
+
+if [ -f ${OPENSLX_DEFAULT_CONFDIR}/plugins/vmchooser/vmchooser.conf ]; then
+ . ${OPENSLX_DEFAULT_CONFDIR}/plugins/vmchooser/vmchooser.conf
+fi
+
+for FILE in $(find $1 -iname "*.xml"); do
+ # filter all xmls which aren't set active
+ if [ $(grep "<active param=.*true.*" ${FILE} | wc -l) -eq 1 ]; then
+ if [ -n ${vmchooser_env} ]; then
+ # filter all xmls with pool-param not equal to vmchooser::env
+ if [ $(grep "<pools param=\"${vmchooser_env}\"" ${FILE} | wc -l) -eq 1 ];\
+ then
+ echo ${FILE};
+ fi
+ else
+ # if there is no pool set, just take all available xmls
+ echo -e ${active}
+ fi
+ fi
+done
diff --git a/remote/modules/vmchooser/data/usr/share/vmchooser/themes/openslx/openslx-left.png b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/openslx/openslx-left.png
new file mode 100644
index 00000000..900dd867
--- /dev/null
+++ b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/openslx/openslx-left.png
Binary files differ
diff --git a/remote/modules/vmchooser/data/usr/share/vmchooser/themes/openslx/openslx-right.png b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/openslx/openslx-right.png
new file mode 100644
index 00000000..8ca9347b
--- /dev/null
+++ b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/openslx/openslx-right.png
Binary files differ
diff --git a/remote/modules/vmchooser/data/usr/share/vmchooser/themes/openslx/openslx.ini b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/openslx/openslx.ini
new file mode 100644
index 00000000..57a22821
--- /dev/null
+++ b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/openslx/openslx.ini
@@ -0,0 +1,4 @@
+background-color=#ffffff
+image-right=openslx-right.png
+image-left=openslx-left.png
+
diff --git a/remote/modules/vmchooser/data/usr/share/vmchooser/themes/planets/planets-left.png b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/planets/planets-left.png
new file mode 100644
index 00000000..c8736b72
--- /dev/null
+++ b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/planets/planets-left.png
Binary files differ
diff --git a/remote/modules/vmchooser/data/usr/share/vmchooser/themes/planets/planets-right.png b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/planets/planets-right.png
new file mode 100644
index 00000000..e21f0d8b
--- /dev/null
+++ b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/planets/planets-right.png
Binary files differ
diff --git a/remote/modules/vmchooser/data/usr/share/vmchooser/themes/planets/planets.ini b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/planets/planets.ini
new file mode 100644
index 00000000..d9aa17f6
--- /dev/null
+++ b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/planets/planets.ini
@@ -0,0 +1,4 @@
+background-color=#ffffff
+image-right=planets-right.png
+image-left=planets-left.png
+
diff --git a/remote/modules/vmchooser/data/usr/share/vmchooser/themes/unifr/title_l.png b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/unifr/title_l.png
new file mode 100644
index 00000000..e602ccd1
--- /dev/null
+++ b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/unifr/title_l.png
Binary files differ
diff --git a/remote/modules/vmchooser/data/usr/share/vmchooser/themes/unifr/title_r.png b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/unifr/title_r.png
new file mode 100644
index 00000000..3edbcb0c
--- /dev/null
+++ b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/unifr/title_r.png
Binary files differ
diff --git a/remote/modules/vmchooser/data/usr/share/vmchooser/themes/unifr/unifr.ini b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/unifr/unifr.ini
new file mode 100644
index 00000000..dadcb4e1
--- /dev/null
+++ b/remote/modules/vmchooser/data/usr/share/vmchooser/themes/unifr/unifr.ini
@@ -0,0 +1,4 @@
+background-color=#003592
+image-right=title_r.png
+image-left=title_l.png
+
diff --git a/remote/modules/vmchooser/data/vmchooser/default.desktop b/remote/modules/vmchooser/data/vmchooser/default.desktop
new file mode 100755
index 00000000..91540228
--- /dev/null
+++ b/remote/modules/vmchooser/data/vmchooser/default.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=virtual machine chooser (default)
+Name[de]=Virtuelle Maschine auswählen
+Comment=This session starts the vm session chooser
+Comment[de]=Diese Sitzung startet das Auswahlmenü für die vorhandenen Sitzungen
+Exec=/opt/openslx/plugin-repo/vmchooser/vmchooser
+TryExec=/opt/openslx/plugin-repo/vmchooser/vmchooser
+Icon=
+Type=Application
diff --git a/remote/modules/vmchooser/data/vmchooser/mesgdisp b/remote/modules/vmchooser/data/vmchooser/mesgdisp
new file mode 100755
index 00000000..41e3721c
--- /dev/null
+++ b/remote/modules/vmchooser/data/vmchooser/mesgdisp
Binary files differ
diff --git a/remote/modules/vmchooser/data/vmchooser/printer.sh b/remote/modules/vmchooser/data/vmchooser/printer.sh
new file mode 100755
index 00000000..8f1d5ffa
--- /dev/null
+++ b/remote/modules/vmchooser/data/vmchooser/printer.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+#echo "<printer name=\"info\" path=\"//printserver/info\"> some pseudo printer </printer>"
+
+for(( i=0; $i<10; i=$i+1)); do
+ echo -e "printserver$i\tprinter$i\tPrinter Description $i"
+done
+
+echo -e "printserver.ruf.uni-freiburg.de\treal-printer-name\tSome really long printer Description"
+
diff --git a/remote/modules/vmchooser/data/vmchooser/scanner.sh b/remote/modules/vmchooser/data/vmchooser/scanner.sh
new file mode 100755
index 00000000..dcb94c68
--- /dev/null
+++ b/remote/modules/vmchooser/data/vmchooser/scanner.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+
+echo -e "scanserver\tscanner1hp\tThis is a test Scanner"
diff --git a/remote/modules/vmchooser/data/vmchooser/smb.conf b/remote/modules/vmchooser/data/vmchooser/smb.conf
new file mode 100755
index 00000000..ec757ce4
--- /dev/null
+++ b/remote/modules/vmchooser/data/vmchooser/smb.conf
@@ -0,0 +1,25 @@
+# basic samba configuration file for OpenSLX host-internal networking
+[global]
+ workgroup = OPENSLX
+ netbios name = HOMESERVER
+ security = SHARE
+ server string = Home and Print Provider
+ bind interfaces only = Yes
+ interfaces = NWIF
+ pid directory = PIDDIR
+
+[userhome]
+ comment = Home Directory of USER
+ path = /home/USER
+ create mask = 0700
+ guest ok = No
+ read only = No
+
+[scratch]
+ comment = Host System Temp Folder
+ path = /tmp
+ create mask = 0700
+ guest ok = Yes
+ read only = No
+ browseable = Yes
+
diff --git a/remote/modules/vmchooser/vmchooser.build b/remote/modules/vmchooser/vmchooser.build
new file mode 100644
index 00000000..536aa5d3
--- /dev/null
+++ b/remote/modules/vmchooser/vmchooser.build
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+fetch_source()
+{
+ [ ! -d src ] && mkdir src
+ if [ ! -e .fetched_source ]; then
+ git clone "${GIT}" src
+ touch .fetched_source
+ fi
+}
+
+build()
+{
+ if [ ! -e .built ]; then
+ cd src
+ pinfo "Running vmchooser buildscript"
+ . build.sh
+ pinfo ""
+ cd -
+ touch .built
+ fi
+}
+
+post_copy() {
+ :
+}
+
diff --git a/remote/modules/vmchooser/vmchooser.conf b/remote/modules/vmchooser/vmchooser.conf
new file mode 100644
index 00000000..ec1ceb86
--- /dev/null
+++ b/remote/modules/vmchooser/vmchooser.conf
@@ -0,0 +1,5 @@
+GIT=git://git.openslx.org/openslx/tools/vmchooser.git
+REQUIRED_DEPENDENCIES=" cmake
+ libqt4-dev"
+TARGET_DIR="openslx"
+REQUIRED_BINARIES="vmchooser"
diff --git a/remote/modules/xorg/xorg.build b/remote/modules/xorg/xorg.build
new file mode 100644
index 00000000..4adcd214
--- /dev/null
+++ b/remote/modules/xorg/xorg.build
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+fetch_source() {
+ :
+}
+
+build() {
+ COPYLIST="list_dpkg_output"
+ [ -e "$COPYLIST" ] && rm "$COPYLIST"
+
+ list_packet_files >> "$COPYLIST"
+ tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}"
+}
+
+post_copy() {
+ mkdir -p "${TARGET_BUILD_DIR}/etc/X11"
+ [ ! -e ${TARGET_BUILD_DIR}/etc/X11/X ] && ln -s /usr/bin/Xorg ${TARGET_BUILD_DIR}/etc/X11/X
+ mkdir -p "${TARGET_BUILD_DIR}/var/lib/xkb"
+ cp /var/lib/xkb/server* "${TARGET_BUILD_DIR}/var/lib/xkb/" || perror "Copying /var/lib/xkb/server* to '${TARGET_BUILD_DIR}/var/lib/xkb/' failed."
+}
+
diff --git a/remote/modules/xorg/xorg.conf b/remote/modules/xorg/xorg.conf
new file mode 100644
index 00000000..e41c25a5
--- /dev/null
+++ b/remote/modules/xorg/xorg.conf
@@ -0,0 +1,47 @@
+REQUIRED_PACKAGES=" xserver-xorg
+ xserver-xorg-core
+ libgl1-mesa-dri
+ xkb-data
+ x11-xkb-utils
+ xserver-xorg-input-evdev
+ xserver-xorg-input-mouse
+ xserver-xorg-input-vmmouse
+ xserver-xorg-video-intel
+ xserver-xorg-video-openchrome
+ xserver-xorg-video-savage
+ xserver-xorg-video-trident
+ xserver-xorg-video-ati
+ xserver-xorg-video-mach64
+ xserver-xorg-video-qxl
+ xserver-xorg-video-siliconmotion
+ xserver-xorg-video-vesa
+ xserver-xorg-video-cirrus
+ xserver-xorg-video-mga
+ xserver-xorg-video-r128
+ xserver-xorg-video-sis
+ xserver-xorg-video-vmware
+ xserver-xorg-video-fbdev
+ xserver-xorg-video-neomagic
+ xserver-xorg-video-radeon
+ xserver-xorg-video-sisusb
+ xserver-xorg-video-geode
+ xserver-xorg-video-nouveau
+ xserver-xorg-video-s3
+ xserver-xorg-video-tdfx"
+REQUIRED_BINARIES=" Xorg
+ vmwarectrl
+ gtf
+ cvt
+ X
+ xkbcomp
+ xkbvleds
+ xkbprint
+ setxkbmap
+ xkbwatch
+ xkbbell
+ xkbevd
+ vmmouse_detect"
+REQUIRED_DIRECTORIES=" /lib/udev
+ /usr/lib
+ /usr/share/X11"
+REQUIRED_FILES=""