+Overview of changes in lightdm 1.5.4
+
+ * Allow VNC command to be specified in lightdm.conf
+
Overview of changes in lightdm 1.5.3
* Fix build with gobject-introspection 1.35.9
# 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
seat_xvnc_create_display_server (Seat *seat)
{
XServerXVNC *xserver;
+ const gchar *command = NULL;
xserver = xserver_xvnc_new ();
xserver_xvnc_set_socket (xserver, g_socket_get_fd (SEAT_XVNC (seat)->priv->connection));
+ command = config_get_string (config_get_instance (), "VNCServer", "xserver-command");
+ if (command)
+ xserver_xvnc_set_command (xserver, command);
+
if (config_has_key (config_get_instance (), "VNCServer", "width") &&
config_has_key (config_get_instance (), "VNCServer", "height"))
{
Process *xserver_process;
/* File to log to */
- gchar *log_file;
+ gchar *log_file;
+
+ /* Command to run the X server */
+ gchar *command;
/* Authority file */
gchar *authority_file;
return self;
}
+void
+xserver_xvnc_set_command (XServerXVNC *server, const gchar *command)
+{
+ g_return_if_fail (server != NULL);
+ g_free (server->priv->command);
+ server->priv->command = g_strdup (command);
+}
+
void
xserver_xvnc_set_socket (XServerXVNC *server, int fd)
{
g_free (filename);
g_free (dir);
- absolute_command = get_absolute_command ("Xvnc");
+ absolute_command = get_absolute_command (server->priv->command);
if (!absolute_command)
{
- g_debug ("Can't launch Xvnc, not found in path");
+ g_debug ("Can't launch X server %s, not found in path", server->priv->command);
stopped_cb (server->priv->xserver_process, XSERVER_XVNC (server));
return FALSE;
}
xserver_xvnc_init (XServerXVNC *server)
{
server->priv = G_TYPE_INSTANCE_GET_PRIVATE (server, XSERVER_XVNC_TYPE, XServerXVNCPrivate);
+ server->priv->command = g_strdup ("Xvnc");
server->priv->width = 1024;
server->priv->height = 768;
server->priv->depth = 8;
if (self->priv->xserver_process)
g_object_unref (self->priv->xserver_process);
+ g_free (self->priv->command);
g_free (self->priv->authority_file);
g_free (self->priv->log_file);
XServerXVNC *xserver_xvnc_new (void);
+void xserver_xvnc_set_command (XServerXVNC *server, const gchar *command);
+
void xserver_xvnc_set_socket (XServerXVNC *server, int fd);
int xserver_xvnc_get_socket (XServerXVNC *server);
--- /dev/null
+#
+# Check that LightDM correctly negotiates VNC and starts the session to the remote server.
+#
+
+[LightDM]
+minimum-display-number=50
+start-default-seat=false
+
+[VNCServer]
+enabled=true
+port=9999
+command=Xvnc -depth 16
+
+#?RUNNER DAEMON-START
+#?*WAIT 1
+
+# Start a VNC client
+#?*START-VNC-CLIENT ARGS="::9999"
+#?VNC-CLIENT START
+#?VNC-CLIENT CONNECT SERVER=::9999
+
+# Xvnc server starts
+#?XSERVER :50 START GEOMETRY=1024x768 DEPTH=16
+
+# Clean up
+#?*STOP-DAEMON
+#?XSERVER :50 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
--- /dev/null
+#!/bin/sh
+./src/dbus-env ./src/test-runner vnc-login test-gobject-greeter