summaryrefslogtreecommitdiffstats
path: root/core/modules/netpoint-lightdm/data
diff options
context:
space:
mode:
authorSebastian2016-04-25 12:01:08 +0200
committerSebastian2016-04-25 12:01:08 +0200
commit5acda3eaeabae9045609539303a8c12c4ce401f1 (patch)
tree7e71975f8570b05aafe2ea6ec0e242a8912387bb /core/modules/netpoint-lightdm/data
parentinitial commit (diff)
downloadmltk-5acda3eaeabae9045609539303a8c12c4ce401f1.tar.gz
mltk-5acda3eaeabae9045609539303a8c12c4ce401f1.tar.xz
mltk-5acda3eaeabae9045609539303a8c12c4ce401f1.zip
merge with latest dev version
Diffstat (limited to 'core/modules/netpoint-lightdm/data')
-rw-r--r--core/modules/netpoint-lightdm/data/etc/lightdm/lightdm.conf164
-rw-r--r--core/modules/netpoint-lightdm/data/etc/sysconfig/displaymanager113
-rw-r--r--core/modules/netpoint-lightdm/data/etc/sysconfig/windowmanager51
-rw-r--r--core/modules/netpoint-lightdm/data/usr/local/bin/guest-account3
-rwxr-xr-xcore/modules/netpoint-lightdm/data/usr/local/bin/guest-cleanup8
-rwxr-xr-xcore/modules/netpoint-lightdm/data/usr/local/bin/guest-session4
-rwxr-xr-xcore/modules/netpoint-lightdm/data/usr/local/bin/guest-setup25
-rwxr-xr-xcore/modules/netpoint-lightdm/data/usr/local/bin/netpoint.py215
-rw-r--r--core/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-google-smaller.pngbin0 -> 16703 bytes
-rw-r--r--core/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-rz-smaller.pngbin0 -> 72522 bytes
-rw-r--r--core/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.css16
-rw-r--r--core/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.glade365
-rw-r--r--core/modules/netpoint-lightdm/data/usr/local/share/xgreeters/netpoint.desktop5
13 files changed, 969 insertions, 0 deletions
diff --git a/core/modules/netpoint-lightdm/data/etc/lightdm/lightdm.conf b/core/modules/netpoint-lightdm/data/etc/lightdm/lightdm.conf
new file mode 100644
index 00000000..3e78eb50
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/etc/lightdm/lightdm.conf
@@ -0,0 +1,164 @@
+#
+# 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
+# logind-check-graphical = True to on start seats that are marked as graphical by logind
+# log-directory = Directory to log information to
+# run-directory = Directory to put running state in
+# cache-directory = Directory to cache to
+# sessions-directory = Directory to find sessions
+# remote-sessions-directory = Directory to find remote sessions
+# greeters-directory = Directory to find greeters
+#
+[LightDM]
+#start-default-seat=true
+#greeter-user=lightdm
+#minimum-display-number=0
+minimum-vt=1
+#lock-memory=true
+#user-authority-in-system-dir=false
+guest-account-script=/usr/local/bin/guest-account
+#logind-check-graphical=false
+#log-directory=/var/log/lightdm
+run-directory=/run/lightdm
+#cache-directory=/var/cache/lightdm
+#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions
+#remote-sessions-directory=/usr/share/lightdm/remote-sessions
+
+greeters-directory=/usr/local/share/xgreeters:/usr/share/lightdm/greeters:/usr/share/xgreeters
+
+#
+# Seat defaults
+#
+# type = Seat type (xlocal, xremote)
+# pam-service = PAM service to use for login
+# pam-autologin-service = PAM service to use for autologin
+# pam-greeter-service = PAM service to use for greeters
+# 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
+# xserver-share = True if the X server is shared for both greeter and session
+# xserver-hostname = Hostname of X server (only for type=xremote)
+# xserver-display-number = Display number of X server (only for type=xremote)
+# 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)
+# unity-compositor-command = Unity compositor command to run (can also contain arguments e.g. unity-system-compositor -special-option)
+# unity-compositor-timeout = Number of seconds to wait for compositor to start
+# greeter-session = example-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-user-switching = True if allowed to switch 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
+# greeter-wrapper = Wrapper script to run greeter with
+# guest-wrapper = Wrapper script to run guest sessions with
+# display-setup-script = Script to run when starting a greeter session (runs as root)
+# display-stopped-script = Script to run after stopping the display server (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)
+# autologin-in-background = True if autologin session should not be immediately activated
+# exit-on-failure = True if the daemon should exit if this seat fails
+#
+[SeatDefaults]
+#type=xlocal
+#pam-service=lightdm
+#pam-autologin-service=lightdm-autologin
+#pam-greeter-service=lightdm-greeter
+#xserver-command=X
+#xserver-layout=
+#xserver-config=
+#xserver-allow-tcp=false
+#xserver-share=true
+#xserver-hostname=
+#xserver-display-number=
+#xdmcp-manager=
+#xdmcp-port=177
+#xdmcp-key=
+#unity-compositor-command=unity-system-compositor
+#unity-compositor-timeout=60
+
+greeter-session=netpoint
+
+greeter-hide-users=false
+greeter-allow-guest=true
+#greeter-show-manual-login=false
+#greeter-show-remote-login=true
+#user-session=default
+#allow-user-switching=true
+allow-guest=true
+
+guest-session=/usr/bin/icewm
+
+# Keine Ahnung session-wrapper=/etc/lightdm/Xsession
+
+#greeter-wrapper=
+guest-wrapper=/usr/local/bin/guest-session
+#display-setup-script=
+#display-stopped-script=
+#greeter-setup-script=
+session-setup-script=/usr/local/bin/guest-setup
+session-cleanup-script=/usr/local/bin/guest-cleanup
+#autologin-guest=true
+#autologin-user=
+#autologin-user-timeout=0
+#autologin-in-background=false
+#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
+# command = Command to run Xvnc server with
+# port = TCP/IP port to listen for connections on
+# width = Width of display to use
+# height = Height of display to use
+# depth = Color depth of display to use
+#
+[VNCServer]
+#enabled=false
+#command=Xvnc
+#port=5900
+#width=1024
+#height=768
+#depth=8
diff --git a/core/modules/netpoint-lightdm/data/etc/sysconfig/displaymanager b/core/modules/netpoint-lightdm/data/etc/sysconfig/displaymanager
new file mode 100644
index 00000000..9a64a124
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/etc/sysconfig/displaymanager
@@ -0,0 +1,113 @@
+## Path: Desktop/Display manager
+## Type: string(Xorg)
+## Default: "Xorg"
+#
+DISPLAYMANAGER_XSERVER="Xorg"
+## Path: Desktop/Display manager
+## Description: settings to generate a proper displaymanager config
+
+## Type: string(kdm,xdm,gdm,wdm,entrance,console,lightdm,sddm)
+## Default: ""
+#
+# Here you can set the default Display manager (kdm/xdm/gdm/wdm/entrance/console).
+# all changes in this file require a restart of the displaymanager
+#
+# DISPLAYMANAGER="kdm"
+DISPLAYMANAGER="lightdm"
+
+## Type: yesno
+## Default: no
+#
+# Allow remote access (XDMCP) to your display manager (xdm/kdm/gdm). Please note
+# that a modified kdm or xdm configuration, e.g. by KDE control center
+# will not be changed. For gdm, values will be updated after change.
+# XDMCP service should run only on trusted networks and you have to disable
+# firewall for interfaces, where you want to provide this service.
+#
+DISPLAYMANAGER_REMOTE_ACCESS="no"
+
+## Type: yesno
+## Default: no
+#
+# Allow remote access of the user root to your display manager. Note
+# that root can never login if DISPLAYMANAGER_SHUTDOWN is "auto" and
+# System/Security/Permissions/PERMISSION_SECURITY is "paranoid"
+#
+DISPLAYMANAGER_ROOT_LOGIN_REMOTE="no"
+
+## Type: yesno
+## Default: yes
+#
+# Let the displaymanager start a local Xserver.
+# Set to "no" for remote-access only.
+# Set to "no" on architectures without any Xserver (e.g. s390/s390x).
+#
+DISPLAYMANAGER_STARTS_XSERVER="yes"
+
+## Type: yesno
+## Default: no
+#
+# TCP port 6000 of Xserver. When set to "no" (default) Xserver is
+# started with "-nolisten tcp". Only set this to "yes" if you really
+# need to. Remote X service should run only on trusted networks and
+# you have to disable firewall for interfaces, where you want to
+# provide this service. Use ssh X11 port forwarding whenever possible.
+#
+DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN="no"
+
+## Type: string
+## Default:
+#
+# Define the user whom should get logged in without request. If string
+# is empty, display standard login dialog.
+#
+DISPLAYMANAGER_AUTOLOGIN=""
+
+## Type: yesno
+## Default: no
+#
+# Allow all users to login without password, but ask for the user, if
+# DISPLAYMANAGER_AUTOLOGIN is empty.
+#
+DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no"
+
+## Type: yesno
+## Default: no
+#
+# Display a combobox for Active Directory domains.
+#
+DISPLAYMANAGER_AD_INTEGRATION="no"
+
+## Type: list(root,all,none,auto)
+## Default: auto
+#
+# Determine who will be able to shutdown or reboot the system in kdm. Valid
+# values are: "root" (only root can shutdown), "all" (everybody can shutdown),
+# "none" (nobody can shutdown from displaymanager), "auto" (follow
+# System/Security/Permissions/PERMISSION_SECURITY to decide: "easy local" is
+# equal to "all", everything else is equal to "root"). gdm respects the
+# PolicyKit settings for ConsoleKit. Shutdown configuration can be done via
+# the polkit-default-privs mechanism.
+#
+DISPLAYMANAGER_SHUTDOWN="auto"
+## Path: Desktop/Display manager
+## Description: settings to generate a proper displaymanager config
+## Config: kdm
+
+## Type: string
+## Default:
+#
+# Defines extra Server Arguments given to the kdm display manager when
+# starting a local display. Useful to override e.g. the -dpi setting.
+#
+DISPLAYMANAGER_KDM_LOCALARGS=""
+
+## Type: yesno
+## Default: yes
+#
+# Allow local access of the user root to your display manager. Note
+# that root can never login if DISPLAYMANAGER_SHUTDOWN is "auto" and
+# System/Security/Permissions/PERMISSION_SECURITY is "paranoid".
+# This settings currently works only with KDM.
+#
+DISPLAYMANAGER_ROOT_LOGIN_LOCAL="yes"
diff --git a/core/modules/netpoint-lightdm/data/etc/sysconfig/windowmanager b/core/modules/netpoint-lightdm/data/etc/sysconfig/windowmanager
new file mode 100644
index 00000000..12120320
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/etc/sysconfig/windowmanager
@@ -0,0 +1,51 @@
+## Type: string
+## Default:
+## Path: Desktop
+## Description: default mouse cursor theme
+#
+# Name of mouse cursor theme for X11. Possible themes can be found
+# in /usr/share/icons/
+#
+X_MOUSE_CURSOR="DMZ"
+## Path: Desktop/Window manager
+## Description:
+## Type: string(gnome,kde4,kde,lxde,xfce,twm,icewm)
+## Default: kde4
+## Config: profiles,kde,susewm
+#
+# Here you can set the default window manager (kde, fvwm, ...)
+# changes here require at least a re-login
+# DEFAULT_WM="kde-plasma"
+DEFAULT_WM="xfce"
+
+## Type: yesno
+## Default: yes
+#
+# install the SuSE extension for new users
+# (theme and additional functions)
+#
+INSTALL_DESKTOP_EXTENSIONS="yes"
+## Path: Desktop
+## Description: prepare global sycoca database for faster first startup
+## Type: list(yes,initial,no)
+## Default: initial
+#
+# building a global sycoca database, which can be used at first user
+# login in KDE
+#
+KDE_BUILD_GLOBAL_SYCOCA="initial"
+
+## Type: yesno
+## Default: yes
+#
+# To disable IPv6 support within KDE. It might solve large timeouts due to
+# broken servers which claim to have IPv6 support, but do not respond.
+#
+KDE_USE_IPV6="yes"
+
+## Type: yesno
+## Default: yes
+#
+# IDN support can get disabled to avoid DNS phishing for example.
+#
+KDE_USE_IDN="yes"
diff --git a/core/modules/netpoint-lightdm/data/usr/local/bin/guest-account b/core/modules/netpoint-lightdm/data/usr/local/bin/guest-account
new file mode 100644
index 00000000..3eed0efc
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/usr/local/bin/guest-account
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+echo "demo"
diff --git a/core/modules/netpoint-lightdm/data/usr/local/bin/guest-cleanup b/core/modules/netpoint-lightdm/data/usr/local/bin/guest-cleanup
new file mode 100755
index 00000000..32179cec
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/usr/local/bin/guest-cleanup
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+IPTABLES=$(/usr/bin/which iptables)
+
+"$IPTABLES" -F
+"$IPTABLES" -P INPUT ACCEPT
+"$IPTABLES" -P FORWARD ACCEPT
+"$IPTABLES" -P OUTPUT ACCEPT
diff --git a/core/modules/netpoint-lightdm/data/usr/local/bin/guest-session b/core/modules/netpoint-lightdm/data/usr/local/bin/guest-session
new file mode 100755
index 00000000..2c22a68c
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/usr/local/bin/guest-session
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+exec /usr/bin/icewm &
+# exec /usr/bin/firefox
diff --git a/core/modules/netpoint-lightdm/data/usr/local/bin/guest-setup b/core/modules/netpoint-lightdm/data/usr/local/bin/guest-setup
new file mode 100755
index 00000000..cb6791fc
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/usr/local/bin/guest-setup
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+IPTABLES=$(/usr/bin/which iptables)
+
+# reset
+"$IPTABLES" -F INPUT
+"$IPTABLES" -F FORWARD
+"$IPTABLES" -F OUTPUT
+
+if [ "x${USER}" = "xdemo" ]; then
+ # filter out the internetz
+ "$IPTABLES" -P INPUT DROP
+ "$IPTABLES" -P FORWARD DROP
+ "$IPTABLES" -P OUTPUT DROP
+
+ # block internetz
+ "$IPTABLES" -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
+ "$IPTABLES" -A OUTPUT -d 132.230.0.0/16 -j ACCEPT
+ "$IPTABLES" -A OUTPUT -d 10.0.0.0/8 -j ACCEPT
+else
+ "$IPTABLES" -P INPUT ACCEPT
+ "$IPTABLES" -P FORWARD ACCEPT
+ "$IPTABLES" -P OUTPUT ACCEPT
+
+fi
diff --git a/core/modules/netpoint-lightdm/data/usr/local/bin/netpoint.py b/core/modules/netpoint-lightdm/data/usr/local/bin/netpoint.py
new file mode 100755
index 00000000..635fb03f
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/usr/local/bin/netpoint.py
@@ -0,0 +1,215 @@
+#!/usr/bin/python
+#
+# Author: Matt Fischer <matthew.fischer@canonical.com>
+# Copyright (C) 2012 Canonical, Ltd
+#
+# This program is free software: you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later
+# version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+# license.
+#
+# This code is based on the LightDM GTK Greeter which was written by:
+# Robert Ancell <robert.ancell@canonical.com>
+
+# required packages:
+# liblightdm-gobject-1-0
+# gir1.2-lightdm-1
+# python-gobject
+# gir1.2-glib-2.0
+# gir1.2-gtk-3.0
+
+from gi.repository import GObject
+from gi.repository import GLib
+from gi.repository import Gtk
+from gi.repository import Gdk
+from gi.repository import GdkPixbuf
+from gi.repository.GdkPixbuf import InterpType
+from gi.repository import LightDM
+import sys
+
+greeter = None
+
+main = None
+split = None
+
+guest_box = None
+guest_text = None
+guest_button = None
+guest_image = None
+
+login_box = None
+login_text = None
+user_box = None
+user_text = None
+user_username = None
+pass_box = None
+pass_text = None
+pass_password = None
+
+prompt_box = None
+prompt_label = None
+prompt_entry = None
+message_label = None
+
+# This Gtk signal is called when the user hits enter after entering a
+# username/password or clicks the login button. Since we re-purposed
+# the text entry box, we have 3 possible cases to handle here.
+# 1) the user is already authenticated, if for example, they don't have
+# a password set.
+# 2) The username has been passed into LightDM and now we need to pass
+# the password
+# 3) The username has been entered, but not passed in. We pass it in
+# and start the authentication process.
+def login_cb(widget):
+ print >> sys.stderr, "login_cb"
+ if greeter.get_is_authenticated():
+ print >> sys.stderr, "user is already authenticated, starting session"
+ #start_session()
+ elif greeter.get_in_authentication():
+ print >> sys.stderr, "username was passed in already, send password to LightDM"
+ print >> sys.stderr, greeter.get_authentication_user()
+ greeter.respond(pass_password.get_text())
+ else:
+ print >> sys.stderr, "Initial entry of username, send it to LightDM"
+ greeter.authenticate(user_username.get_text())
+
+def guest_cb(widget):
+ print >> sys.stderr, "guest_cb"
+ if greeter.get_has_guest_account_hint():
+ print >> sys.stderr, "Guest accounts supported"
+ greeter.authenticate_as_guest()
+ else:
+ print >> sys.stderr, "Guest accounts not supported"
+
+
+# Gtk Signal Handlers
+handlers = {
+ "login_cb": login_cb,
+ "guest_cb": guest_cb
+}
+
+# The show_prompt callback is oddly named, but when you get this
+# callback you are supposed to send the password to LightDM next. In
+# our example, we re-purpose the prompt and ask the user for the
+# password which is then sent the next time the user hits the Login
+# button or presses enter.
+def show_prompt_cb(greeter, text, promptType):
+ print >> sys.stderr, "Prompt type: " + str(promptType)
+ print >> sys.stderr, "Text: " + str(text)
+ # if this is a password prompt, we want to hide the characters
+ if promptType == LightDM.PromptType.SECRET:
+ pass_password.set_visibility(False)
+ else:
+ pass_password.set_visibility(True)
+ greeter.respond(pass_password.get_text())
+
+
+# If LightDM sends a message back to the greeter, for example, "Login
+# failed" or "invalid password" we display it in our message box.
+def show_message_cb(text, message_type):
+ print >> sys.stderr, "In show_message"
+ print >> sys.stderr, text
+ message_label.set_text(text)
+ message_label.show()
+
+# Callback for after we send LightDM the password, this method
+# has to handle a successful login, in which case we start the session
+# or a failed login, in which case we tell the user
+def authentication_complete_cb(greeter):
+ if greeter.get_is_authenticated():
+ # For our simple example we always start Unity-2d. The LightDM
+ # API has ways to query available sessions, please see the docs.
+ if not greeter.start_session_sync("xfce"):
+ print >> sys.stderr, "Failed to start session"
+ else:
+ print >> sys.stderr, "Login failed"
+ message_label.set_text("LOGIN FAILED")
+ message_label.show()
+
+if __name__ == '__main__':
+ print >> sys.stderr, "Starting up..."
+ main_loop = GObject.MainLoop ()
+ builder = Gtk.Builder()
+ greeter = LightDM.Greeter()
+ styler = Gtk.CssProvider()
+ css = open('/usr/local/share/lightdm/netpoint.css', 'r')
+
+ css_data = css.read()
+ css.close()
+ styler.load_from_data(css_data)
+ Gtk.StyleContext.add_provider_for_screen(
+ Gdk.Screen.get_default(),
+ styler,
+ Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
+ )
+
+ # connect signal handlers to LightDM
+ greeter.connect ("authentication-complete", authentication_complete_cb)
+ greeter.connect ("show-message", show_message_cb)
+ greeter.connect ("show-prompt", show_prompt_cb)
+
+ # connect builder and widgets
+ # you probably really want to put your .UI file somewhere else
+ builder.add_from_file("/usr/local/share/lightdm/netpoint.glade")
+
+ main = builder.get_object("main")
+ split = builder.get_object("split")
+ sep = builder.get_object("sep")
+ message_label = builder.get_object("message_label")
+ print >> sys.stderr, message_label
+ guest_box = builder.get_object("guest_box")
+
+ guest_outer_box = builder.get_object("guest_outer_box")
+ guest_internal_box = builder.get_object("guest_internal_box")
+ guest_text = builder.get_object("guest_text")
+ guest_button = builder.get_object("guest_button")
+ guest_image = builder.get_object("guest_image")
+ login_image = builder.get_object("login_image")
+ #pixbuf = guest_image.get_pixbuf()
+ #pixbuf = pixbuf.scale_simple(pixbuf.get_width() * 0.7, pixbuf.get_height() * 0.7, InterpType.HYPER)
+ #guest_image.set_from_pixbuf(pixbuf)
+ #pixbuf = login_image.get_pixbuf()
+ #pixbuf = pixbuf.scale_simple(pixbuf.get_width() * 0.7, pixbuf.get_height() * 0.7, InterpType.HYPER)
+ #login_image.set_from_pixbuf(pixbuf)
+
+ login_box = builder.get_object("login_box")
+ login_text = builder.get_object("login_text")
+
+ user_box = builder.get_object("user_box")
+ user_text = builder.get_object("user_text")
+ user_username = builder.get_object("user_username")
+
+ pass_box = builder.get_object("pass_box")
+ pass_text = builder.get_object("pass_text")
+ pass_password = builder.get_object("pass_password")
+
+ # connect signals to Gtk UI
+ builder.connect_signals(handlers)
+
+ # connect to greeter
+ greeter.connect_sync()
+
+ message_label.hide()
+
+ # setup the GUI
+ main.set_decorated(True)
+ main.get_root_window().set_cursor(Gdk.Cursor.new(Gdk.CursorType.ARROW))
+ main.show()
+ guest_text.show()
+ guest_button.show()
+ login_text.show()
+ user_text.show()
+ user_username.grab_focus()
+ user_username.show()
+ pass_text.show()
+ pass_password.set_sensitive(True)
+ pass_password.set_visibility(False)
+ pass_password.show()
+
+ # fullscreen it
+ main.resize(Gdk.Screen.width(), Gdk.Screen.height())
+
+ #print >> sys.stderr, guest_box.get_height()
+ #print >> sys.stderr, guest_box.get_width()
+ main_loop.run ()
diff --git a/core/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-google-smaller.png b/core/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-google-smaller.png
new file mode 100644
index 00000000..f3b81c32
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-google-smaller.png
Binary files differ
diff --git a/core/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-rz-smaller.png b/core/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-rz-smaller.png
new file mode 100644
index 00000000..f6e4703d
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/usr/local/share/lightdm/ff-rz-smaller.png
Binary files differ
diff --git a/core/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.css b/core/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.css
new file mode 100644
index 00000000..7f1f80af
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.css
@@ -0,0 +1,16 @@
+#main {
+ background-color: white;
+}
+#sep {
+ -GtkWidget-wide-separators: 1;
+ -GtkWidget-separator-width: 5;
+ border-style: solid;
+ border-width: 2px;
+ color: grey;
+}
+#title {
+ border-top-style: solid;
+ border-bottom-style: double;
+ border-width: 3px;
+ border-color: grey;
+}
diff --git a/core/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.glade b/core/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.glade
new file mode 100644
index 00000000..e2e47416
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/usr/local/share/lightdm/netpoint.glade
@@ -0,0 +1,365 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.3 -->
+<interface>
+ <requires lib="gtk+" version="3.12"/>
+ <object class="GtkWindow" id="main">
+ <property name="name">main</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="window_position">center-always</property>
+ <property name="default_width">800</property>
+ <property name="default_height">600</property>
+ <property name="decorated">False</property>
+ <property name="gravity">center</property>
+ <child>
+ <object class="GtkBox" id="box2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="name">title</property>
+ <property name="height_request">100</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Netpoint 0.1</property>
+ <attributes>
+ <attribute name="font-desc" value="Sans Bold 18"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">False</property>
+ <property name="vexpand">True</property>
+ <child>
+ <object class="GtkSeparator" id="separator1">
+ <property name="name">sep</property>
+ <property name="width_request">10</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">False</property>
+ <property name="row_homogeneous">True</property>
+ <child>
+ <object class="GtkBox" id="guest_box">
+ <property name="name">guestbox</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">False</property>
+ <property name="vexpand">False</property>
+ <property name="orientation">vertical</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkBox" id="box4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="guest_text">
+ <property name="height_request">100</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="vexpand">False</property>
+ <property name="label" translatable="yes">Uni-interner Browser</property>
+ <property name="justify">center</property>
+ <attributes>
+ <attribute name="font-desc" value="Sans Bold 14"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="hexpand">False</property>
+ <property name="vexpand">False</property>
+ <property name="label" translatable="yes">Im Gastmodus können Sie nur auf universitätsinterne Webseiten zugreifen.</property>
+ <property name="justify">center</property>
+ <property name="wrap">True</property>
+ <property name="width_chars">0</property>
+ <property name="max_width_chars">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="guest_button">
+ <property name="label" translatable="yes">Surfen als Gast</property>
+ <property name="use_action_appearance">False</property>
+ <property name="related_action"/>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <signal name="clicked" handler="guest_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="guest_image">
+ <property name="name">guest_image</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">10</property>
+ <property name="margin_right">10</property>
+ <property name="margin_top">10</property>
+ <property name="margin_bottom">10</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="pixbuf">ff-rz-smaller.png</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="row_homogeneous">True</property>
+ <child>
+ <object class="GtkBox" id="box3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkBox" id="box5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="login_text">
+ <property name="height_request">100</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="vexpand">False</property>
+ <property name="label" translatable="yes">Internet Browser</property>
+ <property name="justify">center</property>
+ <attributes>
+ <attribute name="font-desc" value="Sans Bold 14"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="login_info">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="vexpand">False</property>
+ <property name="label" translatable="yes">Melden Sie sich mit Ihrem RZ-Konto, um auch im Internet zu surfen.</property>
+ <property name="justify">center</property>
+ <property name="wrap">True</property>
+ <property name="width_chars">0</property>
+ <property name="max_width_chars">30</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkGrid" id="grid3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="row_spacing">3</property>
+ <property name="column_spacing">3</property>
+ <child>
+ <object class="GtkEntry" id="pass_password">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="progress_pulse_step">0</property>
+ <signal name="activate" handler="login_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="pass_text">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Passwort:</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="user_text">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Username:</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="user_username">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <signal name="activate" handler="login_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="message_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" comments="This is a placeholder string and will be replaced with a message from PAM">[message]</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="login_image">
+ <property name="name">login_image</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">10</property>
+ <property name="margin_right">10</property>
+ <property name="margin_top">10</property>
+ <property name="margin_bottom">10</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="pixbuf">ff-google-smaller.png</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/core/modules/netpoint-lightdm/data/usr/local/share/xgreeters/netpoint.desktop b/core/modules/netpoint-lightdm/data/usr/local/share/xgreeters/netpoint.desktop
new file mode 100644
index 00000000..f03cf498
--- /dev/null
+++ b/core/modules/netpoint-lightdm/data/usr/local/share/xgreeters/netpoint.desktop
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Name=Netpoint Grita
+Comment=Netpoint Grita
+Exec=/usr/local/bin/netpoint.py
+Type=Application