diff options
Diffstat (limited to 'x11-misc/dsx/files/dsx-0.1')
-rw-r--r-- | x11-misc/dsx/files/dsx-0.1 | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/x11-misc/dsx/files/dsx-0.1 b/x11-misc/dsx/files/dsx-0.1 new file mode 100644 index 000000000000..d8f5e7192928 --- /dev/null +++ b/x11-misc/dsx/files/dsx-0.1 @@ -0,0 +1,72 @@ +#!/usr/bin/env python +# dsx is Mandrakesoft's Xtart modified to work with a Gentoo Linux system. +# Gentoo doesn't use a wmsession.d directory, so we're going to accept the +# /etc/X11/Sessions executables as our menu and our command parameters. +# I also tried to increase the robustness of the entry checking and make the +# error messages less condescending. +# The 0 option for "no wm" was removed. I altered it to run option 1 instead. + +### Original copyright / license message from Xtart... ### +# This is an official linux-mandrake extension of the X windowing system for +# the benefit of Declan Moriarty Copyright 2001 by civileme@mandrakesoft all +# rights reserved. Use is hereby granted under the GNU General Publoic +# License version 2 or any future version of said license at the user's option +# +# No Warranty of course. +# This program is designed for those who want to work in concole and +# occasionally boot into window managers or who want to avoid theme +# persistence from one WM to another. +################ +import sys +import os +import popen2 +import string +import math +def complain(): + print 'X initiation aborted on invalid selection.' + sys.exit(0) + return +print +print 'Welcome to the Desktop Selector for X' +print +fspc=os.path.expanduser('~')+'/' +io=popen2.Popen3('ls /etc/X11/Sessions',1) +L=io.fromchild.readlines() +Sessions={} +Sessionkeys=[] +primekey=0 +for k in L: + primekey+=1 + name=k[:-1] + command='/etc/X11/Sessions/'+k[:-1] + Sessions[primekey]=(name, command) +Sessionkeys=Sessions.keys() +Sessionkeys.sort() +for j in Sessionkeys: + if os.system('[ -x '+Sessions[j][1]+' ]') == 0: + print j, Sessions[j][0] + pass +print +sys.stdin.flush() +s=raw_input('Enter the number of your desired desktop environment [1]: ') +if len(s)==0: + s='1' +if s=='0': + s='1' +for j in range(len(s)): + if string.find(string.digits,s[j]) == -1: + print "'" + s[j] + "' isn't a digit." + complain() +if len(s)>int(math.log10(primekey))+1: + print "That number is too big." + complain() +well=int(s) +wellformed=Sessions.has_key(well) +if wellformed: + os.execvp('xinit',Sessions[well]) +else: + print + print 'Your selection was invalid.' + print + complain() + |