summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-misc/dsx/files/dsx-0.1')
-rw-r--r--x11-misc/dsx/files/dsx-0.172
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()
+