aboutsummaryrefslogtreecommitdiffstats
path: root/sbin/chksession
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/chksession')
-rw-r--r--sbin/chksession30
1 files changed, 16 insertions, 14 deletions
diff --git a/sbin/chksession b/sbin/chksession
index d0ac569..5fa7357 100644
--- a/sbin/chksession
+++ b/sbin/chksession
@@ -49,9 +49,9 @@ sub parse_file { # parse a session descriptor file
}
sub gen_desktops {
- my ($d) = @_;
+ my ($d, $createdefault) = @_;
-d $d or system("mkdir -p $d");
- chdir $d;
+ system("rm -f $d/*");
for my $file (@lf) {
open FH, ">$d/$order{$file}$file.desktop" or die "Can't write to $d/$order{$file}.desktop\n";
@@ -66,16 +66,18 @@ sub gen_desktops {
close FH;
chmod 0755, $file;
}
- open FH, ">$d/Default.desktop" or die "Can't write to $d/Default.desktop\n";
- print FH "[Desktop Entry]\n";
- print FH "Encoding=UTF-8\n";
- print FH "Name=Default\n";
- print FH "Comment=Default\n";
- print FH "Exec=/etc/X11/xdm/Xsession\n";
- print FH "Icon=\n";
- print FH "Type=Application\n";
- close FH;
- chmod 0755, $file;
+ if ($createdefault) {
+ open FH, ">$d/Default.desktop" or die "Can't write to $d/Default.desktop\n";
+ print FH "[Desktop Entry]\n";
+ print FH "Encoding=UTF-8\n";
+ print FH "Name=Default\n";
+ print FH "Comment=Default\n";
+ print FH "Exec=/etc/X11/xdm/Xsession\n";
+ print FH "Icon=\n";
+ print FH "Type=Application\n";
+ close FH;
+ chmod 0755, $file;
+ }
}
usage(1)
@@ -124,11 +126,11 @@ my ($e) = eval {cat("/etc/sysconfig/desktop")} =~ /DESKTOP=(\S+)/;
if ($kdm) {
- gen_desktops '/usr/share/apps/kdm/sessions';
+ gen_desktops('/usr/share/apps/kdm/sessions', 0);
}
if ($gdm) {
- gen_desktops '/etc/X11/dm/Sessions';
+ gen_desktops('/etc/X11/dm/Sessions', 1);
}
if ($xsession) {