ESPL: Extremely Simple Program Launchbar
Christopher Browne
cbbrowne-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org
Thu Dec 27 22:39:36 UTC 2007
On Dec 27, 2007 3:09 PM, Walter Dnes <waltdnes-SLHPyeZ9y/tg9hUCZPvPmw at public.gmane.org> wrote:
> I apologize if this is a dup, the original seems not to have gotten
> through.
>
> Thanks to those who replied to my question about simple menuing. I
> eventually settled on xmessage. What got me going originally, was a
> note on the pypanel homepage that the program was no longer under
> development. This got me looking for another launchbar program. There
> are several around. Unfortunately, they all seem to want to pull in 90%
> of the GNOME libs or 90% of the KDE libs, or a ton of Perl from CPAN.
> All I wanted was a program launcher on the bottom of the screen, where I
> could click a button, and launch a program.
>
> I go so annoyed that I ended up writing my own launchbar program...
> consisting of 18 lines worth of bash script! Hence the name "espl"
> (Extremely Simple Program Launchbar). I went about the process in a
> backwards manner. First, I made a sample ~/.esplrc config file...
>
> AbiWord /usr/bin/abiword
> Firefox /usr/bin/firefox -P default
> Freecell /usr/games/bin/xfreecell
> GIMP /usr/bin/gimp
> GoogleSearch /usr/bin/firefox -P default http://www.google.com
> gnumeric /usr/bin/gnumeric
> xterm /usr/bin/xterm -bg black -fg cyan -fn -*-fixed-medium-*-*-*-*-200-*-*-*-*-iso8859-1
>
> The layout consists of a text label *WITH NO EMBEDDED BLANKS*, followed by a
> program, and any required parameters. Next, I wrote a script to process
> the file...
>
>
> #!/bin/bash
> commandline="xmessage -geometry +0-0 -buttons EXIT:1"
> commandarray[1]=exit
> buttonpointer=2
> while read xlabel xcommand
> do
> commandarray[${buttonpointer}]=${xcommand}
> commandline="${commandline},${xlabel}:${buttonpointer}"
> buttonpointer=$(( ${buttonpointer} + 1 ))
> done < ~/.esplrc
> commandline="${commandline} -file /dev/null"
> commandpointer=0
> while [[ ${commandpointer} != 1 ]]
> do
> ${commandline}
> commandpointer=${?}
> eval ${commandarray[${commandpointer}]} &
> done
>
> The script reads ~/.esplrc, adds a label and returnvalue to the
> xmessage commandline, and populates commandarray with the commands and
> parameters. Clicking on button N returns a value of N, which is used to
> select commandarray[N] for launching. xmessage exits immediately after
> returning "${?}". The script launches the selected command in the
> background, and loops to launch another invocation of xmessage. Note
> that return code 1 is reserved for errors. I associate it with the
> "EXIT" button, so that an error will cause an exit. Here's my .xinitrc
>
>
> #!/bin/bash
> /usr/bin/bbkeys &
> /usr/bin/xterm -bg black -fg cyan -geometry 50x10+0+0 -fn -*-fixed-medium-*-*-*-*-200-*-*-*-*-iso8859-1 &
> /usr/bin/xterm -bg black -fg cyan -geometry +0+0 -fn -*-fixed-medium-*-*-*-*-200-*-*-*-*-iso8859-1 &
> ~/bin/espl &
> exec /usr/bin/blackbox > ~/.blackbox.log 2>&1
>
> This was intended as proof-of-concept, but it actually works quite
> well. On the todo list are things like...
> - getting it to ignore lines beinning with "#", i.e. comments
> - allowing to use a different config file
> - fancy colours
The system I'd be inclined to start with, in that it isn't
outrageously large, and in that it already includes a lot of this sort
of stuff, is TkDesk.
http://tkdesk.sourceforge.net/screenshots.html
--
http://linuxfinances.info/info/linuxdistributions.html
"The definition of insanity is doing the same thing over and over and
expecting different results." -- assortedly attributed to Albert
Einstein, Benjamin Franklin, Rita Mae Brown, and Rudyard Kipling
--
The Toronto Linux Users Group. Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists
More information about the Legacy
mailing list