old-www/LDP/LG/issue01to08/linux_gazette.sep.html

2328 lines
82 KiB
HTML

<HTML>
<HEAD>
<TITLE>Linux Gazette September, 1995</TITLE>
</HEAD>
<BODY>
<H1><IMG ALIGN=MIDDLE SRC="./gx/homeboy_icon.gif">Linux Gazette September, 1995
</H1>
<H2>A Publication of the Linux HomeBoy WebPage Series</H2>
<H4>&quot;The Linux Gazette...<I>making Linux just a little more fun...!</I>&quot;
</H4>
<H5>
Copyright (c) 1995 John M. Fisk <I>fiskjm@ctrvax.vanderbilt.edu</I><BR><BR>
The LINUX GAZETTE is now a member of the LINUX DOCUMENTATION PROJECT.<BR>
For information regarding copying and distribution of this material see the
<A HREF="./copying.html">COPYING</A> document.<BR>
Linux Home Boy Pages logo created using <EM>David Koblas'</EM> excellent
program XPAINT 2.1.1
</H5>
<HR>
<H3>Welcome to the September edition of the <B>Linux Gazette !</B></H3>
<P>
Well, as you may have noticed, I've done a little bit of sprucing up around here.
In the interest of good <EM>net_person_ship</EM> I dropped the big .gif's in favor
of more modest sized icons. It <B>really</B> wads my shorts to do a bit of surfin'
and try loading up some graphics-bloated techno-wannabee webpage only to discover
after 5 minutes of loading up 170KB of graphics that there's <B>ABSOLUTELY NOTHING
</B> of substance there... just some self-congratulatory pointer to the next
bloated nothin'-burger vapor-page!
<P>
Arghhh...
<P>
And so, in the interests of more substance I did a bit of drawing using <B>Dave
Koblas'</B> excellent graphics program <B>XPaint 2.1.1</B> and sketched out a more
ecologically sound .gif image. Man, I felt kinda good about it... made me want to
go out and do something <EM>green</EM> like hug a whale or chain myself to a tree
somewhere :-)
<P>
(and no offense to the Mother-Earth-News-y kind of folks who do that stuff...)
<P>
Anyway, if you grew fond of the previous logo... sorry man, it's GHANDI! Also,
I wanted to write up a <EM>Quick-FAQ</EM> to answer a couple questions:
<H3>Linux Gazette <EM>Quick-FAQ</EM></H3>
<DL>
<DT><B>Are you planning to make an archived (tar-gzipped) version of the Gazette
available via anonymous FTP?</B>
<DD>Not at the present. I've been getting a fairly steady stream of mail
about the Gazette and only about 1 in 10 actually asked about this. I
really can't ask the kind folks at Tennessee CommNet to set up anonymous
FTP given the few responses I've gotten.
<P>
<B>BUT!!</B> don't fret! I've included a section on how to use your
trustly ol' browser to do this for you...
<P>
<DT><B>Are you planning to continue to make each of these issues available?</B>
<DD>Yup! The Gazette has turned into a huge amount of fun and I'm planning to
make every effort to continue to make it available in its entirety.
<P>
<DT><B>How often are you planning to post new editions?</B>
<DD>Well... about as often as I can :-)
<P>
I just started school once again and so, depending upon the semester and the
coursework, I'm trying to get them out about once a month.
<P>
<DT><B>So... how do I know when a new edition comes out?</B>
<DD>In August, I posted a notice to the <B>comp.os.linux.setup</B> newsgroup.
I think a number of you ran across this and found your way here. I'll continue
to post announcements about this in one of the newsgroups.
<P>
<DT><B>If I write something, will you put it in the Gazette?</B>
<DD>Hey! is the Pope catholic!?
<P>
You bet! If anyone has any ideas, suggestions, or tips I'd be happy to include
them. A number of you have already written with suggestions and I've tried to
include them where appropriate.
<P>
So, what would be helpful? Anything!
<P>
If you've run across something you think is pretty cool -- a great web site,
an awesome piece of software, a groovy (hmmm... I thought <EM>groovy</EM> died
out in 1969...) UNIX trick (and you couldn't convince Dave Letterman to let you
air it on latenight TV...) -- drop me a note!
<P>
Which leads me to a final point...
<P>
<DT><B>So what's the big idea behind the Linux Gazette?</B>
<DD>The whole idea is pretty simple...
<P>
Make LINUX just a <EM>bit</EM> more fun...
<P>
I've been running Linux now for about a year or so and it's been a HUGE amount
of fun. But it took a bit of reading and digging to start understanding what
it was all about. Pretty soon, I made this profound discovery:
<P>
<B>KNOWLEDGE = FUN</B>
<P>
Pretty simple, eh?
<P>
And so, that's what this is all about. Trying to share ideas and discoveries
so that you can start making LINUX do all those great things that you've wanted
it to do. Which is why I <B>really</B> appreciate all the notes and ideas.
</DL>
<H3>So what's in store for this issue?</H3>
<P>
Well, as promised in the last issue, this one's got a lot of ideas for fixin' up
and tinkering with <B>X Window</B> and, specificially, <B>FVWM</B> which is one
<EM>cool hombre</EM> of a window manager and the one that is generally installed
with Slackware, for all of us Slackware fans.
<P>
I've also thrown in a <B>new section</B> called <B>Quick Tips</B> which are, just
as the name implies...
<P>
Finally, since there were a few of you that DID ask about getting a copy of the
Linux Gazette, either in HTML or ASCII format, I've included a section on how to
do this for yourself...
<P>
sort of along the lines of &quot;give a man a fish -- feed him for a day, teach a
man to fish...&quot;
<P>
Anyway, it's pretty easy to do and very helpful if you come across something you
want to have a hardcopy of.
<P>
And so... Enjoy!
<HR>
<H2><A NAME="toc">Table of Contents</A></H2>
<H3>Topics in this <EM></EM> issue include:</H3>
<UL>
<LI><A HREF="#mail">Salutations and the MailBag</A>
<LI><A HREF="#saving">Saving WWWeb documents for posterity!</A>
<LI><A HREF="#tips">Some great 2&#162; Tips...</A>
<LI><A HREF="#fvwm">Introducing FVWM!</A>
<LI><A HREF="#fvwm_start">FVWM: Getting stuff going...</A>
<LI><A HREF="#fvwm_menus">FVWM: Adding programs to the Popup Menus</A>
<LI><A HREF="#fvwm_virtual">FVWM: Managing the Virtual Desktop</A>
<LI><A HREF="#fvwm_quicktips">FVWM: Quick Tips!</A>
<LI><A HREF="#xfmail">Product Testimonial: XFMail for Sendmail-less mail!</A>
<LI><A HREF="#colophon">Colophon</A>
</UL>
<HR>
<!--SECTION 1 -->
<!-- -->
<H2><A NAME="mail"><IMG ALIGN=MIDDLE SRC="../gx/mail.gif">Salutations and the
MailBag </A></H2>
<P>
Well, once again, I really want to thank the number of people who've dropped me
a note. I've tried hard to answer as many of these as I could personally. I wanted
to share a couple of these.
<P>
<IMG ALIGN=BOTTOM SRC="../gx/letter.gif"><B> Justin Gaither</B> wrote:
<P>
John, <BR>
Just found you. Looks great. I plan to be an avid reader.<BR>
two questions:<BR>
Do you plan to continue free access? or will it go the way of Linux Journal?<BR>
Where is the Sept issue?<BR><BR>
Thanks again, <BR><BR>
Justin Gaither
<P>
<H4>[Ed. Appreciate the compliment and the answers are yes, no, and right here!
The Linux Gazette is
strictly a personal project and meant to provide information to the Linux community
as a whole. This is admittedly geared towards the newbie/novice home Linux user
on a PC, but the information should be valid for all and will continue to be made
available to all.]</H4>
<P>
<IMG ALIGN=BOTTOM SRC="../gx/letter.gif">This very <I>practical</I> piece of advice
came from <B>Stephen Brown</B>:
<P>
Great stuff. I was running Linux for several months (and will be again shortly), and I always
wondered about that stupid motd thing. I was considering calling an exorcist, but deleted
Linux instead (that was not the reason...honest (g).
<P>
Anyway, here's a suggestion. Put your most recent issue at the top of the main page. For
example, list your issues like this:<BR><BR>
September 1995<BR>
August 1995<BR>
July 1995<BR>
<P>
This makes it more intuitive I think. Just an idea. Keep up the good work though. I'll
definitely be coming back.
<P>
-- Stephen<BR>
-- sbrown@unf6.cis.unf.edu
<H4>[Ed. This is <I>definitely</I> one of those &quot; why didn't I think of that
&quot; suggestions ;-). Thanks for pointing out the truly obvious. It's now
fixed!]</H4>
<P>
<IMG ALIGN=BOTTOM SRC="../gx/letter.gif">For all you gaming advocates out there,
<B>Mark &lt;enry@pebkac.tech-link.com&gt;</B> wrote:
<P>
I read your 'Linux toys' section and noted a lack of games.
One suggestion I have is for a game called abuse. It's a
platform-type game (unlike DOOM), but the graphics, sound,
and speed are quite impressive. Available in both X and
SVGALIB formats, it can be found at sunsite or its mirrors
at: /pub/Linux/games/video/linux-abuse.0.3.2.tar.gz
(BTW, it's a 2MB file - and portions of the game are written
in Lisp)
<P>
Enjoy and keep up the good work!
<H4>[Ed. Mark is very right... I started working on the Linux ToyBox over this
past summer and tried to find ftp'able links to a lot of what I had found to be
really nice software. Since I hadn't had much time for anything more than an
occasional game of Tetris, the games section is pretty sparce. I am VERY much
indebted to those of you, like Mark, that write to call my attention to some
useful and well-written piece of software. I haven't had the time this month
to update the other Home Boy pages... this will have to wait for a little bit
but should be done before too long. Again, THANKS!]</H4>
<P>
I'd like to reiterate that I truly appreciate folks taking the time to write
a note, especially those with ideas and suggestions. I've found that there's
a LOT of really great ideas written up in the various <B>comp.os.linux</B>
newsgroups and that new software for the Linux, and other flavors of PC UN*X,
system comes out almost daily.
<P>
I've tried to make the Gazette one more means of disseminating this information
to the Linux Community. Feelin' kinda patriotic about it...? Go ahead! drop
a note and add your ideas and suggestions... then go celebrate and burn a couple
Windows disks! You'll feel much better about yourself ;-)
<P>
Anyway, enjoy!
<P>
<A HREF="#toc"><IMG ALIGN=BOTTOM SRC="./gx/toc.gif"></A>
<A HREF="mailto: fiskjm@ctrvax.vanderbilt.edu"><IMG ALIGN=BOTTOM SRC="./gx/sendmail.gif"></A>
<A HREF="./gazette_toc.html"><IMG ALIGN=BOTTOM SRC="./gx/index.gif"></A>
<A HREF="./linux/linux.html"><IMG ALIGN=BOTTOM SRC="./gx/home.gif"></A>
<BR><BR>
<HR>
<!--SECTION 2 -->
<!-- -->
<H2><A NAME="saving"><IMG ALIGN=BOTTOM SRC="../gx/text.gif">Saving WWWeb documents for
posterity!</A></H2>
<P>
[<B>Caveat!</B> This is NOT meant to insult anyone's intelligence! Honest. I've
simply included it this month since I can't offer a downloadable version of the
Linux Gazette and there have been a few folks who wanted to know how they could
get a copy of it to set up on their machines at home. Since there's generally
little harm in <B>stating the obvious</B>, I'll proceed...]
<P>
Well, as promised, here's a short section on how to save a hardcopy of all those
cool and nifty web sites you've recently been visiting. You know... like the 'ol
Linux Gazette :-)
<P>
This is <EM>too</EM> easy and once you know how, you can fill up your HD with all
kinds of great stuff that you've scavenged from the 'Net. You see, the two most
popular browsers around -- <B>Mosaic</B>, and all of its children, and <B>Netscape</B>
both easily save HTML documents to disk in one of three formats:
<UL>
<LI>source (<EM>i.e.,</EM> as HTML)
<LI>postscript format which, BTW, includes the graphics
<LI>and plain text with the HTML tags removed
</UL>
<P>
This makes saving stuff <B>very</B> easy to do. You simply load up the document
that you're interested in... say... the current edition of the Linux Gazette, and
then you click on the <B>FILE</B> menu, which then offers to let you do a
<B>save as...</B>. That's the baby you'll want.
<P>
Now, you'll be given the choice of formats in which to save the document. If you
want to browse it later on using a Web browser, save it as <EM>source</EM>. If
you've got LOTS of harddrive real estate and a PostScript printer (what are
<EM>YOU</EM> doing with a PostScript printer!) or have <B>ghostscript</B> up and
running and your printer has enough memory to print at a decent resolution
(remember, to print at 300 dpi you'll need at least 1.5MB of printer memory if
you're planning to use use ghostscript) then save the document as <EM>postscript</EM>.
And finally, if you want a plain 'ol text version that you can look at or print up
later on, simply save the file as <EM>text</EM>.
<P>
Pretty easy, eh?
<P>
Well, that's not all yet!
<P>
If you're using Netscape you have another small, but too-way-cool trick up your
sleeve. You can also <B>save the images as well!</B> To do this, just click on
an image using the RIGHT mouse button. A pop-up menu appears and down at the
bottom of the menu you'll see the choice:
<PRE>
Save this image as...
</PRE>
<P>
Bingo! That's what you'll want. If you use the default name, it will be the same
as the one in the HTML source.
<P>
Ah ha! you say...
<P>
Yup, you got it... you can save the document as a source file and then save the
images to disk and <EM>voila!</EM>... instant full text and inline image laden
document browsable in the comfort of your own home even when you're not connected.
<P>
Cool, eh?
<P>
So, want to practice? OK, go ahead and save this file and then go through and
save all those itsy-bitsy .GIF images and you'll have your own copy. I'll tell
you, too, that I've set up the files so that the source HTML documents are in
one directory (fiskhtml) and the images and miscellaneous stuff each are in
their own directories at the same level:
<P>
Like this:
<UL>
<LI>parent directory
<UL>
<LI>fiskhtml -- put *.html files here
<LI>gx -- put *.gif and *.jpg files here
<LI>misc -- put miscellaneous stuff here
</UL>
</UL>
<P>
So, if you want to set up a repository of Gazette files, simply make three
directories -- fiskhtml, gx, and misc -- and then put *.html in the fiskhtml (or
whatever you want to call it) directory, *.GIF's in the gx directory, and all
the rest of the stuff in the misc directory. That way, all the images will
load up without your having to edit the source file.
<P>
That should help the majority of you! Now, for the few of you using <B>Lynx</B>
I'm afraid I'm not going to be much help. I do have Lynx on my system and I've
used it a bit. I can't say that I'm enamoured with it. It will save documents
to disk, but so far, I've not had much success getting it to work reliably for
me. I installed a precompiled binary with the config files. The documentation
was a bit scant and so I haven't used it much.
<P>
So... if there are any Lynx users out there, drop me a note and let me know how
things are going!
<P>
<A HREF="#toc"><IMG ALIGN=BOTTOM SRC="./gx/toc.gif"></A>
<A HREF="mailto: fiskjm@ctrvax.vanderbilt.edu"><IMG ALIGN=BOTTOM SRC="./gx/sendmail.gif"></A>
<A HREF="./gazette_toc.html"><IMG ALIGN=BOTTOM SRC="./gx/index.gif"></A>
<A HREF="./linux/linux.html"><IMG ALIGN=BOTTOM SRC="./gx/home.gif"></A>
<BR><BR>
<HR>
<!--SECTION 3 -->
<!-- -->
<H2><A NAME="tips"><IMG ALIGN=BOTTOM SRC="../gx/text.gif">Some great 2&#162; Tips!
</A></H2>
<P>
Well, as the name implies, this is a selection of <EM>quick tips</EM> which
are fast and easy try out.
<P>
As usual, most of this stuff has been culled from a variety of sources: newsgroups,
books, FAQ's, HOWTO's, LDP stuff, manpages (yes Virginia, there <EM>really is</EM>
useful stuff in those manpages...) and README's. Wanna make LINUX fun...?
<P>
READ!
<P>
Got any ideas or suggestions? Pass 'em along...
<P>
<H3><IMG ALIGN=BOTTOM SRC="./gx/opus.gif">Quick virtual terminal (vt) change!</H3>
<P>
Hey, you know that LINUX 1.2.x will give you up to <EM>63 virtual terminals</EM>
and that you can ALT-Fn to them easily. (you know... ALT-F1 to the first, ALT-F2
to the second...) But did you know that you can also do this from the keyboard?
<P>
Yup, if you've installed the <B>kbd</B> package (which is included with the basic
Slackware distribution) not only can you map out your keyboard to whatever you
choose, but you can also use the little prog <B>chvt</B> that'll let you switch
from vt to vt.
<P>
Just type in: <KBD>chvt 3</KBD> to change to the 3rd virtual terminal,
<KBD>chvt 4</KBD> to change to the 4th virtual terminal, and so forth. Easy.
AND, if you are a single-letter-command type of person, you can just <B>alias</B>
it to: <B>alias j='chvt'</B> and then type in <KBD>j 3</KBD> to jump to the
third vt.
<P>Nifty, eh?
<H3><IMG ALIGN=BOTTOM SRC="./gx/opus.gif">Cleaning the screen at logout </H3>
<P>
You know how after you've been using several vt's for a while and want to exit
out that typing in <B>logout</B> still leaves you with a bit of a screen mess.
<P>
Kinda unsightly...
<P>
Well, there was a newsgroup thread a while back that bantered about the question of how
to clean up after this so that you started with a nice fresh display after logging
out. Several ideas were offered but the one that seemed the easiest was simply to
add the following to /etc/profile:
<PRE>
alias exit='clear && logout'
</PRE>
<P>
Pretty simple, eh? All it does is invoke two commands whenever you decide to
logout of a vt... the first simply <B>clears</B> the screen and then proceeds
to run <B>logout</B>. Nice and tidy. If you didn't want to make this a global
alias (since /etc/profile sets the environment for ALL logins) you could as
easily put it in your ~/.bash_profile or ~/.cshrc so that it is invoked only
for a specific user.
<H3><IMG ALIGN=BOTTOM SRC="./gx/opus.gif">Changing your HOST name </H3>
<P>
Well, you're <EM>really</EM> getting tired of having your LINUX BOX referred to
as <B>WussyCakes</B> just because your techno-dweebe buddies got on when you
weren't around and changed your hostname and you can't figure out how to get it
back.
<P>
Relax. This one's easy...
<P>
I'm not sure if this one will work if you <EM>haven't</EM> compiled in TCPIP
networking support into your kernel... but you can give it a try. The quickest
way to to this is simply to invoke the program <B>hostname</B>. If you invoke
it without any arguments, then it'll display your current hostname. If you invoke
it as
<PRE>
hostname SuperBadHombreLINUXBox
</PRE>
then it'll happily set your hostname to &quot;SuperBadHombreLINUXBox&quot; which is
probably not the greatest idea... but it can be done. Also, if you invoke it as
<KBD>hostname -f </KBD> you'll get the full DNS name of your box such as
&quot;MyLinuxBox.MyUniversity.Edu&quot;. If you need a bit of quick help, just
read the manpage or simply invoke it with the &quot; -h &quot; option to get a
quick summary of command line options.
<P>
A more permanent solution is simply to edit the /etc/HOSTNAME file. The way this
works (again, at least with the Slackware distribution...) is that there's a
stanza in the /etc/rc.d/rc.M file that reads the hostname from /etc/HOSTNAME and
passes it to the <B>hostname</B> program each time you boot the system. Ever
wondered where the &quot;darkstar&quot; name came from...
<PRE>
# If there's no /etc/HOSTNAME, fall back on this default:
if [ ! -r /etc/HOSTNAME ]; then
echo "darkstar.frop.org" > /etc/HOSTNAME
fi
# Set the hostname. This might not work correctly if TCP/IP is not
# compiled in the kernel.
/bin/hostname `cat /etc/HOSTNAME | cut -f1 -d .`
</PRE>
you'll find these stanzas in the <B>rc.M</B> file. Looking at it quickly you'll
see that it first tests for the presence of the /etc/HOSTNAME file (the first
if...fi statement). If there's no /etc/HOSTNAME file present, it decides to call
your box &quot;darkstar.frop.org&quot; by creating the /etc/HOSTNAME file for
you and then feeding this information to the <B>hostname</B> program.
<P>
So... all you have to do is decide on some too-way-cool name for your box, edit the
/etc/HOSTNAME file and then run the final command:
<PRE>
/bin/hostname `cat /etc/HOSTNAME | cut -f1 -d .`
</PRE>
to immediately set the new hostname.
<P>
Like I said, this is <EM>too</EM> easy...
<H3><IMG ALIGN=BOTTOM SRC="./gx/opus.gif">Screen blanking </H3>
<P>
While we're rooting around the /etc/rc.d/rc.M file...
<P>
There's another really handy little program that does all kinds of fun stuff...
<B>setterm</B>. Now, like a lot of great little UNIX progs, you can <EM>really</EM>
hose yourself if you recklessly start messing with this... it probably won't
permanently break anything, or then again, it might... ;-), but, what's cool about
it is that it'll let you set a terminal color scheme, AND, how long it waits until
it blanks your screen.
<P>
You know, you walk away and come back after a coke and bag 'o Nachos and find that
some kindly UNIX gnome has blanked your screen for you so you don't burn a hole in
your phosphors. Well, you can set that time-out to whatever you want.
<P>
You'll find the line:
<PRE>
# Screen blanks after 15 minutes idle time.
/bin/setterm -blank 15
</PRE>
in the rc.M file. Simply change the &quot; -15 &quot; to whatever value in minutes
that you want. Editing the file makes the change permanent and takes effect the
next time you boot the system. To change it right away, simply type in
<KBD>setterm -blank n</KBD> where &quot; n &quot; is whatever time in minutes you
want to wait for screen blanking.
<H3><IMG ALIGN=BOTTOM SRC="./gx/opus.gif">Running <I>splitvt</I> </H3>
<P>
Here's a great little program that I <EM>just</EM> ran across a couple days ago.
I recently had to reinstall Linux (as well as DOS, OS/2 Warp, Win 3.1...) after
deciding to upgrade to a 850MB second HD. I <EM>won't</EM> go into all the
horrific details, but it was a bit of a mess for a few days...
<P>
Anyway, during the installation, as I watched the Slackware installation dialog
boxes merrily flip by... one of the utility programs caught my eye. So, I jotted
down the name of the program, and after installation was done, tried running the
thing... <B>splitvt</B>.
<P>
This is a too-way-cool little program that'll let you run two shells in a split
screen fashion. &quot; So what's so cool about <EM>that</EM>...&quot; you ask,
since you've already told us that we've got 63 virtual terminals to choose from?
Well, you're right, except that it lets you run two programs and watch the output
<EM>from the same screen</EM>.
<P>
For example, if you read the manpage for it, it gives you a suggested ~/.splitvtrc
run-command file that would fire up a split screen with two login shells, and run
the program <B>top</B> in the bottom half. That way, you'll have a dynamic display
of your current CPU and memory usage while you merrily work away at some task in
the top screen. If you've ever used the split screen function in the <B>VIM</B>
editor, you'll know what I mean.
<P>
I tried using it with a couple PPP login scripts I've been working on. I have one
script that does auto-redial to the local university's PPP comm server (see last
month's Linux Gazette for the file) and another one, which I recently wrote, that
hangs around waiting for the /var/run/ppp0.PID file to appear, indicating a PPP
connection had been established. Once it finds it, it automatically updates the
/etc/hosts file (since the school does dynamic IP addressing), POP's my mail
from the mail server and plunks it in the /var/spool/mail/root file, and then
starts periodically pinging the gateway host to keep the connection up. Running
it in the split screen let's me see what's going on with both progs as they run.
<P>
Mucho cool.
<P>
The beauty of this program is that it's <EM>really simple</EM> to use and set up.
The man page is clearly written and gives an example rc file. You can also
configure it to start up running two programs automatically, but specifying
<PRE>
run -upper first_program
run -lower second_program
</PRE>
in the ~/.splitvtrc file. I'm sure that there are some fun things that can be
done with this. We'll see...
<P>
<A HREF="#toc"><IMG ALIGN=BOTTOM SRC="./gx/toc.gif"></A>
<A HREF="mailto: fiskjm@ctrvax.vanderbilt.edu"><IMG ALIGN=BOTTOM SRC="./gx/sendmail.gif"></A>
<A HREF="./gazette_toc.html"><IMG ALIGN=BOTTOM SRC="./gx/index.gif"></A>
<A HREF="./linux/linux.html"><IMG ALIGN=BOTTOM SRC="./gx/home.gif"></A>
<BR><BR>
<HR>
<!--SECTION 4 -->
<!-- -->
<H2><A NAME="fvwm"><IMG ALIGN=BOTTOM SRC="../gx/text.gif">Introducing FVWM!</A></H2>
<P>
Welcome to the wonderful world of <B>FVWM</B> and of <B>X</B>! There's so much
cool stuff that you can do with X Window and the various window managers such
as <B>fvwm, twm, mwm, olvwm, gwm, and so on</B> that it boggles the mind. And
when <EM>was</EM> the last time your mind was boggled...?
<P>
As most of you know, the <B>fvwm</B> program stands for <B>F.... Virtual Window
Manager</B>. The meaning of the &quot; F... &quot; has apparently been lost
somewhere in antiquity with no original manuscripts extant to shed light on its
true meaning. Still, if you read the docs, there have been suggestions that it
might stand for &quot; Feeble, Fun, Fantastic ... &quot;. Who knows.
<P>
What <EM>is</EM> known is that it is one awesome window manager written specifically
for the LINUX OS and based upon the code of one of the original window managers --
<B>twm</B> (which, BTW, stands for <EM>Tabbed Window Manager</EM>). It is reported
to have a much more modest memory appetite than the original twm and is a LOT more
customizable.
<P>
Just <EM>how</EM> customizable is something that I'll probably be spending a couple
issues of the Gazette writing about.
<P>
It is just <EM>too way COOL</EM>!
<P>
Anyway, I'm going to make a couple modest assumptions:
<UL>
<LI>you've gotten X Window running
<LI>you're using a Slackware distribution or one similar to it
<LI>you're running fvwm as your window manager.
</UL>
If you've installed the Slackware 2.2.x or greater distribution you've probably
installed it and found that it's the default window manager. Good choice.
<P>
<B>Now, let's see what we can do with it.</B>
<P>
First, the file you'll want to edit to do all kinds of fun stuff is either:
<PRE>
/usr/X11R6/lib/X11/fvwm/system.fvwmrc OR,
~/.fvwmrc
</PRE>
Most fvwm distributions come with all kinds of goodies, including a very nicely
commented and organized <B>system.fvwmrc</B> file. It is a good default to start
with and is well commented enough that you can make a lot of adjustments right
from that file.
<P>
<B>ONE CAVEAT!!</B> Don't forget to have or make a backup of the original file,
as well as any that are modified that actually <EM>work</EM>! That way, if
something breaks, you'll have a backup. If you don't make a backup somewhere,
you'll be digging through piles of disks or scouring your CD looking for a
copy of the initialization file.
<P>
Be prudent. Practice safe X.
<P>
There's one other suggestion that holds for messing around with ANYTHING with
Linux... consider a notebook and pen essential hackers equipment.
<P>
Why? Because sooner or later you'll stumble across some absolutely awesome
utility, gadget, or doodad (<EM>doodad</EM>??) and you'll spend a hour reading
the manpage, going over the README's, and hacking away at the command line
options to get it to do just what you want it to do... and it works GREAT!
<P>
Then, a couple weeks later, you're hanging around with a couple bud's and you
decide to impress them with your LINUX wizardry... <EM>Yup, they're going to
be PRETTY impressed with you when you show them... uhhh...hmmm, now how did
I do that...?</EM>
<P>
You get the point.
<P>
Write this stuff down.
<P>
Anyway, with that said, you're ready to hack! One of the first things you'll
probably want to do is configure your desktop. This is one of the greatest
examples of the process of &quot; step-wise refinement &quot; that I can think
of. Over the course of a couple months you'll probably change your setup a
couple dozen times or more as you discover things that you can do with fvwm.
<P>
And so, let's begin!
<P>
<A HREF="#toc"><IMG ALIGN=BOTTOM SRC="./gx/toc.gif"></A>
<A HREF="mailto: fiskjm@ctrvax.vanderbilt.edu"><IMG ALIGN=BOTTOM SRC="./gx/sendmail.gif"></A>
<A HREF="./gazette_toc.html"><IMG ALIGN=BOTTOM SRC="./gx/index.gif"></A>
<A HREF="./linux/linux.html"><IMG ALIGN=BOTTOM SRC="./gx/home.gif"></A>
<BR><BR>
<HR>
<!--SECTION 5 -->
<!-- -->
<H2><A NAME="fvwm_start"><IMG ALIGN=BOTTOM SRC="../gx/text.gif">FVWM: Getting stuff
going...</A></H2>
<P>
So, how do you get all kinds of cool stuff to come popping up when you fire up X?
<P>
Glad you asked.
<P>
There are a couple ways to do this, but one of the easiest is to let <B>fvwm</B> do
it for you. Without getting too bogged down in discussing the concept of &quot;
built-in functions &quot;, suffice it to say that fvwm is more than willing to
manage getting programs up and running each time it starts.
<P>
Parenthetically, once you've gotten X and fvwm up and running there are four
basic means of getting programs running:
<UL>
<LI>invoke it from the command line in an xterm
<LI>add it to the popup FVWM menu
<LI>add it to the GoodStuff button bar menu
<LI>use another program (such as <B>xfm</B>) to launch it
</UL>
<P>
Since this deals with the programs that are started <EM>at the time of initialization
</EM> I'll stick to how to do this using the system.fvwmrc or your ~/.fvwmrc
file.
<P>
So, AFTER you've made a backup of the original fvwmrc file go to the section
entitled &quot; Stuff to do at startup &quot;. In mine, it now looks something like
this:
<PRE>
#############################################################################
#
# START-UP CONFIGURATION
#
# Functions: InitFunction
# RestartFunction
#
# Stuff to do at start-up
# This is an example of a complex function definition. It is a special case
# in that "InitFunction" is called when fvwm is started for the first
# time and is generally used to start modules, set background patterns,
# and begin programs. "RestartFunction" is called whenever fvwm is
# restarted and generally starts modules and sets background patterns.
# It probably should NOT be used to start programs.
#
# This defines the fvwm complex functions "InitFunction" and "RestartFunction"
Function "InitFunction"
# Module "I" FvwmBanner
# Exec "I" xpmroot /usr/include/X11/pixmaps/fvwm.xpm &
# To begin with, get the FVWM GoodStuff button bar running
Module "I" GoodStuff
# Module "I" FvwmPager 0 3
# Then, the analog clock - Swallowed by GoodStuff
Exec "I" exec xclock -bg SaddleBrown -fg HotPink -hd white -g 140x160-145+138 &
Wait "I" xclock
# Make sure the xmailbox prog is up and running - swallowed by GoodStuff
Exec "I" exec xmailbox &
Wait "I" xmailbox
# Now, fire up xload - swallowed by GoodStuff
Exec "I" exec xload -bg SaddleBrown -fg HotPink -nolabel -jumpscroll 1 -update 2 -geometry 80x80+100+100 &
Wait "I" xload
# Next, the digital clock
Exec "I" exec xclock -d -g 232x50+793+5 -bg SaddleBrown -fg white -update 1 &
Wait "I" xclock
# Now, start up xcalendar
Exec "I" exec xcalendar -g 345x382+793+372 &
Wait "I" xcalendar
# Xman program, which we'll use without a titlebar
Exec "I" exec xman -g +793+274 &
Wait "I" xman
# Finally, fire up a full screen xterm
Exec "I" exec xterm -sb -sl 500 -j -ls -fn 9x15 -g 84x48+4+4 &
Wait "I" xterm
EndFunction
Function "RestartFunction"
# Exec "I" xsetroot -solid "#266294"
# Module "I" GoodStuff
# Module "I" FvwmPager 0 3
EndFunction
#
# End of STARTUP configuration
##############################################################################
</PRE>
All the stuff between the <B>Function &quot;InitFunction&quot;</B> and
<B>EndFunction</B> defines what programs fvwm will start up at initialization.
<P>
The easiest way to configure this is to use one of the programs as an example!
There are three basic patterns:
<UL>
<LI><B>Exec</B> which will execute a command
<LI><B>Wait</B> which will wait for a window to appear on the desktop before
proceeding with the next command
<LI><B>Module</B> which will fire up one of fvwm's <B>modules</B> such as
the GoodStuff buttonbar or FvwmPager.
</UL>
<P>
The function <B>Exec</B> is one of fvwm's built in functions that will execute
a command. This is probably the one that you'll use the most often. For example,
let's say that you want to add some great new program to your start up... you've
discovered the program <B>xmailbox</B> (which really <EM>is</EM> is a great
program) and you decide that you want to start this up every time you start X.
<P>
This is easy.
<P>
First, get out your pen and notebook.
<P>
Do it.
<P>
Once you start up X and fvwm you'll need one of those handy-dandy xterms to get
stuff going. Presuming you've installed <B>xmailbox</B> you can invoke it at
the command line in an xterm. Just type in <KBD>xmailbox &amp;</KBD> and it's
up and running! It'll probably be in the form of an outline which will allow
you to put it somewhere. Ok, drop it somewhere.
<P>
Now, using the left mouse button you can generally resize your application if it
has those little &quot; L &quot; shaped <B>handles</B> at each of the four corners.
Clicking on one of these corners allows you to resize the window; clicking and
dragging on the titlebar or one of the side borders allows you to move the
window around.
<P>
When you move the window, you'll notice a little blue window up in the upper left
hand corner with a couple numbers, such as <B> +5 +180</B>. Those indicate
where the <EM>upper lefthand corner</EM> of the window is located relative to
the root window. Keeping in mind that the upper lefthand corner of the root window
(the &quot;desktop&quot;) is 0,0 then every window is some distance in <B>pixels</B>
from the left and the top of the desktop.
<P>
When you get the application window where you want it, write those numbers down.
You'll need them.
<P>
Since we're talking about placing windows on your desktop, this is a good place to
digress for a moment and talk about...
<H4><A NAME="window_geom">Window Geometry</A></H4>
<P>
The basic idea is pretty simple. When you set up the <B>XF86Config</B> file you
had to indicate the size of the &quot;virtual desktop&quot;. This meant that if
your video card had enough RAM, you could make the desktop screen larger than the
physical screen of your monitor. For example, I've got a Cirrus CL-G5428 card
and am running X at about 800x600. Yet my virtual desktop is max'd at 1152x900.
So, when I move the mouse around, the desktop shifts.
<P>
Very cool.
<P>
Anyway, those dimensions are in pixels... my entire desktop is 1152 pixels <B>wide</B>
by 900 pixels <B>high</B>. For all you math type folks, that's
<P>
x = 1152 on the horizontal axis<BR>
y = 900 on the vertical axis
<P>
This is the basis of geometry. The &quot;+&quot; sign means the <EM>distance in
pixels from the LEFT or TOP of the screen</EM> and a &quot;-&quot; sign means the
<EM>distance from the RIGHT or BOTTOM of the screen</EM>.
<P>
Actually, that's a bit of a lie. If you use the &quot;+&quot; sign, it indicates
distance in pixels of the <EM>left border of your application window to the left
border of the screen</EM> or the <EM>top border of your application window to the
top border of your screen.</EM>
<P>
If you use the &quot;-&quot; sign, it really indicates the distance in pixels of
the <EM>right border of your application window to the right border of your screen
</EM>, or the <EM>bottom border of your application window to the bottom window
of the screen</EM>.
<P>
To convince yourself of that try a simple experiment: enter the following
commands in an xterm window and see where the window ends up:
<UL>
<LI>xterm -g +0+0 &amp; (which puts the xterm in the upper left corner)
<LI>xterm -g +0+200 &amp; (the xterm is flush along the left border but now
is 200 pixels from the top of the screen)
<LI>xterm -g +200+0 &amp; (the xterm is now flush along the top of the screen
but is 200 pixels from the left border)
<LI>xterm -g -0-0 &amp; (which puts the xterm window flush along the bottom
right corner of the screen
<LI>xterm -g -0-200 &amp; (the xterm is now flush along the right border of the
screen but 200 pixels above the bottom border)
<LI>xterm -g -200-0 &amp; (the xterm is 200 pixels away from the right border
of the screen but flush along the bottom border)
</UL>
<P>
Try these out and it'll help you get the concept of placing windows. Keep in
mind that the basic format is <B>+/- Horizontal +/- Vertical</B> placement.
<P>
For example, if you wanted to put xmailbox 20 pixels from the left border and
100 pixels from the top border, you'd indicate this by typing in:
<PRE>
xmailbox -geometry +20+100 &amp;
</PRE>
If you're using the stock fvwmrc file, you should also have another very handy
little gadget called <B>FVWMWinList</B>. This keeps track of all your apps that
are opened. One of the cool things that it includes is the geometry of the
window -- this includes the location and the size.
<P>
So, once you've placed xmailbox where you want it, and used the handles at the
four corners to make it larger or smaller, click the <B>right mouse</B> button
to get the FvwmWinList to pop up. From there, you should see a listing of all
your programs, including xmailbox!
<P>
Now, write down the numbers, which might be something like &quot;0:+20+100x60x100&quot;.
Let's decipher this:
<P>
The FvwmWinList module displays a series of buttons with two pieces of information:
the <B>name</B> of the application (actually, the <EM>window title</EM>), and
the <B>window geometry</B>. It is the window geometry that we'll be interested
in. The size and the location of the window are indicated by the series of numbers
following the &quot;0:&quot;. The first two numbers indicate the location of the
window. Geometry is always in the form:
<P>
<B>+/- Xposition +/- Yposition</B>
<P>
So, in this case, it's 20 pixels from the left border and 100 pixels from the top.
<P>
And finally, the window size is 60 pixels wide, by 100 pixels high. The size
of a window is always in the form:
<P>
<B>Width x Height</B>
<P>
<B>PHEW!!</B> Almost done...
<P>
So after this minor digression, let's see where we stand. You've written down
the location and the size of the window, now it's time to edit the fvwmrc file.
If you want to start a program, the basic form is:
<PRE>
Exec "I" exec program_name [-options] -geometry WidthxHeight+xpos+ypos &amp;
</PRE>
So, to start up xmailtool with no options, you'd include a line like:
<PRE>
Exec "I" exec xmailtool -geometry 60x100+20+100 &amp;
</PRE>
in the above section and <EM>voila!</EM>, there it is.
<P>
To further customize this, you can add ANY options that you'd normally type in
at the command line. <B>One important point!</B> Don't forget to put the
ampersand &quot; &amp; &quot; at the end of the command line.
<P>
So, now you can go back and do the same for ANY other program! Jot down the
geometry of the window, any command line options, exit out of X, edit your
system.fvwmrc or your ~/.fvwmrc file and restart X!
<P>
So what's the &quot;Wait&quot; thingy for...? Well, if you want a program to
be started using the method described above, you'll probably want to put a
stanza below it with the following form:
<PRE>
Wait "I" xmailbox
</PRE>
<P>
You don't need an ampersand (&amp;) at the end of the line. What this does, is
force fvwm to wait until a window with the title &quot;xmailbox&quot; is drawn
on the screen. It essentially keeps fvwm from just plowing ahead with the rest
of the initialization stuff while your poor program is trying to load up.
<P>
So what happens if you don't do this?
<P>
Search me...
<P>
This is what the docs recommend... and they're the guys that wrote this thing...
I don't know, maybe something aweful happens... maybe it crashes, or dumps core,
or maybe Tammie Fae gets her own talk show, or maybe another Democr... (ok, ok...
I'll desist...)
<P>
If you want to fire up one of the modules such as the GoodStuff button bar or
the FVWMPager, you use a similar format:
<PRE>
Module "I" GoodStuff
</PRE>
Notice that you don't need the ampersand at the end of the line. I'll be messing
around with GoodStuff and FVWMPager a little later on, so I'll hold off mentioning
much about either of them right now.
<P>
Well, that's pretty much it! It really is a LOT easier to do, than to explain.
The best suggestion is to experiment. And don't forget that notebook... :-)
<P>
<A HREF="#toc"><IMG ALIGN=BOTTOM SRC="./gx/toc.gif"></A>
<A HREF="mailto: fiskjm@ctrvax.vanderbilt.edu"><IMG ALIGN=BOTTOM SRC="./gx/sendmail.gif"></A>
<A HREF="./gazette_toc.html"><IMG ALIGN=BOTTOM SRC="./gx/index.gif"></A>
<A HREF="./linux/linux.html"><IMG ALIGN=BOTTOM SRC="./gx/home.gif"></A>
<BR><BR>
<HR>
<!--SECTION 6 -->
<!-- -->
<H2><A NAME="fvwm_menus"><IMG ALIGN=BOTTOM SRC="../gx/text.gif">FVWM: Adding programs
to the Popup Menus</A></H2>
<P>
FVWM gives you LOTS of ways to launch programs and one of the easiest and most
flexible is to add your programs to the popup menu that you can call up by
clicking the Left mouse button on any free space in your root window. The default
menus are pretty useful, until you begin to notice two problems:
<UL>
<LI>the menus contain programs that you <EM>don't</EM> have on your system
<LI>the menus lack many programs that you <EM>do</EM> have on your system
</UL>
Wanna fix that?! It really is pretty easy.
<P>
Again, the same caveats and such hold here as in the previous section... you'll
need (i) to make a backup of the fvwmrc file BEFORE you start hacking away on it,
and (ii) you'll want to have pen and notebook handy to jot down commandline
options and geometry stuff as well as notes to yourself.
<P>
Once you've done this, you're ready to start!
<P>
First you'll need to make sure that you've jotted down the command line stuff
that you'll want for your program. Do you need it? Nope. You can usually
get away with just invoking most programs without any information at all.
There are usually default resources already defined and the app will work just
fine.
<P>
But, if you want to customize an application's appearance such as change the
font it uses, or the background/foreground color scheme, or you want to invoke
it with a series of specific options, or you want it a certain size or in a
certain location... if you want any of these, you'll need to tinker around with
invoking the program from an xterm using various options until you get it just
the way you want it.
<P>
Again, to use an example, suppose you wanted to add a bunch of graphics programs
to the popup menu. You've added <B>xpaint, xbmbrowser, and pixmap</B> programs
and you want to create a popup menu for them. You've also decided that you want
xbmbrower and pixmap to start up full screen at a size of 790x590 pixels. Ok,
armed with this you're ready to go.
<P>
First, however, a couple concepts.
<P>
Basically, the way to handle creating Popup menus using fvwm involves three
steps:
<UL>
<LI>First, all the <EM>submenus</EM> are defined (such as Applications,
Graphics, Screensavers, Xterms, and so forth)
<LI>Next, a main popup menu is defined that invokes the various submenus so
that clicking on that entry pops up the submenu
<LI>Finally, the main menu is bound to a mouse button or keyboard key.
</UL>
For the moment, we'll only concern ourselves with the first two steps since
the default fvwmrc file takes care of binding the default menu to the left
mouse button which it's clicked on the root window.
<P>
So, let's proceed.
<P>
First, let's create the submenu for the graphics apps you want. To define a
popup function for fvwm you'll use the following format:
<PRE>
Popup "Popup_Name"
Title "Popup_Menu_Title"
Exec "Menu_Item" exec program_name [-options] &amp;
Exec "Menu_Item" exec program_name [-options] &amp;
Exec "Menu_Item" exec program_name [-options] &amp;
Exec "Menu_Item" exec program_name [-options] &amp;
Nop ""
Exec "Menu_Item" exec program_name [-options] &amp;
Exec "Menu_Item" exec program_name [-options] &amp;
Exec "Menu_Item" exec program_name [-options] &amp;
Exec "Menu_Item" exec program_name [-options] &amp;
EndPopup
</PRE>
Ok, so what's going on here...
<P>
The function is defined by the reserved words <B>Popup</B> and <B>EndPopup</B>.
Everything in between them defines that particular popup menu.
<P>
After <B>Popup</B> you'll give this submenu a name (Popup_Name) that needs to
be enclosed with double quotes. This is the name that the submenu will be
invoked by. We'll see this is a moment.
<P>
Next, You can give the submenu a title that will appear at the top of the
popup menu listing. For our graphics submenus you could call it simply
&quot;Graphics Programs&quot;.
<P>
After this, you'll enter the application information. Each stanza takes the
form <B>Exec</B>, followed by the name that you want to appear in the menu
listing (this is also enclosed in double quotes), and then finally, the
<B>exec</B> statement that launches the program using the options that you've
decided upon.
<P>
AND DON'T FORGET THE &amp; AT THE END!
<P>
The <B>Nop</B> entry is a special sort of entry. It does, as the name implies,
nothing. Well, that's not completely true.
<P>
If you include an entry such as:<BR><BR>
Nop ""
<P>
which has no spaces at all between the double quotes, it'll put a horizontal
dividing line between the entries. This is very nifty as well as admirably
tidy.
<P>
However, if you put a single space between the double quotes, it'll just leave
a space between the two entries... there won't be a horizontal dividing line
placed.
<P>
So, for our example programs, you'd enter:
<PRE>
Popup "Graphics"
Title "Graphics Programs"
Exec "Pixmap" exec pixmap -g 790x590 &amp;
Exec "XbmBrowser" exec xbmbrowser -g 790x590 &amp;
Exec "XPaint" exec xpaint &amp;
EndPopup
</PRE>
Notice that if you'd wanted to place, for example, the pixmap application in the
upper left hand corner (+0+0), then you would have changed the entry to:
<PRE>
Exec "Pixmap" exec pixmap -g790x590+0+0 &amp;
</PRE>
<P>
So, now you've defined the submenu. You can continue to add other items in this
same fashion. How many should you add... well, the default fvwmrc puts ALL of the
screensaver apps in a single submenu. When I click on it there's a HUGE list that
goes scrolling down to the bottom of the screen. After about the first dozen or
so programs, you might want to think about setting up another submenu for other
programs. You're an adult... use your discretion...
<P>
Now, let's see how you call up those submenus.
<P>
As mentioned before, the stock fvwm distribution has a default fvwmrc that defines
a pretty handy default popup menu. Mine has been morphed into something that
currently looks like this:
<PRE>
# Main Menu Definition
#
# This is bound to the left mouse button and is invoked as the top-most
# menu.
Popup "FVWM Menu"
Title "FVWM Menu"
Exec "XCalc" exec xcalc -g 565+195 &
Exec "XTerm" exec xterm -sb -sl 500 -j -ls -fn 9x15 &
Exec "Xman" exec xman &
Exec "Xconsole" exec xconsole -g 720x70+410+795 &
Nop ""
Popup "Applications" Applications
Nop ""
Popup "Desktop" Desktop
Nop ""
Popup "Editors" Editors
Nop ""
Popup "Games" Games
Nop ""
Popup "Graphics" Graphics
Nop ""
Popup "Modules" Modules
Nop ""
Popup "Network" Network
Nop ""
Popup "Shells" Shells
Nop ""
Popup "X_Utilities" X_Utilities
Nop ""
Popup "Screensaver" Screensaver
Nop ""
Popup "Lock Screen" Screenlock
Nop ""
Popup "Exit Fvwm" Quit-Verify
Nop ""
Refresh "Refresh Screen"
EndPopup
</PRE>
<P>
To call up a submenu, you simply add a stanza that's in the form:
<PRE>
Popup "Menu_Item_Name" Popup_Name
</PRE>
remember that when you first defined a submenu you put the name of the submenu
in double quotes after the <B>Popup</B> declaration? Well, here's where you'll
need it.
<P>
The entry Menu_Item_Name is whatever you want to have appear on the menu listing.
Often, as you can see by the example above, it'll be the same name as whatever
you've called the submenu. No harm in doing that, although they CAN be different
as in the &quot;Exit Fvwm&quot; entries demonstrates.
<P>
So that's it!
<P>
See, it wasn't so bad... You can easily use the default entries as a template for
your customizations. Want to delete an entry? You can either physically delete
it or, which may be the better part of valor, you can simple comment it out using
a &quot;#&quot; sign.
<P>
A couple final points:
<UL>
<LI>Can you nest submenus more than a single layer deep?
<P>
Yup, you sure can. Use the &quot; Popup Menu_Item_Name Popup_Name&quot;
format in the submenu.
<P>
<B>Just remember!</B> You MUST define a menu BEFORE you can include it as
a submenu somewhere else. You'll notice that all of the submenus were
defined BEFORE the final, topmost menu was defined. That's because, if
you wanted to include a popup menu called &quot;MyFavoritePrograms&quot;
and you hadn't defined it yet, fvwm would complain severely.
<P>
<LI>Add an entry for the programs that you use MOST OFTEN somewhere in the
topmost menu. In other words, you'll probably want an entry for an
xterm in the main popup menu, because you'll be using them all the time.
<P>
Do you have any other programs that you use all the time? Maybe you're
constantly looking up manpages and need the <B>xman</B> program handy.
Or maybe you frequently use a calendar program like <B>xcalendar</B>.
<P>
In either case, if you need something frequently, or often need to start
multiple copies of the program... keep it handy.
<P>
<LI>If you want to invoke a program in a number of differnt ways, Create
stanzas for each different iteration!
<P>
In other words, if you want to be able to invoke a single program with
various options, simply create a line for each of the differnt ways you
want to invoke the program.
<P>
One of the best examples of this is the &quot;XTerm&quot; menus that are
included with the stock fvwm distribution. These series of entries
call up an xterm with different sized fonts, ranging from quite small
to truly myopic!
<P>
Customize, man, customize!
<P>
<LI>You DON'T have to add EVERY program to the popup menu!
<P>
This goes almost without saying... but, if you add EVERY program you've
loaded up to your menu, it'll stop being very useful. Add the programs
that you'll really use.
<P>
The corollary is similar: if a program requires input before it will
run, it may not be very handy to put that program on the menu.
<P>
For example, the really impressive graphics program <B>ImageMagick</B>
allows you to display images in a huge variety of formats, which you
can then manipulate and save to a different format. Thing is, you'll
probably be invoking it with the name of the file you want to display.
It's a lot easier to invoke this program from an xterm command line.
<P>
<LI>Make it easy on yourself, put your applications into logical groups.
<P>
By this, I mean, you should put all your editors under the &quot;Editors&quot;
menu, and the various xterms under the &quot;XTerms&quot; menu. You'll
find that as you begin adding more and more programs that putting them
into some kind of logical order will really make finding them quickly
much easier.
<P>
Also, it seems obvious, but it gets overlooked... put the programs that
you use most often AT THE TOP OF THE LIST. Man, it's taken me months
to discover that it's a LOT easier to click on the Graphics submenu
and then immediately hit the <B>xpaint</B> program if it's at the top
of the list.
<P>
Never fail to state the obvious...
<P>
Also, use the <B>Nop</B> option to help visually separate dissimilar items.
You'll notice that this is done in the default setup and it works quite
well.
</UL>
<P>
Well, that's it! Now, have fun!!
<P>
<A HREF="#toc"><IMG ALIGN=BOTTOM SRC="./gx/toc.gif"></A>
<A HREF="mailto: fiskjm@ctrvax.vanderbilt.edu"><IMG ALIGN=BOTTOM SRC="./gx/sendmail.gif"></A>
<A HREF="./gazette_toc.html"><IMG ALIGN=BOTTOM SRC="./gx/index.gif"></A>
<A HREF="./linux/linux.html"><IMG ALIGN=BOTTOM SRC="./gx/home.gif"></A>
<BR><BR>
<HR>
<!--SECTION 7 -->
<!-- -->
<H2><A NAME="fvwm_virtual"><IMG ALIGN=BOTTOM SRC="../gx/text.gif">FVWM: Managing
the Virtual Desktop!</A></H2>
<P>
Of all the excellent things that you can do with or to fvwm, one of the most
useful is getting to know the fvwm <B>Pager</B>. This is that handy little gadget
that sits up (by default, anyway) in the upper left hand corner of the screen. If
you click on one of those little windows... <EM>poof!</EM> there you are.
<P>
Very cool.
<P>
Well, like most of the rest of fvwm, this thing is eminently customizable! So,
what can you do with/to it?
<UL>
<LI>change its location
<LI>change the size of the pager itself
<LI>change the number of &quot;windows&quot; for each virtual desktop
<LI>use your LEFT mouse button to move to a virtual desktop
<LI>use your RIGHT mouse button to change your viewport
<LI>use your MIDDLE mouse button to pick up and move objects (program
windows) anywhere on your desktop
</UL>
<P>
And, customizing this stuff is easy! Promise.
<P>
Ok, so once again, you'll need to be armed with pen and notebook, and you should
make a backup of the fvwmrc you're about to hack away on. Once that's done you
can quickly and easily do almost anything you want with it.
<P>
So, let's edit.
<P>
This is what the entry in my fvwmrc looks like:
<PRE>
###########################################################################
#
# VIRTUAL DESKTOP CONFIGURATION
#
# Set up the VIRTUAL DESKTOP AND PAGER
# Define the virtual desktop size in units of the physical screen size.
# syntax: DeskTopSize HorizontalxVertical
#
DeskTopSize 3x2
# Define the virtual desktop scale in terms of a reduction factor
DeskTopScale 36
# Pager X_Location Y_Location
# Enables the fvwm PAGER at X_Location Y_Location. Miniature versions of
# all non-sticky windows on the virtual desktop are shown in the pager
# with the color of the miniature version the same as the color of the
# full-size window's borders
# Button actions:
# Button 1 move desktop viewport to selected page
# Button 2 move selected window anywhere on the desktop
# Button 3 move top-left corner of viewport to the location pressed
# dragging Button 3 will cause the viewport to scroll.
#
Pager -5 5
#
# End of VIRTUAL DESKTOP and PAGER configuration
##############################################################################
</PRE>
<P>
If you copy something like this into your ~/.fvwmrc or system.fvwmrc file
you're pretty much home free! Let's see what's going on:
<P>
First, define the desktop size. I've set mine to 3x2 since I use one of the
&quot;virtual desktops&quot; as my &quot;homebase&quot; if you will, and use
the other five as work area. I'll be discussing the rationale behind doing
this in later sections. For the moment, suffice it to say that you can set
up as many virtual desktops as you like.
<P>
Simply put in the number of desktops you want in each <B>row</B> (Horizontal)
by the number of <B>columns</B> you want (Vertical). For example, if you
wanted a virtual desktop 7 across and 3 high you'd simply put:
<PRE>
DeskTopSize 7x3
</PRE>
<P>
Easy.
<P>
Now, instead of entering the actual size of the window in pixels, as you do with
MOST (but not all as we'll see) windows, you enter the <B>reduction factor</B>
by which you want the pager reduced. I didn't pick the number 36, it was the
default value, but it seems to work well. If you wanted to make the pager
larger, simply <B>decrease</B> the reduction factor to, say, 30 and see how it
looks. Experiment with it until you find a size that you like.
<P>
Now, enter the <B>location</B> (geometry) in which you'd like to put the pager.
You'll notice here that I've put it at the coordinates -5 5. Like most of the
geometry entries, this places the pager <EM> 5 pixels from the right border of
the screen and 5 pixels down from the top of the screen</EM>. If you aren't sure
what this means, puruse the section on <A HREF="#window_geom">Window Geometry</A>.
<P>
So, now that you've added lots of desktops, made the pager just the right size, and
put it just where you wanted it to be... you ask &quot; what the heck can I do with
this thing?&quot;
<P>
Aweful glad you asked!
<P>
The obvious thing that you can do with this is to switch to another virtual desktop.
you just use the left mouse button and click on the desktop to which you want to
move. Simple.
<P>
What you may not have realized is that the other two mouse buttons have been defined
to perform a couple other operations (again, presuming that you're using the stock
fvwmrc file). The right button allows you to change the viewport.
<P>
So what's a <EM>viewport</EM>?
<P>
Basically, it's the location on the virtual desktop that is currently in focus, if
you will. These best way to learn what this means is to try it.
<P>
Go ahead... try it!
<P>
What you'll discover is that instead of smoothly jumping from one virtual desktop
to the next you'll &quot;pass through walls&quot; as it were. You'll be able to
change the focus to any point on the virtual desktop, regardless of where the
desktop &quot;boundries&quot; are located. Experience it.
<P>
Finally, the middle button will allow you pick up a window on the virtual desktop
(that is, within the pager window) and move it anywhere on the virtual desktop.
Again, to appreciate it, you have to try it. Put a couple xterms on one of your
desktops and then use the middle mouse button to drag-n-drop one of those xterms
to another location. It may not be the most useful of the functions... but it
makes a great party trick ;-)
<P>
<A HREF="#toc"><IMG ALIGN=BOTTOM SRC="./gx/toc.gif"></A>
<A HREF="mailto: fiskjm@ctrvax.vanderbilt.edu"><IMG ALIGN=BOTTOM SRC="./gx/sendmail.gif"></A>
<A HREF="./gazette_toc.html"><IMG ALIGN=BOTTOM SRC="./gx/index.gif"></A>
<A HREF="./linux/linux.html"><IMG ALIGN=BOTTOM SRC="./gx/home.gif"></A>
<BR><BR>
<HR>
<!--SECTION 8 -->
<!-- -->
<H2><A NAME="fvwm_quicktips"><IMG ALIGN=BOTTOM SRC="../gx/text.gif">FVWM: Quick Tips
</A></H2>
<P>
One of the great things about fvwm is that not only can you tinker around with
some fairly complex stuff, but also, there are innumerable little changes that
you can make to it. These aren't overwhelming, but they can make using fvwm a
LOT more fun.
<P>
Here are a couple ideas for ways that you can customize fvwm. The first three deal
with things that add or change the functionality to those ubiquitous window buttons.
I won't go into all the details of creating buttons or binding new functions to them,
that's for another time. But, until then, try these one's out!
<H3><IMG ALIGN=BOTTOM SRC="./gx/opus.gif">Making apps go full-screen</H3>
<P>
I'm sure that most of you have noticed that most all of the windows under fvwm and
X have a single button on the left and two on the right. Well, like everything in
X, these are eminently customizable, including creating new ones, deleting them,
binding new functions to them, creating new popup menus for them.
<P>
It's too way cool.
<P>
One of the more helpful things that can be done is clicking on the right-most
button will cause the application window to go full screen.
<P>
Well, it's supposed to anyway. On mine, it didn't. And I didn't have a clue as
to why it didn't... until I did a bit of reading in the 'ol manpages.
<P>
Adjusting the Maximize function so that it actually enlarges your apps to full
screen is pretty easy to do and forever makes life easier! Here's what you'll
need to do...
<P>
In the fvwmrc file, you'll find an entry for the <B>Maximize</B> function that
allows you to set its action. In mine, it looks something like this:
<PRE>
# This function sets the pattern of maximization. The values after the mouse
# action field are:
# Horizontal_Maximization Vertical_Maximization
#
# These are in reference to the *entire* desktop, so that "100 100" enlarges the
# application to the size of the entire *virtual desktop* - i.e., to 1152 x 900.
#
# Therefore, we'll set these up so that:
# single click maximizes to screen size (about 800x600)
# double click maximizes to full virtual desktop size (1152x900)
# motion maximizes vertically *only*
Function "maximize_func"
Maximize "Motion" 0 85
Maximize "Click" 69 85
Maximize "DoubleClick" 100 100
EndFunction
</PRE>
<P>
So, what's going on here?
<P>
Well, this is in the section of the fvwmrc that defines <I>complex fuctions</I>.
What is germane to this discussion is that this function has been bound to the
right-most titlebar button so that a mouse action on that button can do, in this
case, one of three things.
<P>
There are three <I>mouse actions</I> that you can perform:
<UL>
<LI>a single click
<LI>a double click
<LI>motion - which is simply pressing the mouse button and then moving it
slightly, as though you were going to drag-n-drop something.
</UL>
<P>
What you can see is that in each case, the <B>Maximize</B> function is being invoked,
but in different ways. A single click causes the window to be maximized to <B>69%
of the horizontal width of the desktop and 85% of the vertical height</B>.
<P>
Why in the world is it doing THAT!?
<P>
Thanks for asking...
<P>
Remember that I said that I'm running a virtual desktop of 1152 x 900. That gives
me a desktop that's 1152 pixels wide by 900 pixels high. But, if you check the
modeline for the resolution I'm currently using, you'll see that I can only view
about 800 x 600 pixels at a time. The rest is &quot;off-screen&quot; if you will.
<P>
Now, are you getting the picture?
<P>
A full screen application occupies only the 800 x 600 pixels that I view at any
one time, yet fvwm knows that my &quot;virtual desktop&quot; is actually
1152 x 900 pixels. Fvwm uses the size of my <EM>virtual desktop</EM> as the
size to which windows are maximized.
<P>
So, in order for apps on my system to be full screen without extending beyond what
I can see, I simply maximize them to 69% of 1152 (horizontal) and 85% of 900
(vertical). You can do a bit of math and make a fair estimate of what values you'll
need for your system. Simply compare the size of the <EM>virtual desktop</EM> with
the actual size of the viewable area taken from the modeline you're using.
<P>
For example, suppose that you were running a virtual desktop of 1000 x 800 pixels
and the viewable area you were using came out to be around 640 x 500 pixels. To
maximize a window to occupy full screen you'd need to set the <B>horizontal</B>
value to 640 / 1000 = 64%, and the <B>vertical</B> value to 500 / 800 = 63%.
<P>
In practice, I tried this and found that it worked fairly well, but still needed
a bit of tinkering to get it right. It's a matter of trial and error after you've
made an initial estimate.
<P>
Once you get this value right, your apps will happily expand up to full screen
whenever you single click on the rightmost button. Which brings up a very important
point and one that I'll probably make again elsewhere:
<P>
<B>If you are running a virtual desktop that's larger than your viewable area
(such as having a virtual desktop of 1152 x 900 when you're running at a resolution
of 800 x 600) AND you want to use this maximize funciton, you should put all of
your peripheral apps, such as the pager, clocks, and other sundries, on the right
hand side of the screen.</B>
<P>
Why is this important?
<P>
Simple. You'll find that the maximize function is very handy. You fire up a
program, position it where you want, and then decide that you want to use it full
screen. When you maximize it, it is enlarged full screen, AND THE UPPER LEFT HAND
CORNER IS POSITIONED AT +0+0.
<P>
Thus, the window is flush up against the top and left sides. If you put all the
other windows on the right side, you'll discover that they won't get covered up
when you maximize a window. Since you'll eventually, if you haven't already, find
yourself making all kinds of modifications to your desktop, it's important to
plan out where things should go.
<P>
It's a matter of efficiency.
<P>
Trust me.
<P>
Anyway, what do the other mouse actions do? Well, if you double click on the
rightmost button the window will be maximized to the FULL VIRTUAL DESKTOP size.
This hummer will be BIG! There are times when you'll want to do this, especially
if you're working with a graphics program and are editing a large image file.
<P>
The other mouse action is a bit less intuitive, but still pretty easy. All you
do is a &quot;baby drag-n-drop&quot;. That is, you push the button down, and you
ever-so-slightly move the mouse as though you were going to drag it somewhere.
This triggers the &quot;motion&quot; event. In this case, the window is maximized
only vertically (0 85) to the height of the viewable screen size. If you want to
be able to maximize horizontally only, simply change the entry to, for example,
69 0, and the window will be maximized horizontally. Entering a &quot;0&quot;
for either the horizontal or the vertical entry simply causes the window not to
be resized in that direction.
<P>
Believe me, once you've got this set and working for you, life becomes good!
<H3><IMG ALIGN=BOTTOM SRC="./gx/opus.gif">Closing Apps with the Left Titlebar
Button</H3>
<P>
You've discovered already that by clicking on the leftmost titlebar button of a
window, you're presented with a popup menu that lets you perform several different
window actions such as &quot;Move, Resize, Raise, Lower, (Un)Stick&quot; and so
forth. You can use this menu to terminate a program if it does not voluntarily do
so.
<P>
Keep in mind that a &quot;Delete&quot; and a &quot;Destroy&quot; are similar, but
not identical functions. The Delete fuction sends a signal to the application to
quietly quit and close down the window. This is the more graceful way to
<I>request</I> a program to end itself. The other method involves a more violent
Destroy action, which simply kills the application.
<P>
So, what's the big deal... the end result is the same, isn't it? Not exactly.
You see, many programs will perform several actions during the course of their
operation. They may set up temporary files or alter certain environmental
variables, or set up lock files. When a program quits, at least one that's well
behaved, it generally cleans up after itself. It'll delete temporary files,
delete lock files, and generally mop up after itself. Deleting causes the
application to go about the process of quitting in this manner, if you will.
Destroying, on the other hand, simply terminates the program, no matter what
it happens to be doing.
<P>
So where is all this going...
<P>
Well, there's a nice, easy way to close an application that fvwm provides. It is
one of the built-in fuctions called &quot;Close&quot;. This first attempts to
close an application by signalling it to quit gracefully. If that doesn't work,
it simply terminates the application. Either way, the app is GHANDI.
<P>
In the section of the fvwmrc that defines menu bindings you should find
something that looks like this:
<PRE>
# Menu acts like normal twm menu if you just hold the button down,
# but if you click instead, the menu stays up, motif style
Function "window_ops_func"
PopUp "Click" Window Ops2
PopUp "Motion" Window Ops2
# Motif would add
Close "DoubleClick"
</PRE>
In the stock fvwmrc file, this last line is commented out. Simply remove the
&quot;#&quot; to uncomment it. Then, if you want to close an application, all
you have to do is double click on the left button. Saves your having to pop up
the menu and try Delete, and then Destroy.
<P>
Like I said, it's worth about 2&#162; :-)
<H3><IMG ALIGN=BOTTOM SRC="./gx/opus.gif">Hiding those icons... </H3>
<P>
There's an option in the fvwmrc file that allows you to hide window icons.
Normally, when you make an icon out of a window, there's a cute little icon
sitting down at the bottom of desktop. Double clicking on it returns it to
its former size and location.
<P>
So why would you want to hide the icons?
<P>
Well, if you've opened up several apps and start making icons out of them, you'll
quickly discover that there are icons all over. At this point, you're all thinking...
&quot;<I>Yup, just as I thought... this guy is seriously anal...</I>&quot;
<P>
How'd you know :-)
<P>
It's strictly a matter of taste, but I've preferred to keep track of iconified
windows by using the FvwmWinList function. Clicking on the right button anywhere
on the root window will bring up the WindowList containing a listing of all the
applications -- both those that are windowed and those that are iconified. Clicking
on one of these entries automatically restores the window. Also, I find that it's
easier and faster to restore programs from the window list than to hunt for the icon.
<P>
Again, strictly a matter of preference.
<P>
If you want to give this a try, you'll find an entry in fvwmrc that looks like:
<PRE>
# SuppressIcons prevents icon windows from being created or drawn.
# If you uncomment this, and make sure that the WindowList is bound to
# something, it works pretty much like an icon manager.
SuppressIcons
</PRE>
simply uncomment the &quot;SuppressIcons&quot; and you're all set.
<H3><IMG ALIGN=BOTTOM SRC="./gx/opus.gif">Menus the MWM way...</H3>
<P>
There's another little alteration that you can make that I've found that I really
like a lot. It's the way menus are presented. To really get the feel for this
you'll need to do some quick and easy tinkering. You'll find an entry in the
fvwmrc file under the &quot;MWM Emulation&quot; heading. It'll look something
like this:
<PRE>
# MWMMenus affects minor aspects for the look-and-feel of MWM.
# This option triggers a few other MWM-style options, such as centering
# the resize/size window on the screen instead of leaving it in the
# upper left, and switches the resize-on-initial-placement trigger
# action to shift-button-1 instead of the TWM-style press-button-2
MWMMenus
</PRE>
By uncommenting the &quot;MWMMenus&quot; entry, you'll find a couple things have
happened:
<UL>
<LI>Submenus now pop up <I>beside</I> the parent menu, instead of partially
in front of it and obscuring it.
<LI>Also, that little blue box that indicates the window position when you
move or resize a window is now placed in the <I>center</I> of the
desktop, instead of in the uppermost lefthand corner.
</UL>
This is nice because if you have a virtual desktop larger than your viewable
screen area, you may reposition windows and not be able to see the geometry
indicator. Normally, this is OK, but if you're trying to arrange a desktop
and need to know the exact position of the window, you'll appreciate the fact
that the indicator is now within easy viewing in the middle of your screen.
<P>
Again, another 2&#162; tip! :-)
<P>
<A HREF="#toc"><IMG ALIGN=BOTTOM SRC="./gx/toc.gif"></A>
<A HREF="mailto: fiskjm@ctrvax.vanderbilt.edu"><IMG ALIGN=BOTTOM SRC="./gx/sendmail.gif"></A>
<A HREF="./gazette_toc.html"><IMG ALIGN=BOTTOM SRC="./gx/index.gif"></A>
<A HREF="./linux/linux.html"><IMG ALIGN=BOTTOM SRC="./gx/home.gif"></A>
<BR><BR>
<HR>
<!--SECTION 9 -->
<!-- -->
<H2><A NAME="xfmail"><IMG ALIGN=BOTTOM SRC="../gx/text.gif">Product Testimonial:
XFMail for Sendmail-less mail!</A></H2>
<P>
Well, for all of you who've read last month's Gazette about a <I>sendmail-less</I>
email setup for standalone boxes...
<P>
There's rejoicing!!
<P>
I received the following message from <B>Roman Mitnitski</B>:
<BLOCKQUOTE>
<P>
From: Roman Mitnitski &lt;mitnits@shani.net&gt;<BR>
To: fisk@web.tenn.com<BR>
Subject: New application for your toy list<BR><BR>
I beleive you should add this mail-reader to your<BR>
Linux Toys list. It's a way-cool, nice-looking, very functional<BR>
X11 based pop3-capable mail reader.<BR><BR>
Get it from<BR>
<A HREF="http://Burka.NetVision.net.il/xfmail/xfmail.html">
http://Burka.NetVision.net.il/xfmail/xfmail.html</A><BR>
</BLOCKQUOTE>
<P>
And he wasn't kidding!
<P>
I've been using this now for the last couple weeks and for everyone that has
gotten the willies from even the <I>thought</I> of having to set up sendmail
simply for a standalone system...
<P>
Take heart... help is here!
<P>
For anyone that has simple email needs, and by that I mean that you're running
Linux on a standalone system or small LAN with access to a POP mail server,
you have to give this thing a whirl! It is really awesome!
<P>
The <B>XFMail</B> program is based upon the <B>Xforms</B> widgets -- a set of
freely available widgets designed to make X application development faster and
less complicated. You'll need to install the XForm libs before you can set
up XFMail. Still, the end result is VERY much worth it!
<P>
Since this month's Gazette is getting a bit large now, I won't go into the steps
required to install and compile the XForms libs and the XFMail program. I found
that on a stock Slackware 2.2.0 setup with GCC 2.6.3 and XFree86 3.1.1, that
everything compiled pretty much without a hitch (you will, however, have to edit
the Makefile for XFMail and indicate where the XForms libs were installed, since
the default locations were different than where XForms actually installed itself).
<P>
This is admittedly still <I>Beta</I> software, and so the old warning that
<B>BETA == BUGS</B> still holds. Still, I've found that this software has been
pretty stable, VERY easy to configure and use, and has been kind to my mail...
that is, it's managed NOT to eat any of it yet... :-)
<P>
The list of features really is quite impressive and includes:
<UL>
<LI>retieving mail from POP3 server or local spool file
<LI>batch SMTP send
<LI>queued mail
<LI>MH-style mail folders
<LI>ability to manipulate messages: view, edit, delete, move to another
folder, save as draft, forward, bounce, reply to, search, and so forth
<LI>MANY, MANY configuration options available via easy to use GUI menu
</UL>
<P>
It does have a few drawbacks, however:
<UL>
<LI>there is no support for MIME messages as of yet
<LI>spell-checking is not implemented yet
<LI>the default editor is VERY small and can handle only about 30 lines;
it can be configured to use an external editor for viewing and editing
large messages (and this function seems to work well)
<LI>individual mail folders are limited to around 400 or so messages
<LI>it is a bit of a resource consumer ;-) and you'll notice that the
pointer movements over the menus are quite shaky.
</UL>
<P>
Still, you need to check this thing out. And if you've been jealous of your Win31-touting
buddies because they're running Eudora... well, your time has come. Give this
great program a shot!
<P>
Let me know if any of you have trouble getting it installed. Seriously. I
probably can't fix it for you, but I'd be happy to describe how I got this set up
on my system.
<P>
Just do it.
<P>
You'll be happy that you did!
<P>
<A HREF="#toc"><IMG ALIGN=BOTTOM SRC="./gx/toc.gif"></A>
<A HREF="mailto: fiskjm@ctrvax.vanderbilt.edu"><IMG ALIGN=BOTTOM SRC="./gx/sendmail.gif"></A>
<A HREF="./gazette_toc.html"><IMG ALIGN=BOTTOM SRC="./gx/index.gif"></A>
<A HREF="./linux/linux.html"><IMG ALIGN=BOTTOM SRC="./gx/home.gif"></A>
<BR><BR>
<HR>
<!--SECTION 10 -->
<!-- -->
<H2><A NAME="colophon"><IMG ALIGN=BOTTOM SRC="../gx/text.gif">Colophon</A></H2>
<P>
<B>Colophon</B>: [from the Gk. <I>kolophon</I> summit, finishing touch] an
inscription placed at the end of a book or manuscript usu. with facts relative
to its production.
<P>
I have unabashedly stolen this concept from the great folks at <B>O'Reilly</B>
publishing. If you've ever read one of their great <I>nutshell</I> series books
you'll likely find a small <I>colophon</I> at the end of the book. If you're
looking for truly well written and well researched material on UNIX, these are
the guys to go to.
<P>
Anyway, I just wanted to wrap up with a few comments and closing thoughts.
<P>
I've had a huge amount of fun writing this. I really have.
<P>
Doing the reading and tinkering necessary to write this up has been a truly
educational experience. I am FAR from achieving gurudom in any of this... you
can easily find most all of what I've written about in the README's and manpages
(although, maybe not in as lucid a fashion... ;-)
<P>
Since I'm trying to keep these at between 70k and 80k in size, I wasn't able to
include a third of what I'd hoped to get in. So what's still to come...? Much
more FVWM and X stuff including:
<UL>
<LI>Colors, Colors, Colors!
<LI>Fonts, Paths, and Icons
<LI>The Power of Styles
<LI>The Incredibly configurable XTerm
<LI>Adding programs to your GoodStuff button bar
<LI>The power of GoodStuff!
<LI>Six Must-Have Configuration Utilities
<LI>Efficient FVWM Desktop Layout
<LI>X Resources at your fingertips!
<LI>and anything else I can think of... :-)
</UL>
<P>
And I still haven't forgotten about writing up <B>fly8</B>! It's one of the nicest
flight sim's I've seen (take this with a grain of salt... I'm NO gamer...). I'd
also like to write about a few of the networking apps I've used and found VERY
helpful.
<P>
In the long term... who knows?
<P>
There's a HUGE amount of stuff to write about the whole topic of shell scripting,
which, if you haven't tried it yet, opens up some truly powerful features to you.
FORGET what you've learned about the anemic and infantile MSDOG batch file
setups, Linux offers some impressively powerful tools in the form of shell
scripting.
<P>
Let me also commend a couple Web sites to you:
<DL>
<DT><A HREF="http://www.cs.hmc.edu/people/~tkelly/docs/proj/fvwm.html">T. Kelly's
FVWM home page</A>
<DD> This is a VERY nice page with LOTS of great information about the FVWM
window manager. You'll find links to all sorts of resources as well as
docs and manpages for the various components of fvwm. If you're interested
in getting the most out of fvwm, you'll have to give this place a looking
at.
<DT><A HREF="http://Burka.NetVision.net.il/xfmail/xfmail.html">The XFMail home
page</A>
<DD> Once again, you need to give this thing a looking over. Not only does
the homepage give you information and screen shots about the app, but
you'll also be able to jump to the homepage for the <B>XForms</B> stuff
as well.
<DT><A HREF="ftp://ftp.cs.uiuc.edu/pub/xemacs/">The XEmacs FTP site at UIUC</A>
<DD>I've just installed the Xemacs package from the folks at UIUC. I've
been reading about this for some time now and finally got online long
enough to ftp this monster. It'll chew up about 3 hours or so of ftp
time if you're connected at 14.4... Still, I've only started playing
around with it in the past couple days, but it really is a much nicer
<I>appearing</I> emacs editor. If you've got the time, give this a try.
<DT><A HREF="http://www.acm.org/~daveotto/linux.html">The Wizard's LinuX Page</A>
<DD>Looking for Linux resources...? Then you've GOT to check this guy's
page out! This guy is one <I>serious</I> URL packrat and there's
<I>goobs</I> of links to Linux stuff all over! If you're in one
of those &quot;cruisin' for Linux stuff...&quot; type moods, kick
back with a Coke and bag 'o chips and launch out from here...
</DL>
<P>
Finally, let me put a plug in for another LINUX Web Author...<B>Scott Dowdle</B>
<P>
I recieved this letter from Scott a little while ago...
<PRE>
Date: Sat, 02 Sep 1995 16:53:23 CDT
From: Phil &lt;burtonp@initco.net&gt;
To: &lt;fisk@web.tenn.com&gt;
Subject: Silicon Times Reports?
Hello,
This is Scott Dowdle in Great Falls, Montana... and I'm a fellow Linux
user. I'm "hooked" too.
It just so happens that I've gotten myself involved with a digital
magazine that has been around for over 8 years... called Silicon Times
Report, or STReport or STR for short. STR has allowed me to start
writing a Linux column...
[snip]
and he offered to let me start a Linux column.
Check out STR at http://www.streport.com
Hope to hear from you ASAP, Scott Dowdle - Great Falls, Montana
</PRE>
<P>
Scott basically began writing a column for the <A HREF="http://www.streport.com/">
Silicon Times Report</A> a little while ago after writing the editor and complaining
that the ezine was WAY too Microsoft oriented. In response, the guy offered to let
him write an article about LINUX!
<P>
So, go take a look! You'll probably need to do this with a Windows (ugghhh...)
box, since I believe that the STR uses the Adobe Acrobat reader which you can
ftp from STR. Scott sent a clipping of one of his recent articles and I'd very
much recommend your supporting him. Drop him a note!
<P>
And finally, I wanted to say once again that I REALLY do appreciate folks writing
and offering ideas and suggestions as well as the encouragement that a number of
you have offered. Each issue takes on the order of 20 hours or so of writing and
research to flesh out. It's definitely enjoyable and I'll admit to being a bit
loquacious at times... but I appreciate the encouragement and I'm always glad to
hear that someone's found something useful here.
<P>
Also, I apologize to anyone whom I promised to include something they sent and
it didn't make it in this issue. The 'ol home system underwent a somewhat rocky
upgrade here recently and a few things got mislaid. Be patient, I'll eventually
get this act together... :-)
<P>
Anyway, hope you've enjoyed!
<P>
Cheers! <BR><BR>
John
<P>
<I>(Post-colophon... Sunday, 24 Sept 1995, I just got a note from the publisher of
the <A HREF="http://www.ssc.com">Linux Journal</A> with a correction: their phone
number is (206) 782-7733. This is the number you'll want to call to order this
excellent journal. The previous number, (206) 782-7191, is their FAX number. I
as also informed that they're in the midst of putting previous articles online, so
they will soon become browseable. I'll be adding links to these in the upcoming
editions of the Gazette, but wanted to get the word out about these very worthy
offerings. -John</I>
<H4>&quot;The Linux Gazette...<I>making Linux just a little more fun...!</I>&quot;
</H4>
<P>
<A HREF="#toc"><IMG ALIGN=BOTTOM SRC="./gx/toc.gif"></A>
<A HREF="mailto: fiskjm@ctrvax.vanderbilt.edu"><IMG ALIGN=BOTTOM SRC="./gx/sendmail.gif"></A>
<A HREF="./gazette_toc.html"><IMG ALIGN=BOTTOM SRC="./gx/index.gif"></A>
<A HREF="./linux/linux.html"><IMG ALIGN=BOTTOM SRC="./gx/home.gif"></A>
<BR><BR>
<HR>
<H4>Got any <I>great</I> ideas for improvements! Send your
<A HREF="mailto:fiskjm@ctrvax.vanderbilt.edu">comments, criticisms, suggestions, and ideas.</H4>
<BR>
<A HREF="./linux/linux.html"><IMG ALIGN=BOTTOM SRC="../gx/back.gif">Back up to Linux
HomeBoy WebPage</A> <BR>
<BR>
<I>This page written and maintained by:</I><BR>
<ADDRESS>
<A HREF="./jmf.html">John M. Fisk</A> at <A HREF="mailto:fiskjm@ctrvax.vanderbilt.edu">
fiskjm@ctrvax.vanderbilt.edu</A>
</ADDRESS>
</BODY>
</HTML>