We need to customize default configuration:
1) use Xorg instead X, as X will implicitly add "-nolisten tcp", and lightdm manages this parameter itself;
2) run Xvnc with "securitytypes=none" option;
3) set default color depth for Xvnc to 16, otherwise gtk applications will fail to work correctly;
4) use gdm-autologin as default autologin service, as currently we can't change default pam entries;
5) hide user list by default.

--- lightdm-1.19.3/src/lightdm.c.~3~	2016-08-12 19:54:56.871477375 +0300
+++ lightdm-1.19.3/src/lightdm.c	2016-08-12 19:54:56.927097430 +0300
@@ -810,11 +810,11 @@
     if (!config_has_key (config_get_instance (), "Seat:*", "pam-service"))
         config_set_string (config_get_instance (), "Seat:*", "pam-service", "lightdm");
     if (!config_has_key (config_get_instance (), "Seat:*", "pam-autologin-service"))
-        config_set_string (config_get_instance (), "Seat:*", "pam-autologin-service", "lightdm-autologin");
+        config_set_string (config_get_instance (), "Seat:*", "pam-autologin-service", "gdm-autologin");
     if (!config_has_key (config_get_instance (), "Seat:*", "pam-greeter-service"))
         config_set_string (config_get_instance (), "Seat:*", "pam-greeter-service", "lightdm-greeter");
     if (!config_has_key (config_get_instance (), "Seat:*", "xserver-command"))
-        config_set_string (config_get_instance (), "Seat:*", "xserver-command", "X");
+        config_set_string (config_get_instance (), "Seat:*", "xserver-command", "Xorg");
     if (!config_has_key (config_get_instance (), "Seat:*", "xmir-command"))
         config_set_string (config_get_instance (), "Seat:*", "xmir-command", "Xmir");
     if (!config_has_key (config_get_instance (), "Seat:*", "xserver-share"))
--- lightdm-1.30.0/data/lightdm.conf	2018-09-05 03:33:31.000000000 +0000
+++ lightdm-1.30.0/data/lightdm.conf	2019-05-17 10:49:49.548885198 +0000
@@ -60,7 +60,7 @@
 # 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-hide-users = False to show 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
@@ -86,9 +86,9 @@
 [Seat:*]
 #type=local
 #pam-service=lightdm
-#pam-autologin-service=lightdm-autologin
+#pam-autologin-service=gdm-autologin
 #pam-greeter-service=lightdm-greeter
-#xserver-command=X
+#xserver-command=Xorg
 #xmir-command=Xmir
 #xserver-config=
 #xserver-layout=
@@ -104,7 +104,7 @@
 #greeter-allow-guest=true
 #greeter-show-manual-login=false
 #greeter-show-remote-login=true
-#user-session=default
+#user-session=mate
 #allow-user-switching=true
 #allow-guest=true
 #guest-session=
@@ -155,9 +155,9 @@
 #
 [VNCServer]
 #enabled=false
-#command=Xvnc
+#command=Xvnc securitytypes=none
 #port=5900
 #listen-address=
 #width=1024
 #height=768
-#depth=8
+#depth=16
--- lightdm-1.28.0/src/x-server-xvnc.c	2018-08-30 02:36:12.000000000 +0000
+++ lightdm-1.28.0/src/x-server-xvnc.c	2018-12-22 12:18:01.167730605 +0000
@@ -36,7 +36,7 @@ x_server_xvnc_new (void)
 {
     XServerXVNC *server = g_object_new (X_SERVER_XVNC_TYPE, NULL);
 
-    x_server_local_set_command (X_SERVER_LOCAL (server), "Xvnc");
+    x_server_local_set_command (X_SERVER_LOCAL (server), "Xvnc securitytypes=none");
 
     return server;
 }
@@ -127,7 +127,7 @@ x_server_xvnc_init (XServerXVNC *server)
     XServerXVNCPrivate *priv = x_server_xvnc_get_instance_private (server);
     priv->width = 1024;
     priv->height = 768;
-    priv->depth = 8;
+    priv->depth = 16;
 }
 
 static void
--- lightdm-1.19.3/src/seat.c.1	2016-08-13 10:39:56.098357291 +0300
+++ lightdm-1.19.3/src/seat.c	2016-08-13 10:56:21.727142124 +0300
@@ -523,9 +523,16 @@
 static void
 set_greeter_hints (Seat *seat, Greeter *greeter)
 {
+    gchar *hide;
+
     greeter_clear_hints (greeter);
     greeter_set_hint (greeter, "default-session", seat_get_string_property (seat, "user-session"));
-    greeter_set_hint (greeter, "hide-users", seat_get_boolean_property (seat, "greeter-hide-users") ? "true" : "false");
+
+    hide=seat_get_string_property (seat, "greeter-hide-users");
+    if(hide && (strncmp(hide,"false",5)==0)) 
+      greeter_set_hint (greeter, "hide-users","false");
+    else
+      greeter_set_hint (greeter, "hide-users","true");
     greeter_set_hint (greeter, "show-manual-login", seat_get_boolean_property (seat, "greeter-show-manual-login") ? "true" : "false");
     greeter_set_hint (greeter, "show-remote-login", seat_get_boolean_property (seat, "greeter-show-remote-login") ? "true" : "false");
     greeter_set_hint (greeter, "has-guest-account", seat_get_allow_guest (seat) && seat_get_boolean_property (seat, "greeter-allow-guest") ? "true" : "false");