एक बार मैंने खुद एक जिनी-जीयूआई लिखी। कम शब्दों में: यह init.d में फ़ाइलों के लिए दिखता है, केस स्टेटमेंट के लिए greps, और यह अनुमान लगाने की कोशिश करता है कि मक्खी पर क्या प्रदर्शित होना चाहिए।
शायद यह सभी सेवाओं के लिए अच्छी तरह से काम नहीं करता है, लेकिन मेरे काम के लिए (कप, पोस्टग्रैस्कल, ...) यह पर्याप्त है।
एक साइड नोट के रूप में, यह दिखाता है कि आपकी विंडो को गतिशील रूप से (अधिकतम) और सामग्री आकार (चौड़ाई, लंबाई) को स्क्रीन करने के लिए कैसे फिट किया जाए।
यह रहा:
#!/bin/bash
#
# oetv.sh
# Show all servives in /etc/init.d in a list, and let the user choose how to start it.
#
# (c) 2008 Stefan Wagner, license GPLv3
#
# Search /etc/init.d/ for all executable files
# Get their number, and the maximum name size to produce a fitting window
width=0
height=0
# The font will influence the optimal window size
# But I don't know how to get them.
# Probably depending on windowmanager, desktop, usersettings
function xyFromList
{
anz=0
wmax=0
for file in $1
do
anz=$((anz+1))
len=${#file}
[ $len -gt $wmax ] && wmax=$len
done;
width=$((wmax*9+50))
height=$((anz*26+160))
}
dienstlist=$(ls /etc/init.d/ )
xyFromList "$dienstlist"
dienst=$(zenity --width=$width --height=$height --list --text "Service schalten" --column "Dienst" $dienstlist)
[ "foo"$dienst == "foo" ] && exit
# select options for the service, and display an apropriate window
optionen=$(egrep -h "[a-z]+\)" /etc/init.d/$dienst | sed 's/^[ \t]*//;s/).*/)/;s/#.*//;s/)//g;s/|/ /g' | sort -u)
xyFromList "$optionen"
aktion=$(zenity --width=$width --height=$height --list --text "Service schalten" --column "Befehl" $optionen)
[ "foo"$aktion == "foo" ] && exit
result=$(gksudo /etc/init.d/$dienst $aktion)
zenity --info "$aktion" --text "$result"
मेरी वेबसाइट पर मेरे पास स्क्रीनशॉट, और जर्मन टिप्पणियाँ http://home.arcor.de/hirnstrom/minis/index.html#oetv.sh हैं