diff options
Diffstat (limited to 'sbin/chksession')
-rwxr-xr-x | sbin/chksession | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/sbin/chksession b/sbin/chksession index c406fdf..0b07104 100755 --- a/sbin/chksession +++ b/sbin/chksession @@ -8,6 +8,8 @@ my (@lf, $dir, $first, $list, $list_order, %order, $test); +# Define multiple default paths for window-managers +my @dir_wm = qw(/usr/share/xsessions/ /usr/share/wayland-sessions/); sub usage { my $e = shift @_; @@ -75,11 +77,19 @@ while ($ARGV[0] =~ /^--/ || $ARGV[0] =~ /^-/) { } # Parse all relevant files in session directory $dir -$dir = $test ? './xsessions/' : '/usr/share/xsessions/' unless $dir; -chdir($dir); -foreach (glob("*.desktop")) { - parse_file($_); +if ($test) { + $dir = './xsessions/'; } +if ($dir) { + @dir_wm = $dir; +} +foreach my $dir (@dir_wm) { + chdir($dir); + foreach (glob("*.desktop")) { + parse_file($_); + } +} + my ($e) = eval { cat("/etc/sysconfig/desktop") } =~ /DESKTOP=(\S+)/; # The first string (without spaces) in the file is copied to $e. |