#!/bin/sh declare -i count=1 # used as a reference throughout the script for desktop in $XDG_DATA_HOME/xsessions/*.desktop # looks at all the desktop files in /usr/share/xsessions do name[$count]=$(grep "Name" $desktop | sed "s/Name=/$count /g") # grabs the name and adds it to an array program[$count]=$(grep "Exec" $desktop | sed "s/Exec=//g") # grabs the path of the executable and adds it to an array count=$((count+1)) done name[$count]="$count TTY" # adds an option for TTY select=$(dialog --title "Jacob's Display Manager" --menu "Select a WM:" 0 0 0 ${name[*]} 3>&1 1>&2 2>&3 3>&-) # creates the menu box [ "$select" != "$count" ] && [ "$select" != "0" ] && export wm=${program[$select]} && startx # startx if TTY is not selected clear && cat /etc/motd # clears the ncurses prompt after executing and cat the message of the day file