summaryrefslogtreecommitdiffstats
path: root/perl-install/any.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/any.pm')
-rw-r--r--perl-install/any.pm23
1 files changed, 16 insertions, 7 deletions
diff --git a/perl-install/any.pm b/perl-install/any.pm
index dc0d112e1..f334bf700 100644
--- a/perl-install/any.pm
+++ b/perl-install/any.pm
@@ -842,6 +842,21 @@ sub available_dms() {
@l;
}
+sub desktop_to_dm {
+ my ($desktop) = @_;
+ if ($desktop =~ /gnome/i) {
+ 'gdm';
+ } elsif ($desktop =~ /lxqt|plasma/i) {
+ 'sddm';
+ } elsif ($desktop =~ /cinnamon|mate|xfce/i) {
+ 'lightdm';
+ } elsif ($desktop =~ /lxde/i) {
+ 'lxdm';
+ } else {
+ '';
+ }
+}
+
sub get_autologin() {
my %desktop = getVarsFromSh("$::prefix/etc/sysconfig/desktop");
my $gdm_file = "$::prefix/etc/X11/gdm/custom.conf";
@@ -850,15 +865,9 @@ sub get_autologin() {
my $lxdm_conffile = "$::prefix/etc/lxdm/lxdm.conf";
my $autologin_file = "$::prefix/etc/sysconfig/autologin";
my $desktop = $desktop{DESKTOP} || first(sessions());
- my %desktop_to_dm = (
- GNOME => 'gdm',
- Plasma => 'sddm',
- Xfce => 'lightdm',
- LXDE => 'lxdm',
- );
my $dm =
basename(readlink("$::prefix/etc/systemd/system/display-manager.service")) =~ s/(.*)\.service/$1/r ||
- $desktop_to_dm{$desktop} ||
+ desktop_to_dm($desktop) ||
basename(first(available_dms()));
my $autologin_user;