1 We need to customize default configuration:
2 1) use Xorg instead X, as X will implicitly add "-nolisten tcp", and lightdm manages this parameter itself;
3 2) run Xvnc with "securitytypes=none" option;
4 3) set default color depth for Xvnc to 16, otherwise gtk applications will fail to work correctly;
5 4) use gdm-autologin as default autologin service, as currently we can't change default pam entries;
6 5) hide user list by default.
8 --- lightdm-1.19.3/src/lightdm.c.~3~ 2016-08-12 19:54:56.871477375 +0300
9 +++ lightdm-1.19.3/src/lightdm.c 2016-08-12 19:54:56.927097430 +0300
11 if (!config_has_key (config_get_instance (), "Seat:*", "pam-service"))
12 config_set_string (config_get_instance (), "Seat:*", "pam-service", "lightdm");
13 if (!config_has_key (config_get_instance (), "Seat:*", "pam-autologin-service"))
14 - config_set_string (config_get_instance (), "Seat:*", "pam-autologin-service", "lightdm-autologin");
15 + config_set_string (config_get_instance (), "Seat:*", "pam-autologin-service", "gdm-autologin");
16 if (!config_has_key (config_get_instance (), "Seat:*", "pam-greeter-service"))
17 config_set_string (config_get_instance (), "Seat:*", "pam-greeter-service", "lightdm-greeter");
18 if (!config_has_key (config_get_instance (), "Seat:*", "xserver-command"))
19 - config_set_string (config_get_instance (), "Seat:*", "xserver-command", "X");
20 + config_set_string (config_get_instance (), "Seat:*", "xserver-command", "Xorg");
21 if (!config_has_key (config_get_instance (), "Seat:*", "xmir-command"))
22 config_set_string (config_get_instance (), "Seat:*", "xmir-command", "Xmir");
23 if (!config_has_key (config_get_instance (), "Seat:*", "xserver-share"))
24 --- lightdm-1.30.0/data/lightdm.conf 2018-09-05 03:33:31.000000000 +0000
25 +++ lightdm-1.30.0/data/lightdm.conf 2019-05-17 10:49:49.548885198 +0000
27 # xdmcp-port = XDMCP UDP/IP port to communicate on
28 # xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
29 # greeter-session = Session to load for greeter
30 -# greeter-hide-users = True to hide the user list
31 +# greeter-hide-users = False to show the user list
32 # greeter-allow-guest = True if the greeter should show a guest login option
33 # greeter-show-manual-login = True if the greeter should offer a manual login option
34 # greeter-show-remote-login = True if the greeter should offer a remote login option
39 -#pam-autologin-service=lightdm-autologin
40 +#pam-autologin-service=gdm-autologin
41 #pam-greeter-service=lightdm-greeter
43 +#xserver-command=Xorg
48 #greeter-allow-guest=true
49 #greeter-show-manual-login=false
50 #greeter-show-remote-login=true
51 -#user-session=default
53 #allow-user-switching=true
61 +#command=Xvnc securitytypes=none
68 --- lightdm-1.28.0/src/x-server-xvnc.c 2018-08-30 02:36:12.000000000 +0000
69 +++ lightdm-1.28.0/src/x-server-xvnc.c 2018-12-22 12:18:01.167730605 +0000
70 @@ -36,7 +36,7 @@ x_server_xvnc_new (void)
72 XServerXVNC *server = g_object_new (X_SERVER_XVNC_TYPE, NULL);
74 - x_server_local_set_command (X_SERVER_LOCAL (server), "Xvnc");
75 + x_server_local_set_command (X_SERVER_LOCAL (server), "Xvnc securitytypes=none");
79 @@ -127,7 +127,7 @@ x_server_xvnc_init (XServerXVNC *server)
80 XServerXVNCPrivate *priv = x_server_xvnc_get_instance_private (server);
88 --- lightdm-1.19.3/src/seat.c.1 2016-08-13 10:39:56.098357291 +0300
89 +++ lightdm-1.19.3/src/seat.c 2016-08-13 10:56:21.727142124 +0300
92 set_greeter_hints (Seat *seat, Greeter *greeter)
96 greeter_clear_hints (greeter);
97 greeter_set_hint (greeter, "default-session", seat_get_string_property (seat, "user-session"));
98 - greeter_set_hint (greeter, "hide-users", seat_get_boolean_property (seat, "greeter-hide-users") ? "true" : "false");
100 + hide=seat_get_string_property (seat, "greeter-hide-users");
101 + if(hide && (strncmp(hide,"false",5)==0))
102 + greeter_set_hint (greeter, "hide-users","false");
104 + greeter_set_hint (greeter, "hide-users","true");
105 greeter_set_hint (greeter, "show-manual-login", seat_get_boolean_property (seat, "greeter-show-manual-login") ? "true" : "false");
106 greeter_set_hint (greeter, "show-remote-login", seat_get_boolean_property (seat, "greeter-show-remote-login") ? "true" : "false");
107 greeter_set_hint (greeter, "has-guest-account", seat_get_allow_guest (seat) && seat_get_boolean_property (seat, "greeter-allow-guest") ? "true" : "false");