diff options
Diffstat (limited to 'sbin/chksession')
-rw-r--r-- | sbin/chksession | 77 |
1 files changed, 2 insertions, 75 deletions
diff --git a/sbin/chksession b/sbin/chksession index fb2e099..d6ed385 100644 --- a/sbin/chksession +++ b/sbin/chksession @@ -4,6 +4,7 @@ ## For info, see "chksession --help" or "man chksession" # Modified by Bernard Lang on August 21, 2003. +# Modified by ns80 on February 12, 2016. my (@lf, $dir, $first, $list, $list_order, %order, $test); @@ -22,14 +23,6 @@ Usage: $0 [OPTION]... -d=DIR, --dir=DIR: Specifies a directory of w-m configuration files. Default is /etc/X11/wmsession.d/ - -x=ENTRY, --xsession=ENTRY: Produce window-managers script of ENTRY. - - --generate=DIR: Produce window-manager .desktop files into DIR. - --wrap-sessions: Wrap window-managers with /usr/share/X11/xdm/Xsession. - - -K, --kdm4: Shortcut for --generate=/usr/share/apps/kdm/sessions - -g, --gdm: Shortcut for --generate=/etc/X11/dm/Sessions --wrap-sessions - -h, --help: Produce this help. EOF @@ -57,53 +50,17 @@ sub parse_file { # parse a session descriptor file # if (-x $e) { $script{$n} = $s; $exec{$n} = $e; $desc{$n} = $d; $icon{$n} = $i; push @lf, $n; } } -sub gen_desktops { - my ($d, $usesession) = @_; - -d $d or system("mkdir -p $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"; - print FH "[Desktop Entry]\n"; - print FH "Encoding=UTF-8\n"; - print FH "Name=$file\n"; - print FH "Comment=$file\n"; - print FH "TryExec=$exe{$file}\n" if $exe{$file}; - print FH "DesktopNames=$desktopnames{$file}\n" if $desktopnames{$file}; - if ($usesession) { - print FH "Exec=/usr/share/X11/xdm/Xsession $file\n"; - } else { - print FH "Exec=$file\n"; - } - print FH "Icon=\n"; - print FH "Type=Application\n"; - close FH; - chmod 0755, $file; - } -} - usage(1) if @ARGV < 1; while ($ARGV[0] =~ /^--/ || $ARGV[0] =~ /^-/) { $_ = shift; - if (/^--xsession=([^ ]+)/ || /^-x=([^ ]+)/) { - $xsession = $1; - } elsif (/^--first/ || /^-F/) { + if (/^--first/ || /^-F/) { $first++; - } elsif (/^--generate=([^ ]+)/) { - $generate = $1; - } elsif (/^--wrap-sessions/) { - $wrap_sessions++; - } elsif (/^--gdm/ || /^-g/) { - die "You should be root to build gdm session\n" if $< != 0; - $gdm++; } elsif (/^--list/ || /^-l/) { $list++; } elsif (/^-L/) { $list_order++; - } elsif (/^--kdm4/ || /^-K/) { - $kdm4++; } elsif (/^--test/ || /^-t/) { $test++; } elsif (/^--dir=([^ ]+)/ || /^-d=([^ ]+)/) { @@ -132,36 +89,6 @@ my ($e) = eval { cat("/etc/sysconfig/desktop") } =~ /DESKTOP=(\S+)/; # Order of names in @lf is otherwise unchanged. @lf = sort { $b =~ /^$e$/i <=> $a =~ /^$e$/i } @lf; - -if ($generate) { - gen_desktops($generate, $wrap_sessions); -} - -if ($kdm4) { - gen_desktops('/usr/share/apps/kdm/sessions', 0); -} - -if ($gdm) { - gen_desktops('/etc/X11/dm/Sessions', 1); -} - -if ($xsession) { - if ($script{$xsession}) { - print "#!/bin/sh\n"; - print $script{$xsession} - } else { - print "xterm -geometry 100x25+0+0 &\n"; - if ( -x '/usr/bin/icewm' ) { - print "icewm\n"; - } elsif ( -x '/usr/bin/twm' ) { - print "twm\n"; - } else { - print "xterm -geometry 67x14+384+446\n"; - } - } - exit (0); -} - @lf ? print shift @lf, "\n" : print "default\n" if $first; |