The purpose of this page is to document the things that need to be configured on an new Linux installation in order to make it comfortable to use. This page will also cover configuring a machine for specific tasks, as I come across them. My computer runs Red Hat Linux 7.0 so the descriptions are oriented toward that.

Netscape: Application Settings

These are customizations to Netscape to make it handle various file types nicely. To do this in Navigator (not sure about Communicator) go to Edit to Preferences to Navigator to Applications.
DescriptionMIMETypeSuffixesHandled ByComment
audio/x-mpegurlm3uApplication: xmms %sFor mp3.com
PDF Filesapplication/pdfpdfApplication: acroread %s

Netscape: Mouse Wheel

Add this to your .Xdefaults file in order to make the mouse wheel work in Netscape:
Netscape*drawingArea.translations:  #replace    \
      <Btn1Down>:           ArmLink()   \n\
      <Btn2Down>:           ArmLink()   \n\
      ~Shift<Btn1Up>:       ActivateLink()  \n\
      ~Shift<Btn2Up>:       ActivateLink(new-window)  \
                              DisarmLink()    \n\
      Shift<Btn1Up>:        ActivateLink(save-only)  \
                        DisarmLink()    \n\
      Shift<Btn2Up>:        ActivateLink(save-only)  \
                        DisarmLink()    \n\
      <Btn1Motion>:             DisarmLinkIfMoved()  \n\
      <Btn2Motion>:             DisarmLinkIfMoved()  \n\
      <Btn3Motion>:             DisarmLinkIfMoved()  \n\
      <Motion>:             DescribeLink()  \n\
      <Btn3Down>:           xfeDoPopup()    \n\
      <Btn3Up>:             ActivatePopup() \n\
      Ctrl<Btn4Down>: PageUp()\n\
      Ctrl<Btn5Down>: PageDown()\n\
      Shift<Btn4Down>: LineUp()\n\
      Shift<Btn5Down>: LineDown()\n\
      None<Btn4Down>: LineUp()LineUp()LineUp()LineUp()LineUp()LineUp()\n\
      None<Btn5Down>: LineDown()LineDown()LineDown()LineDown()LineDown()LineDown()\n\
      Alt<Btn4Down>: xfeDoCommand(forward)\n\
      Alt<Btn5Down>: xfeDoCommand(back)\n


Netscape*globalNonTextTranslations: #override\n\
      ~Meta ~Alt ~Ctrl<Key>space:  xfeDoCommand(spacebar)\n\
      ~Meta ~Alt ~Ctrl<Key>Up:  LineUp()\n\
      ~Meta ~Alt ~Ctrl<Key>Down:  LineDown()\n\
      ~Meta ~Alt ~Ctrl<Key>Left:  ColumnLeft()\n\
      ~Meta ~Alt ~Ctrl<Key>Right:  ColumnRight()\n\
      Meta<Key>Left:  xfeDoCommand(forward)\n\
      Alt<Key>Right:  xfeDoCommand(back)\n\
      Shift<Btn4Down>: LineUp()\n\
      Shift<Btn5Down>: LineDown()\n\
      ~Meta ~Alt ~Ctrl<Btn4Down>:LineUp()LineUp()LineUp()LineUp()LineUp()LineUp()\n\
      ~Meta ~Alt ~Ctrl<Btn5Down>:LineDown()LineDown()LineDown()LineDown()LineDown()LineDown()\n\
      Alt<Btn4Down>: xfeDoCommand(forward)\n\
      Alt<Btn5Down>: xfeDoCommand(back)\n

Man Pages

Apparently, man won't source compressed man pages, so you don't get all of the zsh man pages by doing "man zshall", at least in RedHat 7.0. To fix this, do the following (in bash, ksh, or zsh):

# cd /usr/share/man/man1
# for i in zsh*.gz; do zcat $i > ${i%%.gz}; done

Also, the zshall man page seems to get large gaps in it if PAGER=/usr/bin/less so I just un-set that.

elm

If /var/spool/mail is NFS mounted, the elm shipped with RedHat 7.0 complains that it "Cannot flock folder" such and such. I followed a recommendation to recompile elm to use only dotlocking instead of flock(), but I'm not sure if it's really safe. In order to do this, I used the following patch:
--- elm-orig/config.h	Fri Apr  6 01:52:11 2001
+++ elm2.5.3/config.h	Fri Apr  6 01:52:17 2001
@@ -182,9 +182,9 @@
  */
 /*#undef	USE_FLOCK_LOCKING		/**/
 
-/*#undef	USE_DOTLOCK_LOCKING		/**/
+#define	USE_DOTLOCK_LOCKING		/**/
 
-#define	USE_FCNTL_LOCKING	/**/
+/*#undef	USE_FCNTL_LOCKING	/**/
 
 #define		LOCK_DIR	"/var/spool/uucp"	/**/

and changed the elm.spec file as follows:
--- elm-old.spec	Wed Jul 12 07:18:20 2000
+++ elm.spec	Fri Apr  6 02:07:53 2001
@@ -4,7 +4,7 @@
 Summary: The elm mail user agent.
 Name: elm
 Version: 2.5.3
-Release: 9
+Release: 9jb
 Copyright: distributable
 Group: Applications/Internet
 Url: http://www.myxa.com/elm.html
@@ -15,6 +15,7 @@
 Patch3: elm-2.5.3-security.patch
 Patch4: elm-2.5.3-delay.patch
 Patch5: elm-2.5.3-alpha.patch
+Patch6: elm-2.5.3-dotlock.patch
 # XXX for mmencode
 Requires: metamail
 BuildRoot: %{_tmppath}/%{name}-root
@@ -37,6 +38,7 @@
 %patch3 -p1 -b .security
 %patch4 -p1 -b .delay
 %patch5 -p1 -b .delay
+%patch6 -p1 -b .dotlock
 
 %build
 mkdir -p bin
Once you have created the new elm.spec, build a new rpm and install it:
# rpm -ba elm.spec
# rpm -Uvh /usr/src/redhat/RPMS/i386/elm-2.5.3-9jb.i386.rpm

Private IP Addresses

This is a quote from RFC 1918, which I can never find when I want it.

The Internet Assigned Numbers Authority (IANA) has reserved the following three blocks of the IP address space for private internets:

     10.0.0.0        -   10.255.255.255  (10/8 prefix)
     172.16.0.0      -   172.31.255.255  (172.16/12 prefix)
     192.168.0.0     -   192.168.255.255 (192.168/16 prefix)

We will refer to the first block as "24-bit block", the second as "20-bit block", and to the third as "16-bit" block. Note that (in pre-CIDR notation) the first block is nothing but a single class A network number, while the second block is a set of 16 contiguous class B network numbers, and third block is a set of 256 contiguous class C network numbers.

bash

The version of bash in Red Hat 7 (version 2.04) has a problem where if you exec something in a login script, that something ends up in the wrong process group (or something like that) so it loses contact with the terminal. To fix this, compile version 2.05, which was released in early April 2001. You can use the same spec file and patches that are in the SRPM from Red Hat. Just change the version number in the spec file and tweak the last patch so that it will apply.