home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / Config-HOWTO < prev    next >
Text File  |  1999-02-08  |  49KB  |  1,981 lines

  1.   Configuration HOWTO
  2.   By Guido Gonzato, guido@ibogeo.df.unibo.it
  3.   v1.2.6, 19 January 1999
  4.  
  5.   This HOWTO aims at making the fine--tuning of your newly installed
  6.   Linux box quicker and easier. Here you will find a set of configura¡
  7.   tions for the most common applications, so you can start to work with
  8.   a well-usable system.
  9.   ______________________________________________________________________
  10.  
  11.   Table of Contents
  12.  
  13.  
  14.   1. Introduction
  15.  
  16.      1.1 Why This HOWTO
  17.      1.2 What We Will Be Configuring
  18.  
  19.   2. General System Setup
  20.  
  21.      2.1 Keyboard
  22.      2.2 Kernel Matters
  23.      2.3 Sendmail Lock
  24.      2.4 Hard Disk Performance
  25.      2.5 Parallel Port Zip Drive
  26.      2.6 Device Drivers
  27.      2.7 Login Messages
  28.      2.8 Hostname
  29.      2.9 Mouse
  30.      2.10 Mount Points
  31.      2.11 lilo(8) and LOADLIN.EXE
  32.         2.11.1 Security Tip
  33.      2.12 Mail Capabilities
  34.      2.13 Printer Configuration
  35.      2.14 SVGATextMode
  36.  
  37.   3. Software Configuration
  38.  
  39.      3.1 bash(1)
  40.      3.2 ls(1)
  41.      3.3 less(1)
  42.      3.4 emacs(1)
  43.      3.5 joe(1)
  44.      3.6 jed(1)
  45.      3.7 efax(1)
  46.      3.8 TeX and Friends
  47.      3.9 Avoid PPProblems!
  48.         3.9.1 A Quick Start with eznet
  49.      3.10 POP Client
  50.      3.11 X Window System (XFree86)
  51.         3.11.1 Setting Up the X Server
  52.         3.11.2 Keypad
  53.         3.11.3 Graphical Login with xdm
  54.         3.11.4 Window Manager
  55.      3.12 Users' Configurations
  56.      3.13 Upgrading
  57.  
  58.   4. Configuration Software
  59.  
  60.   5. The End
  61.  
  62.      5.1 Copyright
  63.      5.2 Feedback
  64.      5.3 Disclaimer
  65.  
  66.  
  67.   ______________________________________________________________________
  68.  
  69.   1.  Introduction
  70.  
  71.  
  72.  
  73.   1.1.  Why This HOWTO
  74.  
  75.  
  76.   I have installed Linux on many PCs and noted that current
  77.   distributions are terrific but, annoyingly, lack some basic
  78.   configuration. Most applications will work out of the box, but others
  79.   won't. Moreover, I have noted that the same questions crop up on
  80.   c.o.l.setup over and over again.
  81.  
  82.   To try and remedy this situation, and to have a memorandum for fresh
  83.   installations, I wrote a do--this--and--that list that I later
  84.   expanded to this HOWTO. Here you will find a handful of configuration
  85.   examples for the most common applications, programs, and services,
  86.   which should save you a fair amount of time and work.
  87.  
  88.   A few of the examples outlined in this HOWTO depend somehow on the
  89.   distribution. I only have access to Red Hat, Caldera OpenLinux, and
  90.   S.u.S.E.  installations, so don't take any of my tips as gospel if you
  91.   have Slackware, Debian or other distributions. In any case, reading
  92.   documentation and the HOWTOs always pays off, so you're advised to do
  93.   so anyway. My reference distribution is Red Hat; to avoid repetitions,
  94.   ``AT2YD'' stands for ``Adapt This to Your Distribution''.
  95.  
  96.   A final note: I hope that this HOWTO becomes obsolete as soon as
  97.   possible.  The current trend in Linux distributions is to provide
  98.   configuration tools rather than leave the sysadm alone with a pile of
  99.   docs. Therefore, whenever possible I'll point you to the right tool.
  100.  
  101.   The most recent revision of this document, including some
  102.   translations, is available on  <http://sunsite.unc.edu/mdw/HOWTO>.
  103.  
  104.  
  105.  
  106.   1.2.  What We Will Be Configuring
  107.  
  108.  
  109.   There can be endless hardware configurations for a PC, but in my
  110.   experience one is quite common: a PC fitted with a large HD split into
  111.   three partitions (one for DOS/Windows, one for Linux, one for the
  112.   swap), sound card, modem, CD--ROM drive, printer, mouse. A parallel
  113.   port Zip Drive is also very common.
  114.  
  115.   This is the hardware I'll assume you want to configure, but it's easy
  116.   to adapt the following tips to different configurations. It's
  117.   implicitly assumed that you'll be root when editing/fixing/hacking.
  118.  
  119.   And now, lads, sleeves up.
  120.  
  121.  
  122.  
  123.   2.  General System Setup
  124.  
  125.  
  126.  
  127.  
  128.   2.1.  Keyboard
  129.  
  130.  
  131.   First of all, how to configure the keyboard. If you missed this step
  132.   during installation or have changed your keyboard, you'll have to:
  133.   ╖  choose a suitable key table from /usr/lib/kbd/keytables/; for
  134.      example, it.map selects the Italian keyboard;
  135.  
  136.   ╖  edit the file /etc/sysconfig/keyboard so as it reads:
  137.      KEYTABLE="/usr/lib/kbd/keytables/it.map";
  138.  
  139.   ╖  to set up the keyboard repeat rate and delay time, add this line to
  140.      /etc/rc.d/rc.sysinit (Red Hat) or /etc/rc.d/rc.boot (Caldera) or
  141.      /etc/rc.d/boot (S.u.S.E.):
  142.  
  143.  
  144.  
  145.        /sbin/kbdrate -s -r 16 -d 500  # or whatever you like
  146.  
  147.  
  148.  
  149.  
  150.  
  151.   To load the key table, issue /etc/rc.d/init.d/keytable start (AT2YD).
  152.   Other special keys will be considered in the following sections.
  153.  
  154.   To enable NumLock on by default, add these lines to
  155.   /etc/rc.d/rc.sysinit (AT2YD):
  156.  
  157.  
  158.  
  159.        for tty in /dev/tty[1-9]*; do
  160.          setleds -D +num < $tty
  161.        done
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.   2.2.  Kernel Matters
  169.  
  170.  
  171.   IMHO, the first thing to do next is build a kernel that best suits
  172.   your system. It's very simple to do but, in any case, refer to the
  173.   README file in /usr/src/linux/ or the Kernel HOWTO. Hints:
  174.  
  175.  
  176.   ╖  consider carefully your needs. Choosing a kernel configuration,
  177.      applying the patches, and compiling it once and for all is more
  178.      productive than reconfiguring and recompiling each month; this is
  179.      especially true if your Linux box is a server. Don't forget to
  180.      include support for all the hardware you might likely add in the
  181.      future (e.g. SCSI, Zip, network cards, etc);
  182.  
  183.   ╖  if your PC is based on a Cyrix CPU that is not properly recognised
  184.      as such by the kernel, apply appropriate patches to improve its
  185.      performance. Information on
  186.      <http://www.linuxhq.com/patch/20-p0591.html> ;
  187.  
  188.   ╖  notebook users will want to improve their LCD screen legibility. I
  189.      used to suggest that a kernel patch should be applied, but
  190.      SVGATextMode (see Section ``SVGATextMode'') is probably the best
  191.      solution. Anyway, the Big Cursor kernel patch is on
  192.        <http://www.linuxhq.com/patch/20-p0239.html> ;
  193.  
  194.   ╖  again for notebook users, if you plan to use a PCMCIA modem/fax
  195.      don't compile serial support as a module; compile it in the kernel,
  196.      otherwise your PCMCIA modem won't work;
  197.  
  198.  
  199.   ╖  if you use PCMCIA cards, remember to compile those modules as well;
  200.      also, don't forget to edit /etc/pcmcia/network.opts if you use a
  201.      PCMCIA network card;
  202.  
  203.   ╖  if you get those pesky messages from modprobe indicating that some
  204.      modules can't be located, that means that your /etc/conf.modules
  205.      needs mending. For instance, if you don't use the ipx and appletalk
  206.      modules, add these lines:
  207.  
  208.  
  209.  
  210.        alias net-pf-4 off
  211.        alias net-pf-5 off
  212.  
  213.  
  214.  
  215.  
  216.  
  217.   ╖  to save time the next time you reconfigure and recompile the
  218.      kernel, it's a good idea to save your configuration on a file and
  219.      keep it in a safe place. Beware: if you upgrade your kernel this
  220.      config file is bound to be useless, because it doesn't contain the
  221.      features of the new kernel.
  222.  
  223.  
  224.  
  225.   2.3.  Sendmail Lock
  226.  
  227.  
  228.   On some systems, sendmail hangs the machine for a couple of minutes at
  229.   boot time. There are two cases: 1) the machine is not directly
  230.   connected to the Internet, 2) the machine is connected, and has a
  231.   permanent IP address.
  232.  
  233.   Quick fix for the first case: make sure your /etc/hosts contains a
  234.   line that reads
  235.  
  236.  
  237.  
  238.        127.0.0.1   localhost
  239.  
  240.  
  241.  
  242.  
  243.   For the second case: the lock is caused by /etc/hosts containing a
  244.   line like
  245.  
  246.  
  247.  
  248.        127.0.0.1   localhost   your_host_name
  249.  
  250.  
  251.  
  252.  
  253.   which you will split this way:
  254.  
  255.  
  256.  
  257.        127.0.0.1    localhost
  258.        w.x.y.z      your_host_name
  259.  
  260.  
  261.  
  262.  
  263.   See also Section ``Hostname''.
  264.  
  265.   2.4.  Hard Disk Performance
  266.  
  267.  
  268.   Your (E)IDE hard disk's performance can be greatly enhanced by
  269.   carefully using hdparm(8). If your Linux distribution doesn't include
  270.   it, you'll find on  <ftp://sunsite.unc.edu/pub/Linux/system/hardware>
  271.   ; look for a file called hdparm-X.Y.tar.gz.
  272.  
  273.   Since many details depend on your hard disk and HD controller, I can't
  274.   give you a general recipe. As you risk to toast your filesystem,
  275.   please read the man page carefully before using some of the options.
  276.   At its simplest, you could add the following line to
  277.   /etc/rc.d/rc.sysinit:
  278.  
  279.  
  280.  
  281.        /sbin/hdparm -c1 /dev/hda  # first IDE drive assumed
  282.  
  283.  
  284.  
  285.  
  286.   which enables (E)IDE 32-bit I/O support. As for the `-m' option, this
  287.   is what hdparm author Mark Lord emailed me:
  288.  
  289.  
  290.        (...) if your system uses components from the past couple of
  291.        years [< 1997], it will be fine. Older than that, there
  292.        *may* be a problem (unlikely). The really buggy chips were
  293.        the CMD0646 and RZ1000 chips, used *extensively* on 486 and
  294.        (early) 586 motherboards about 2-3 years ago.
  295.  
  296.  
  297.  
  298.  
  299.   2.5.  Parallel Port Zip Drive
  300.  
  301.  
  302.   To use the parallel port version of the Zip drive you can use the
  303.   default driver that comes with recent (2.x.x) kernels. During kernel
  304.   configuration, make sure that SCSI support and SCSI disk support are
  305.   enabled. Remember, there can be conflicts between the printer and the
  306.   Zip drive on the same parallel port, so you will want to use kernel
  307.   modules.
  308.  
  309.   Zip disks are sold preformatted on partition /dev/sda4. To enable the
  310.   Zip, all you have to do is issue
  311.  
  312.  
  313.  
  314.        #~ chmod 666 /dev/sda4  # everyone can access the Zip Drive
  315.        #~ insmod ppa
  316.  
  317.  
  318.  
  319.  
  320.   and the Zip can now be mounted as usual (better write the last line in
  321.   /etc/rc.d/rc.sysinit). You also access the Zip drive via mtools adding
  322.   this line to your /etc/mtools.conf:
  323.  
  324.  
  325.  
  326.        drive z: file="/dev/sda4" exclusive
  327.  
  328.  
  329.  
  330.  
  331.   There's a better ppa driver than the standard one, though: have a look
  332.   at   <http://www.torque.net/~campbell> .
  333.  
  334.  
  335.  
  336.   2.6.  Device Drivers
  337.  
  338.  
  339.   Devices in /dev (or better, links to the actual device drivers) may be
  340.   missing. Check what devices your mouse, modem, and CD--ROM drive
  341.   correspond to, then do what follows:
  342.  
  343.  
  344.  
  345.        ~# cd /dev
  346.        /dev# ln -s ttyS0 mouse
  347.        /dev# ln -s ttyS1 modem
  348.        /dev# ln -s hdb cdrom
  349.  
  350.  
  351.  
  352.  
  353.   Tip: in some notebooks the mouse device is /dev/psaux: take this into
  354.   account when configuring X11.
  355.  
  356.   If you want, do chmod 666 to such devices as /dev/cdrom, /dev/floppy,
  357.   /dev/modem, etc. to make them fully accessible by every user. Security
  358.   problems ahead! Alternatively, create the ``cdrom'' group, make
  359.   /dev/cdrom owned by root.cdrom, then add users to this group. A
  360.   similar procedure applies to other devices.
  361.  
  362.  
  363.  
  364.   2.7.  Login Messages
  365.  
  366.  
  367.   If you want to customise the login messages, check whether your
  368.   /etc/rc.d/rc.local overwrites /etc/issue and /etc/motd. (RedHat does.)
  369.   If so, get on with your editor.
  370.  
  371.  
  372.  
  373.   2.8.  Hostname
  374.  
  375.  
  376.   Issuing the command hostname new_host_name may not be enough. To avoid
  377.   the dreaded sendmail lock, follow these steps (only valid for a
  378.   stand--alone machine):
  379.  
  380.  
  381.   ╖  edit /etc/sysconfig/network and change the hostname therein (e.g.
  382.      new_host_name.localdomain);
  383.  
  384.   ╖  edit /etc/HOSTNAME appropriately;
  385.  
  386.   ╖  append the new hostname in the line in /etc/hosts:
  387.  
  388.  
  389.        127.0.0.1       localhost  new_host_name.locadomain
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.   2.9.  Mouse
  398.  
  399.  
  400.   gpm mouse services are useful to perform cut and paste in tty mode,
  401.   and to use the mouse in some applications. For Red Hat, check that you
  402.   have a file called /etc/sysconfig/mouse and that it reads:
  403.  
  404.  
  405.  
  406.        MOUSETYPE="Microsoft"
  407.        XEMU3=yes
  408.  
  409.  
  410.  
  411.  
  412.   Moreover, you must have a file /etc/rc.d/init.d/gpm, where you'll put
  413.   additional command line parameters. Mine reads:
  414.  
  415.  
  416.  
  417.        ...
  418.               daemon gpm -t $MOUSETYPE -d 2 -a 5 -B 132 # two-button mouse
  419.        ...
  420.  
  421.  
  422.  
  423.  
  424.   Obviously, make sure this configuration is right for your mouse type.
  425.   In most notebooks, MOUSETYPE is ``PS/2''.
  426.  
  427.   For Caldera, all you have to do is append this line to
  428.   /etc/rc.d/rc.boot:
  429.  
  430.  
  431.  
  432.        /usr/bin/gpm
  433.  
  434.  
  435.  
  436.  
  437.   On S.u.S.E., gpm options go in /etc/rc.config; on Debian, you'll edit
  438.   /etc/gpm.conf.
  439.  
  440.   If you like to use menus in console with Ctrl-button, then configure
  441.   gpm-root.  Edit the default menu in /etc/gpm-root.conf , then launch
  442.   gpm-root from /etc/rc.d/rc.local (AT2YD).
  443.  
  444.  
  445.  
  446.   2.10.  Mount Points
  447.  
  448.  
  449.   It's handy to have mount points for the floppy, other devices and NFS-
  450.   exported directories. For example, you can do the following:
  451.  
  452.  
  453.  
  454.        ~# cd /mnt
  455.        /mnt# mkdir floppy; mkdir cdrom; mkdir win; mkdir zip ; mkdir server
  456.  
  457.  
  458.  
  459.  
  460.   This creates mount points for a DOS/Win floppy, an ext2 floppy, the
  461.   CD--ROM, the Windows partition, the parallel port Zip drive, and a NFS
  462.   directory.
  463.   Now edit the file /etc/fstab and add the following entries:
  464.  
  465.  
  466.  
  467.        /dev/fd0        /mnt/floppy     vfat            user,noauto 0 1
  468.        /dev/cdrom      /mnt/cdrom      iso9660         ro,user,noauto 0 1
  469.        /dev/sda4       /mnt/zip        vfat            user,noauto,exec 0 1
  470.        /dev/hda1       /mnt/win        vfat            user,noauto 0 1
  471.        server:/export  /mnt/server     nfs             defaults
  472.  
  473.  
  474.  
  475.  
  476.   Obviously, you must use the correct device in the first field. Recent
  477.   kernels support fat32 partitions natively; for older ones, there's a
  478.   kernel patch on   <http://bmrc.berkeley.edu/people/chaffee/fat32.html>
  479.   .  man mount for further information.
  480.  
  481.   You're strongly advised to install mtools for accessing DOS/Windows
  482.   floppies!
  483.  
  484.  
  485.  
  486.   2.11.  lilo(8) and LOADLIN.EXE
  487.  
  488.  
  489.   Many users run both Linux and DOS/Windows on their PC, and want to
  490.   choose at boot time which os to use; this should be done at install
  491.   time, but in case, do what follows. Let's suppose that /dev/hda1
  492.   contains DOS/Windows and that /dev/hda2 contains Linux.
  493.  
  494.  
  495.  
  496.        ~# fdisk
  497.        Using /dev/hda as default device!
  498.  
  499.        Command (m for help):a
  500.        Partition number (1-4): 2
  501.  
  502.        Command (m for help):w
  503.        ~#
  504.  
  505.  
  506.  
  507.  
  508.   This makes the Linux partition bootable. Then write this basic
  509.   /etc/lilo.conf file:
  510.  
  511.  
  512.  
  513.        boot = /dev/hda2
  514.        compact
  515.        delay = 50
  516.        # message = /boot/bootmesg.txt  # write your own, if you will
  517.        root = current
  518.        image = /boot/vmlinuz  # boot linux by default as this entry comes first
  519.          label = linux
  520.          read-only
  521.        other = /dev/hda1
  522.          table = /dev/hda
  523.          label = dos
  524.  
  525.  
  526.  
  527.  
  528.  
  529.   Now issue /sbin/lilo and you're done. Being lilo a crucial part of
  530.   your installation, you're strongly advised to read its documentation
  531.   anyway.
  532.  
  533.   To boot Linux from DOS/Windows without resetting, put LOADLIN.EXE in a
  534.   directory (in the DOS partition!) included in the DOS path; then copy
  535.   your kernel to, say, C:\TEMP\VMLINUZ. The following simple .BAT file
  536.   will boot Linux:
  537.  
  538.  
  539.  
  540.        rem   linux.bat
  541.        smartdrv /C
  542.        loadlin c:\temp\vmlinuz root=/dev/hda2 ro
  543.  
  544.  
  545.  
  546.  
  547.   If you use Windows 9x, set the properties of this .BAT so as it starts
  548.   in MS--DOS mode.
  549.  
  550.  
  551.  
  552.   2.11.1.  Security Tip
  553.  
  554.  
  555.   Making a backup copy of your MBR before installing Linux is a safe
  556.   move.  Use restorrb (included in the FIPS package) before
  557.   installation, or a Linux rescue floppy to issue this command:
  558.  
  559.  
  560.  
  561.        rescue:~# dd if=/dev/hda of=MBR bs=512 count=1
  562.  
  563.  
  564.  
  565.  
  566.   then make at least two copies of the file MBR on floppies. Should
  567.   disaster strike, you'll be able to restore your old MBR by issuing:
  568.  
  569.  
  570.  
  571.        rescue:~# dd if=/mnt/MBR of=/dev/hda bs=446 count=1
  572.  
  573.  
  574.  
  575.  
  576.   assuming that a floppy containing MBR is mounted under /mnt.
  577.   Alternatively, use a DOS rescue floppy to issue FDISK /MBR.
  578.  
  579.  
  580.  
  581.   2.12.  Mail Capabilities
  582.  
  583.  
  584.   You will want to be able to read mail messages written in HTML or
  585.   containing exotic file formats. Make sure you have two files:
  586.   /etc/mime.types and /etc/mailcap. The first one lists file types and
  587.   related extensions, like:
  588.  
  589.  
  590.  
  591.        application/postscript          ps eps
  592.        image/jpeg                      jpe jpeg jpg
  593.        text/html                       html
  594.  
  595.   while the second one tells the mail client how to display that file
  596.   type.
  597.  
  598.   You may receive mail from people who use Microsoft Outlook, whose
  599.   messages are in multi--part MIME format. These two lines, put in
  600.   etc/mailcap, should let you read those messages:
  601.  
  602.  
  603.  
  604.        text/plain; less %s; needsterminal
  605.        text/html; lynx -force_html %s; needsterminal
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.   2.13.  Printer Configuration
  613.  
  614.  
  615.   All distributions I know have a configuration tool for setting up the
  616.   printer (printtool, yast, or magicfilter); if you don't have it, this
  617.   is a basic manual configuration.
  618.  
  619.   Let's suppose you have a non--PostScript (non ``Windows-only'' too!)
  620.   printer you want to use to print raw text (e.g., C source files) and
  621.   PostScript files via Ghostscript, which is assumed to be already
  622.   installed.
  623.  
  624.   Setting up the printer involves a few steps:
  625.  
  626.  
  627.   ╖  find out which one the parallel print device is: try
  628.  
  629.  
  630.  
  631.        ~# echo "hello, world" > /dev/lp0
  632.        ~# echo "hello, world" > /dev/lp1
  633.  
  634.  
  635.  
  636.  
  637.  
  638.   and take note which one works.
  639.  
  640.   ╖  make two spool directories:
  641.  
  642.  
  643.  
  644.        ~# cd /var/spool/lpd
  645.        /var/spool/lpd/# mkdir raw ; mkdir postscript
  646.  
  647.  
  648.  
  649.  
  650.  
  651.   ╖  if your printer exibits the ``staircase effect'' (most inkjets do),
  652.      you'll need a filter. Try to print two lines with
  653.  
  654.  
  655.  
  656.        ~# echo "first line" > /dev/lp1 ; echo "second line" > /dev/lp1
  657.  
  658.  
  659.  
  660.  
  661.   if the output is like this:
  662.  
  663.  
  664.  
  665.        first line
  666.                  second line
  667.  
  668.  
  669.  
  670.  
  671.  
  672.   then save this script as /var/spool/lpd/raw/filter:
  673.  
  674.  
  675.  
  676.        #!/bin/sh
  677.        # This filter does away with the "staircase effect"
  678.        awk '{print $0, "\r"}'
  679.  
  680.  
  681.  
  682.  
  683.  
  684.   and make it executable with chmod 755 /var/spool/lpd/raw/filter.
  685.  
  686.   ╖  make a filter for PostScript emulation. Write the following filter
  687.      as /var/spool/lpd/postscript/filter:
  688.  
  689.  
  690.  
  691.        #!/bin/sh
  692.  
  693.        DEVICE=djet500
  694.        RESOLUTION=300x300
  695.        PAPERSIZE=a4
  696.        SENDEOF=
  697.  
  698.        nenscript -TUS -ZB -p- |
  699.        if [ "$DEVICE" = "PostScript" ]; then
  700.                cat -
  701.        else
  702.                gs -q -sDEVICE=$DEVICE \
  703.                        -r$RESOLUTION \
  704.                        -sPAPERSIZE=$PAPERSIZE \
  705.                        -dNOPAUSE \
  706.                        -dSAFER \
  707.                        -sOutputFile=- -
  708.        fi
  709.  
  710.        if [ "$SENDEOF" != "" ]; then
  711.                printf "\004"
  712.        fi
  713.  
  714.  
  715.  
  716.  
  717.  
  718.   (in this example an HP DeskJet printer is assumed. Fix it to suit your
  719.   printer).
  720.  
  721.   ╖  finally, add the following entries in /etc/printcap:
  722.  
  723.  
  724.  
  725.  
  726.  
  727.   # /etc/printcap
  728.   lp|ps|PS|PostScript|djps:\
  729.           :sd=/var/spool/lpd/postscript:\
  730.           :mx#0:\
  731.           :lp=/dev/lp1:\
  732.           :if=/var/spool/lpd/postscript/filter:\
  733.           :sh:
  734.   raw:\
  735.           :sd=/var/spool/lpd/raw:\
  736.           :mx#0:\
  737.           :lp=/dev/lp1:\
  738.           :if=/var/spool/lpd/raw/filter:\
  739.           :sh:
  740.  
  741.  
  742.  
  743.  
  744.  
  745.   For more complex or exotic printing configurations, the Printing-HOWTO
  746.   awaits you.
  747.  
  748.   If you use printtool, be aware that the GSDEVICE chosen by Printtool
  749.   will work, but not necessarily at its best for your printer. You may
  750.   consider fiddling a bit with the file postscript.cfg; for instance, I
  751.   changed GSDEVICE from cdj500 to djet500 and now my prints come out
  752.   much quicker.
  753.  
  754.  
  755.  
  756.   2.14.  SVGATextMode
  757.  
  758.  
  759.   This utility, available on
  760.   <ftp://tsx-11.mit.edu/pub/linux/sources/sbin> , can be used to change
  761.   the console screen resolution, font, and cursor shape.  Users whose
  762.   language include accented characters will be able to use them in
  763.   console applications, while notebook users may change the cursor shape
  764.   to make it more visible.
  765.  
  766.   Edit /etc/TextConfig or /etc/TextMode, starting with the default VGA
  767.   definition. Europeans should be happy with this ``LoadFont'' section:
  768.  
  769.  
  770.  
  771.        Option "LoadFont"
  772.        FontProg "/usr/bin/setfont"
  773.        FontPath "/usr/lib/kbd/consolefonts"
  774.        FontSelect "lat1u-16.psf"   8x16 9x16 8x15 9x15
  775.        FontSelect "lat1u-14.psf"   8x14 9x14 8x13 9x13
  776.        FontSelect "lat1u-12.psf"   8x12 9x12 8x11 9x11
  777.        FontSelect "lat1u-08.psf"   8x8  9x8  8x7  9x7
  778.  
  779.  
  780.  
  781.  
  782.   Once you're done, try your configuration with a command like
  783.  
  784.  
  785.  
  786.        ~# SVGATextMode "80x34x9"
  787.  
  788.  
  789.  
  790.  
  791.   and if everything appears to be working fine, remove the warnings from
  792.   /etc/TextMode and include this line in etc/rc.d/rc.sysinit (AT2YD):
  793.        # SVGATextMode
  794.        /usr/sbin/SVGATextMode "80x34x9"
  795.  
  796.  
  797.  
  798.  
  799.  
  800.   Please note that the block cursor only works with some modes; on one
  801.   of my machines, "80x32x9".
  802.  
  803.  
  804.  
  805.   3.  Software Configuration
  806.  
  807.  
  808.   These are the the configuration files we are going to custimise:
  809.   /etc/profile /etc/bashrc .bashrc .bashrc .bash_profile .bash_logout
  810.   .inputrc .less .lessrc .xinitrc .fvwmrc .fvwm2rc95 .Xmodmap
  811.   .Xmodmap.num .Xdefaults .jedrc .abbrevs.sl .joerc .emacs .  Don't add
  812.   users until you have completed your system configuration; you'll put
  813.   the dot files in /etc/skel.
  814.  
  815.  
  816.  
  817.   3.1.  bash(1)
  818.  
  819.  
  820.   Arguably, the most important piece of software after the kernel. To
  821.   tailor bash's behaviour, these are the main files to edit:
  822.  
  823.  
  824.   ╖  /etc/bashrc contains system wide aliases and functions;
  825.  
  826.   ╖  /etc/profile contains system wide environment stuff and startup
  827.      programs;
  828.  
  829.   ╖  $HOME/.bashrc contains user aliases and functions;
  830.  
  831.   ╖  $HOME/.bash_profile contains user environment stuff and startup
  832.      programs;
  833.  
  834.   ╖  $HOME/.inputrc contains key bindings and other bits.
  835.  
  836.   Examples of these files are shown below. First, the most important:
  837.   /etc/profile. It's used to configure a lot of features in your Linux
  838.   box, as you will see in the following sections. Please look out for
  839.   reverse quotes!
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.   ______________________________________________________________________
  860.   # /etc/profile
  861.  
  862.   # System wide environment and startup programs
  863.   # Functions and aliases go in /etc/bashrc
  864.  
  865.   # This file sets up the following features and programs:
  866.   #
  867.   #   o path
  868.   #   o prompts
  869.   #   o a few environment variables
  870.   #   o colour ls
  871.   #   o less
  872.   #   o rxvt
  873.   #
  874.   # Users can override these settings and/or add others in their
  875.   # $HOME/.bash_profile
  876.  
  877.   # set a decent path (including Kde)
  878.   PATH="$PATH:/usr/X11R6/bin:/opt/kde/bin:$HOME/bin:."
  879.  
  880.   # notify the user: login or non-login shell. If login, the prompt is
  881.   # coloured in blue; otherwise in magenta. Root's prompt is red.
  882.   # See the Colour-ls mini HOWTO for an explanation of the escape codes.
  883.   USER=`whoami`
  884.   if [ $LOGNAME = $USER ] ; then
  885.     COLOUR=44  # blue
  886.   else
  887.     COLOUR=45  # magenta
  888.   fi
  889.  
  890.   if [ $USER = 'root' ] ; then
  891.     COLOUR=41  # red
  892.     PATH="$PATH:/usr/local/bin"
  893.   fi
  894.  
  895.   ESC="\033"
  896.   STYLE=';1m' # bold; choose which one to use
  897.   # STYLE='m' # plain
  898.   PS1="\[$ESC[$COLOUR;37$STYLE\]$USER:\[$ESC[37;40$STYLE\]\w\\$ "
  899.   PS2="> "
  900.  
  901.   # no core dumps, please
  902.   ulimit -c 0
  903.  
  904.   # set umask
  905.   if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
  906.     umask 002
  907.   else
  908.     umask 022
  909.   fi
  910.  
  911.   # a few variables
  912.   USER=`id -un`
  913.   LOGNAME=$USER
  914.   MAIL="/var/spool/mail/$USER"
  915.   NNTPSERVER=news.iol.it # put your own here
  916.   VISUAL=jed
  917.   EDITOR=jed
  918.   HOSTNAME=`/bin/hostname`
  919.   HISTSIZE=1000
  920.   HISTFILESIZE=1000
  921.   export PATH PS1 PS2 USER LOGNAME MAIL NNTPSERVER
  922.   export VISUAL EDITOR HOSTNAME HISTSIZE HISTFILESIZE
  923.  
  924.   # enable colour ls
  925.   eval `dircolors /etc/DIR_COLORS -b`
  926.   export LS_OPTIONS='-s -F -T 0 --color=yes'
  927.  
  928.   # customize less
  929.   LESS='-M-Q'
  930.   LESSEDIT="%E ?lt+%lt. %f"
  931.   LESSOPEN="| lesspipe.sh %s"
  932.   LESSCHARDEF=8bcccbcc13b.4b95.33b. # show colours in ls -l | less
  933.   export LESS LESSEDIT LESSOPEN VISUAL LESSCHARDEF
  934.  
  935.   # fix the backspace key in rxvt
  936.   if [ "$COLORTERM" != "" ] ; then
  937.     stty erase ^H  # alternative: ^H
  938.   fi
  939.  
  940.   for i in /etc/profile.d/*.sh ; do
  941.     if [ -x $i ]; then
  942.       . $i
  943.     fi
  944.   done
  945.  
  946.   # call fortune, if available
  947.   if [ -x /usr/games/fortune ] ; then
  948.     echo ; /usr/games/fortune ; echo
  949.   fi
  950.   ______________________________________________________________________
  951.  
  952.  
  953.  
  954.   This is a sample /etc/bashrc:
  955.  
  956.  
  957.   ______________________________________________________________________
  958.   # /etc/bashrc
  959.  
  960.   # System wide functions and aliases
  961.   # Environment stuff goes in /etc/profile
  962.  
  963.   # For some unknown reason bash refuses to inherit
  964.   # PS1 in some circumstances that I can't figure out.
  965.   # Putting PS1 here ensures that it gets loaded every time.
  966.  
  967.   USER=`whoami`
  968.   if [ $LOGNAME = $USER ] ; then
  969.     COLOUR=44  # blue
  970.   else
  971.     COLOUR=45  # magenta
  972.   fi
  973.  
  974.   if [ $USER = 'root' ] ; then
  975.     COLOUR=41  # red
  976.   fi
  977.  
  978.   ESC="\033"
  979.   STYLE=';1m'  # bold
  980.   # STYLE='m'    # plain
  981.   export PS1="\[$ESC[$COLOUR;37$STYLE\]$USER:\[$ESC[37;40$STYLE\]\w\\$ "
  982.   export PS2="> "
  983.   export CDPATH="$CDPATH:~"
  984.  
  985.   alias which="type -path"
  986.   alias ls="ls $LS_OPTIONS"
  987.   ______________________________________________________________________
  988.  
  989.  
  990.  
  991.   This is a sample .bashrc:
  992.  
  993.  
  994.   ______________________________________________________________________
  995.   # $HOME/.bashrc
  996.   # Source global definitions
  997.  
  998.   if [ -f /etc/bashrc ]; then
  999.     . /etc/bashrc
  1000.   fi
  1001.  
  1002.   # this is needed to notify the user that they are in non-login shell
  1003.   if [ "$GET_PS1" = "" ] ; then
  1004.     COLOUR=45; ESC="\033"; STYLE=';1m';  # STYLE='m'
  1005.     USER=`whoami`
  1006.     export PS1="\[$ESC[$COLOUR;37$STYLE\]$USER:\[$ESC[37;40$STYLE\]\w\\$ "
  1007.   fi
  1008.  
  1009.   # aliases
  1010.   alias cp='cp -i'
  1011.   alias l=less
  1012.   alias lyx='lyx -width 900 -height 700'
  1013.   alias mv='mv -i'
  1014.   alias rm='rm -i'
  1015.   alias x=startx
  1016.  
  1017.   # A few useful functions
  1018.  
  1019.   inst() # Install a .tar.gz archive in the current directory.
  1020.   { tar -zxvf $1 }
  1021.  
  1022.   cz() # List the contents of a .zip archive.
  1023.   { unzip -l $* }
  1024.  
  1025.   ctgz() # List the contents of a .tar.gz archive.
  1026.   {
  1027.     for file in $* ; do
  1028.       tar -ztf ${file}
  1029.     done
  1030.   }
  1031.  
  1032.   tgz() # Create a .tgz archive a la zip.
  1033.   {
  1034.     name=$1 ; tar -cvf $1 ; shift
  1035.     tar -rf ${name} $*
  1036.     gzip -S .tgz ${name}
  1037.   }
  1038.   ______________________________________________________________________
  1039.  
  1040.  
  1041.  
  1042.   This is a sample .bash_profile:
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.   ______________________________________________________________________
  1058.   # $HOME/.bash_profile
  1059.  
  1060.   # User specific environment and startup programs
  1061.   # This file contains user-defined settings that override
  1062.   # those in /etc/profile
  1063.  
  1064.   # Get user aliases and functions
  1065.   if [ -f ~/.bashrc ]; then
  1066.     GET_PS1="NO"  # don't change the prompt colour
  1067.     . ~/.bashrc
  1068.   fi
  1069.  
  1070.   # set a few `default' directories
  1071.   export CDPATH="$CDPATH:$HOME:$HOME/text:$HOME/text/geology"
  1072.   ______________________________________________________________________
  1073.  
  1074.  
  1075.  
  1076.   This is a sample .inputrc:
  1077.  
  1078.  
  1079.   ______________________________________________________________________
  1080.   # $HOME/.inputrc
  1081.  
  1082.   # key bindings
  1083.   "\e[1~": beginning-of-line
  1084.   "\e[3~": delete-char
  1085.   "\e[4~": end-of-line
  1086.   # (F1 .. F5) are "\e[[A" ... "\e[[E"
  1087.   "\e[[A": "info \C-m"
  1088.  
  1089.   set bell-style visible          # please don't beep
  1090.   set meta-flag On                # allow 8-bit input (i.e, accented letters)
  1091.   set convert-meta Off            # don't strip 8-bit characters
  1092.   set output-meta On              # display 8-bit characters correctly
  1093.   set horizontal-scroll-mode On   # scroll long command lines
  1094.   set show-all-if-ambiguous On    # after TAB is pressed
  1095.   ______________________________________________________________________
  1096.  
  1097.  
  1098.  
  1099.   To make the backspace and delete keys work correctly in xterm and
  1100.   other X11 applications, the following is also needed:
  1101.  
  1102.  
  1103.   ╖  put this in your .xinitrc:
  1104.  
  1105.  
  1106.  
  1107.        usermodmap=$HOME/.Xmodmap
  1108.        xmodmap $usermodmap
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.   ╖  then your .Xmodmap will contain:
  1115.  
  1116.  
  1117.  
  1118.        keycode 22 = BackSpace
  1119.        keycode 107 = Delete
  1120.  
  1121.  
  1122.  
  1123.   this fixes the console. To fix xterm:
  1124.  
  1125.   ╖  put this in your .Xdefaults:
  1126.  
  1127.  
  1128.  
  1129.        xterm*VT100.Translations: #override <Key>BackSpace: string(0x7F)\n\
  1130.                <Key>Delete:        string(0x1b) string("[3~")\n\
  1131.                <Key>Home:          string(0x1b) string("[1~")\n\
  1132.                <Key>End:           string(0x1b) string("[4~")\n\
  1133.                Ctrl<Key>Prior:     string(0x1b) string("[40~")\n\
  1134.                Ctrl<Key>Next:      string(0x1b) string("[41~")
  1135.  
  1136.        nxterm*VT100.Translations: #override <Key>BackSpace: string(0x7F)\n\
  1137.                <Key>Delete:        string(0x1b) string("[3~")\n\
  1138.                <Key>Home:          string(0x1b) string("[1~")\n\
  1139.                <Key>End:           string(0x1b) string("[4~")\n\
  1140.                Ctrl<Key>Prior:     string(0x1b) string("[40~")\n\
  1141.                Ctrl<Key>Next:      string(0x1b) string("[41~")
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.   rxvt is a wee bit more complicated, as some compile--time options
  1148.   influence its behaviour. See the above /etc/profile.
  1149.  
  1150.   More info in bash(1) and readline(3) man pages.
  1151.  
  1152.   Don't expect every application to work correctly! If you run joe in
  1153.   xterm, for instance, some keys won't work; the same holds for versions
  1154.   of rxvt older than 2.4.5.
  1155.  
  1156.  
  1157.  
  1158.   3.2.  ls(1)
  1159.  
  1160.  
  1161.   ls can display directory listings using colours to highlight different
  1162.   file types. To enable this feature, you just need a couple of lines in
  1163.   /etc/profile as seen above. However, this won't work with rxvt older
  1164.   than v. 2.21; use some flavour of xterm instead. It looks like rxvt
  1165.   has a bug that prevents it from inheriting the environment correctly
  1166.   in some circumstances. rxvt 2.4.5 upwards is OK.
  1167.  
  1168.   Caldera's ls doesn't have colours, but there's an equivalent color-ls.
  1169.   Add this in /etc/bashrc:
  1170.  
  1171.  
  1172.  
  1173.        alias ls="color-ls $LS_OPTIONS"
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.   3.3.  less(1)
  1181.  
  1182.  
  1183.   With this excellent pager you can browse not only plain text files,
  1184.   but also gzip compressed, tar and zip archives, man pages, and what
  1185.   have you. Its configuration involves a few steps:
  1186.  
  1187.  
  1188.  
  1189.   ╖  to use it with the movement keys, have this plain ASCII file
  1190.      .lesskey in your home directory:
  1191.  
  1192.  
  1193.  
  1194.        ^[[A   back-line
  1195.        ^[[B   forw-line
  1196.        ^[[C   right-scroll
  1197.        ^[[D   left-scroll
  1198.        ^[OA   back-line
  1199.        ^[OB   forw-line
  1200.        ^[OC   right-scroll
  1201.        ^[OD   left-scroll
  1202.        ^[[6~  forw-scroll
  1203.        ^[[5~  back-scroll
  1204.        ^[[1~  goto-line
  1205.        ^[[4~  goto-end
  1206.        ^[[7~  goto-line
  1207.        ^[[8~  goto-end
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.   then run the command lesskey. (These are escape sequences for
  1214.   vt100-like terminals.) This creates a binary file .less containing the
  1215.   key bindings.
  1216.  
  1217.  
  1218.   ╖  write the following file as /usr/local/bin/lesspipe.sh:
  1219.  
  1220.  
  1221.      ___________________________________________________________________
  1222.      #!/bin/sh
  1223.      # This is a preprocessor for 'less'.  It is used when this environment
  1224.      # variable is set:   LESSOPEN="|lesspipe.sh %s"
  1225.  
  1226.      lesspipe() {
  1227.        case "$1" in
  1228.        *.tar) tar tf $1 2>/dev/null ;; # View contents of .tar and .tgz files
  1229.        *.tgz|*.tar.gz|*.tar.Z|*.tar.z) tar ztf $1 2>/dev/null ;;
  1230.        *.Z|*.z|*.gz) gzip -dc $1  2>/dev/null ;; # View compressed files correctly
  1231.        *.zip) unzip -l $1 2>/dev/null ;; # View archives
  1232.        *.arj) unarj -l $1 2>/dev/null ;;
  1233.        *.rpm) rpm -qpil $1 2>/dev/null ;;
  1234.        *.cpio) cpio --list -F $1 2>/dev/null ;;
  1235.        *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1`
  1236.          FILE=`echo $FILE | cut -d ' ' -f 2`
  1237.          if [ "$FILE" = "troff" ]; then
  1238.            groff -s -p -t -e -Tascii -mandoc $1
  1239.          fi ;;
  1240.        *) file $1 | grep text > /dev/null ;
  1241.          if [ $? = 1 ] ; then # it's not some kind of text
  1242.            strings $1
  1243.          fi ;;
  1244.        esac
  1245.      }
  1246.  
  1247.      lesspipe $1
  1248.      ___________________________________________________________________
  1249.  
  1250.  
  1251.  
  1252.   then make it executable with chmod 755 lesspipe.sh.
  1253.  
  1254.  
  1255.   ╖  put the necessary variables in /etc/profile as seen above.
  1256.  
  1257.  
  1258.  
  1259.   3.4.  emacs(1)
  1260.  
  1261.  
  1262.   I rarely use emacs, so I have only a couple of tips for you.  Some
  1263.   emacs distributions don't come preconfigured for colours and syntax
  1264.   highlighting. Put this in your .emacs:
  1265.  
  1266.  
  1267.  
  1268.        (global-font-lock-mode t)
  1269.        (setq font-lock-maximum-decoration t)
  1270.  
  1271.  
  1272.  
  1273.  
  1274.   This only works in X11. Moreover, to enable accented characters you'll
  1275.   add this line:
  1276.  
  1277.  
  1278.  
  1279.        (standard-display-european 1)
  1280.  
  1281.  
  1282.  
  1283.  
  1284.   I'll leave it to you to peruse all of emacs' documentation to find out
  1285.   how to tailor it to your needs---potentially, it can take months of
  1286.   hacking.  The Dotfile generator (Section ``Configuration Software'')
  1287.   is a good helping hand.
  1288.  
  1289.  
  1290.  
  1291.   3.5.  joe(1)
  1292.  
  1293.  
  1294.   Some versions of joe don't work with colours in console, and some
  1295.   special keys don't work either. To my knowledge, no one has found a
  1296.   solution to these small nags. A quick and dirty (and inelegant)
  1297.   solution to the former problem is this:
  1298.  
  1299.  
  1300.  
  1301.        ~$ export TERM=vt100
  1302.        ~$ joe myfile
  1303.           (edit your file)
  1304.        ~$ export TERM=linux
  1305.  
  1306.  
  1307.  
  1308.  
  1309.   Configure joe editing .joerc, .jstarrc or your favourite emulation;
  1310.   you can start from the system-wide config files in /usr/lib/joe.
  1311.  
  1312.  
  1313.  
  1314.   3.6.  jed(1)
  1315.  
  1316.  
  1317.   This is my favourite editor: it does what I need, it's lighter and
  1318.   easier to configure than emacs, and emulates other editors quite well.
  1319.   Many users at my university use jed to emulate EDT, VMS' system
  1320.   editor.
  1321.   jed's configuration files are .jedrc and /usr/lib/jed/lib/*; the
  1322.   former can be adapted from jed.rc in the latter directory.
  1323.  
  1324.  
  1325.   ╖  to make jed use the special keys correctly, write the file
  1326.      /usr/lib/jed/lib/defaults.sl whose only line reads:
  1327.  
  1328.  
  1329.  
  1330.        () = evalfile("linux");
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.   ╖  if xjed apparently doesn't recognise the DEL key, add these lines
  1337.      to your .jedrc:
  1338.  
  1339.  
  1340.  
  1341.        #ifdef XWINDOWS
  1342.          x_set_keysym (0xFFFF, 0, "\e[3~");
  1343.          setkey (``delete_char_cmd'', "\e[3~");
  1344.        #endif
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.   ╖  edit /usr/lib/jed/lib/linux.sl to specify Info_Directory =
  1351.      "/usr/info"; and /bin/mail after /UCB_Mailer = "/bin/mail";;
  1352.  
  1353.   ╖  to make jed emulate EDT (or other editors) all you have to do is
  1354.      edit a couple of lines in .jedrc. If you want the numeric keypad
  1355.      `+' to delete words instead of a single character, add this in
  1356.      .jedrc:
  1357.  
  1358.  
  1359.  
  1360.        unsetkey("\eOl");
  1361.        unsetkey("\eOP\eOl");
  1362.        setkey("edt_wdel", "\eOl");
  1363.        setkey("edt_uwdel", "\eOP\eOl");
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.   after the line that reads () = evalfile("edt") (or similar);
  1370.  
  1371.   ╖  to make xjed use the numeric keypad for EDT emulation, insert the
  1372.      following in .Xmodmap:
  1373.  
  1374.  
  1375.  
  1376.        keycode 77  = KP_F1
  1377.        keycode 112 = KP_F2
  1378.        keycode 63  = KP_F3
  1379.        keycode 82  = KP_F4
  1380.        keycode 86  = KP_Separator
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.   ╖  colour customization for xjed is done adding lines like these in
  1388.      .Xdefaults:
  1389.  
  1390.  
  1391.  
  1392.        xjed*Geometry: 80x32+150+50
  1393.        xjed*font: 10x20
  1394.        xjed*background: midnight blue
  1395.        # and so on...
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.   ╖  the ``abbreviation'' feature is an invaluable timesaver. Write a
  1402.      file like the following as $HOME/.abbrevs.sl:
  1403.  
  1404.  
  1405.  
  1406.        create_abbrev_table ("Global", "0-9A-Za-z");
  1407.        define_abbrev ("Global", "GG", "Guido Gonzato");
  1408.        create_abbrev_table ("TeX", "\\A-Za-z0-9");
  1409.        define_abbrev ("TeX", "\\beq", "\\begin{equation}");
  1410.        define_abbrev ("TeX", "\\eeq", "\\end{equation}");
  1411.        % and so on...
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.   and type ESC x abbrev_mode to enable it. To have the abbreviation
  1418.   enabled by default, add entries like these to your .jedrc:
  1419.  
  1420.  
  1421.  
  1422.        define text_mode_hook ()
  1423.        {
  1424.          set_abbrev_mode (1);
  1425.        }
  1426.        %
  1427.        define fortran_hook ()
  1428.        {
  1429.          set_abbrev_mode (1);
  1430.          use_abbrev_table ("Fortran");
  1431.        }
  1432.        % and so on...
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.   3.7.  efax(1)
  1441.  
  1442.  
  1443.   This package is probably the most convenient for simple
  1444.   sending/receiving of faxes. You'll have to tailor the script
  1445.   /usr/bin/fax; easy job, but a couple of quirks caused me quite an
  1446.   headache:
  1447.  
  1448.  
  1449.   ╖  DIALPREFIX: chances are that simply putting `T' or `P' won't work
  1450.      in some countries (in Italy, at least). Put `ATDT' or `ATDP'
  1451.      instead;
  1452.  
  1453.   ╖  INIT and RESET: these strings contain the initialisers `-i' and
  1454.      `-k', needed by efax. If you want to add an AT command, add it to
  1455.      the appropriate string leaving out `AT' and preceding the rest with
  1456.      either `-i' or `-k'. Example: to add the `ATX3' command to INIT,
  1457.      you'll append `-iX3'.
  1458.  
  1459.  
  1460.  
  1461.   3.8.  TeX and Friends
  1462.  
  1463.  
  1464.   I'll assume you have the teTeX distribution. Just a couple of things
  1465.   here:
  1466.  
  1467.  
  1468.   ╖  to configure the hyphenation pattern for your language, edit the
  1469.      file /usr/lib/texmf/texmf/tex/generic/config/language.dat, then do:
  1470.  
  1471.  
  1472.  
  1473.        ~# texconfig init ; texconfig hyphen
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.   ╖  if you add a LaTeX package, after adding the files under
  1480.      /usr/lib/texmf/texmf/tex/latex/ run the command texhash so that
  1481.      teTeX recognises the new package;
  1482.  
  1483.   ╖  to tailor dvips, the file to edit is
  1484.      /usr/lib/texmf/texmf/dvips/config/config.ps. Be aware that the
  1485.      fields regarding the default resolution also affect xdvi's
  1486.      behaviour; if you experience annoying attempts to create fonts each
  1487.      time you run it, put the line
  1488.  
  1489.  
  1490.  
  1491.        XDvi*mfmode:
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.   in .Xdefault. This should help.
  1498.  
  1499.  
  1500.  
  1501.   3.9.  Avoid PPProblems!
  1502.  
  1503.  
  1504.   I'll take it for granted that your kernel has PPP + TCP/IP support
  1505.   compiled in, that loopback is enabled, and that you already have the
  1506.   pppd package correctly installed and, if you will, suid root.
  1507.   Obviously, your ISP must support PPP.
  1508.  
  1509.   There are now two ways to get PPP to work: a) manual configuration,
  1510.   and b) a configuration program that automagically sees to it.
  1511.   Whichever option you choose, have the following information on hand:
  1512.  
  1513.  
  1514.   ╖  your ISP's telephone number;
  1515.  
  1516.   ╖  your ISP's name, mail and news server address;
  1517.  
  1518.  
  1519.   ╖  your ISP's domain;
  1520.  
  1521.   ╖  your username and password.
  1522.  
  1523.   Manual configuration is a drudgery. It's about editing files and
  1524.   writing scripts; not too much work, but it's easy to make mistakes and
  1525.   newcomers are often intimidated. The PPP HOWTO is there for you.
  1526.   Alternatively, there are tools that ask for the information above and
  1527.   do all the work.
  1528.  
  1529.   You'll be surely better off if get hold of one of the following nice
  1530.   tools:
  1531.  
  1532.  
  1533.   ╖  an X11--based tool is EzPPP, whose home page is
  1534.        <http://www.serv.net/~cameron/ezppp/index.html> .  Very easy to
  1535.      use, almost self--explanatory, but requires you to write the
  1536.      connection script;
  1537.  
  1538.   ╖  for tty--based connections, theere are tools available on
  1539.        <ftp://sunsite.unc.edu/pub/Linux/system/network/serial/ppp>. One
  1540.      of the finest is pppsetup-X.XX.tar.gz. Script required here;
  1541.  
  1542.   ╖  the simplest configuration tools to date are surely wvdial and
  1543.      eznet. You feed them your ISP's phone number, your username, your
  1544.      password, and you're in business. Their home pages are at
  1545.       <http://www.worldvisions.ca/wvdial> and
  1546.       <http://www.hwaci.com/sw/eznet>. My preference goes to the latter.
  1547.  
  1548.  
  1549.   3.9.1.  A Quick Start with eznet
  1550.  
  1551.  
  1552.   First of all, create an /etc/resolv.conf like this:
  1553.  
  1554.  
  1555.  
  1556.        nameserver w.x.y.z
  1557.  
  1558.  
  1559.  
  1560.  
  1561.   where you'll insert the address of your ISP's nameserver. To create an
  1562.   account with eznet, issue the following command:
  1563.  
  1564.  
  1565.  
  1566.        #~ eznet add service=YOUR_ISP user=NAME password=PASSWORD phone=PHONE
  1567.  
  1568.  
  1569.  
  1570.  
  1571.   then try to dial your ISP with eznet up YOUR_ISP. If the modem waits
  1572.   for the dial tone and won't connect, then try this command:
  1573.  
  1574.  
  1575.  
  1576.        #~ eznet change YOUR_ISP init0=atx3
  1577.  
  1578.  
  1579.  
  1580.  
  1581.   To hang up, the command is eznet down. That's all!
  1582.  
  1583.  
  1584.  
  1585.   3.10.  POP Client
  1586.  
  1587.  
  1588.   To retrieve your mail from a POP server, you use a POP client like
  1589.   fetchpop or fetchmail. The latter is more advanced, and is probably
  1590.   the only option if your ISP's PPP server can't deal with the command
  1591.   LAST. They're available on
  1592.   <ftp://sunsite.unc.edu/pub/Linux/system/mail/pop>.
  1593.  
  1594.   To configure these clients:
  1595.  
  1596.  
  1597.   ╖  fetchpop: the first time you run it, you'll be prompted for some
  1598.      information. Answer the questions and you're set.
  1599.  
  1600.   ╖  fetchmail: adapt this sample .fetchmailrc:
  1601.  
  1602.  
  1603.  
  1604.        # $HOME/.fetchmailrc
  1605.        poll mbox.myisp.com with protocol pop3;
  1606.          user john there with password _Loo%ny is john here
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.   One user reported that adding ``smtphost localhost'' to the second
  1613.   line improved performance dramatically.
  1614.  
  1615.   You must set the permissions to this file with the command chmod 600
  1616.   .fetchmailrc, otherwise fetchmail will rightly refuse to start. This
  1617.   example is very basic and assumes that you have a running sendmail;
  1618.   there are endless possibilities of configuration. Check out on .
  1619.  
  1620.  
  1621.  
  1622.   3.11.  X Window System (XFree86)
  1623.  
  1624.  
  1625.  
  1626.   3.11.1.  Setting Up the X Server
  1627.  
  1628.  
  1629.   Come on, it's not difficult as it used to be... All major
  1630.   distributions include a tool for setting up X11 (e.g.  XConfigurator,
  1631.   sax, XF86Setup, or at least xf86config).  X configuration is virtually
  1632.   automatic these days, but a few video cards may refuse to work. Each
  1633.   time I experience problems setting up X on a system, I resort to a
  1634.   simple method that has always worked:
  1635.  
  1636.  
  1637.   ╖  make sure that the plain VGA server is installed;
  1638.  
  1639.   ╖  go to   <ftp://ftp.XFree86.org/pub/XFree86/current/binaries> , cd
  1640.      to the proper Linux subdirectory, and download the archives
  1641.      X_version_bin.tgz, X_version_set.tgz, and all the servers.  Amongst
  1642.      other programs, the first one contains the most up-to-date
  1643.      SuperProbe;
  1644.  
  1645.   ╖  unpack X_version_bin.tgz to a temporary directory, cd to it, and
  1646.      run ./SuperProbe. If your video card is recognised, chances are
  1647.      that you'll be able to set it up. Otherwise, hard luck;
  1648.  
  1649.   ╖  install the servers and X_version_set.tgz from /usr/X11R6/, then
  1650.      run XF86Setup.
  1651.   This has always worked for me, but your mileage may vary. Please note
  1652.   that most times X11 won't configure because the specs you choose for
  1653.   your monitor are too low! Start with conservative settings, i.e.
  1654.   800x600 and 256 colours, then pump it up. Warning: these operations
  1655.   are dangerous and your monitor might be damaged!
  1656.  
  1657.  
  1658.  
  1659.   3.11.2.  Keypad
  1660.  
  1661.  
  1662.   We have seen above how to make a few special keys work. The sample
  1663.   file .Xmodmap works well if you want to use Xjed, but it makes the
  1664.   keypad unusable. You'll then need another config file, which we'll
  1665.   call .Xmodmap.num:
  1666.  
  1667.  
  1668.  
  1669.        ! Definitions can be found in <X11/keysymdef.h>
  1670.  
  1671.        keycode 77  = Num_Lock
  1672.        keycode 112 = KP_Divide
  1673.        keycode 63  = KP_Multiply
  1674.        keycode 82  = KP_Subtract
  1675.        keycode 86  = KP_Add
  1676.        keycode 79  = KP_7
  1677.        keycode 80  = KP_8
  1678.        keycode 81  = KP_9
  1679.        keycode 83  = KP_4
  1680.        keycode 84  = KP_5
  1681.        keycode 85  = KP_6
  1682.        keycode 87  = KP_1
  1683.        keycode 88  = KP_2
  1684.        keycode 89  = KP_3
  1685.        keycode 90  = KP_0
  1686.        keycode 91  = KP_Decimal
  1687.  
  1688.  
  1689.  
  1690.  
  1691.   Make sure that your /etc/X11/XF86Config does not contain these three
  1692.   lines:
  1693.  
  1694.  
  1695.  
  1696.          ServerNumLock
  1697.          Xleds
  1698.          XkbDisable
  1699.  
  1700.  
  1701.  
  1702.  
  1703.   and in case, comment them out. To re-enable the keypad, you'll issue
  1704.   the command xmodmap .Xmodmap.num.
  1705.  
  1706.  
  1707.  
  1708.   3.11.3.  Graphical Login with xdm
  1709.  
  1710.  
  1711.   To be greeted by a graphical login, edit the file /etc/inittab, which
  1712.   should include a line like this:
  1713.  
  1714.  
  1715.  
  1716.  
  1717.   x:5:respawn:/usr/bin/X11/xdm -nodaemon
  1718.  
  1719.  
  1720.  
  1721.  
  1722.   where 5 is the runlevel corresponding to X11 (S.u.S.E. uses 4). Modify
  1723.   the line that defines the default runlevel (usually 2 or 3), changing
  1724.   it as above:
  1725.  
  1726.  
  1727.  
  1728.        id:5:initdefault:
  1729.  
  1730.  
  1731.  
  1732.  
  1733.   The number of colours is specified in /etc/X11/xdm/Xserver (AT2YD):
  1734.  
  1735.  
  1736.  
  1737.        :0 local /usr/X11R6/bin/X -bpp 16  # 65k colours
  1738.  
  1739.  
  1740.  
  1741.  
  1742.   If you already have .xinitrc, copy it to .xsession and make the latter
  1743.   executable with chmod +x .xsession. Now issue the command telinit 5
  1744.   and you're in business.
  1745.  
  1746.  
  1747.  
  1748.   3.11.4.  Window Manager
  1749.  
  1750.  
  1751.   Once you've managed to make X work, there are endless possibilities of
  1752.   configuration; it depends on the window manager you use - there are
  1753.   tens to choose from. Mostly, it's all down to editing one or more
  1754.   ASCII files in your home directory; in other cases you don't have to
  1755.   edit a thing, and use an applet or even a menu.
  1756.  
  1757.   Some examples:
  1758.  
  1759.  
  1760.   ╖  the fvwm family: copy /etc/X11/fvwm/system.fvwmrc (or similar) to
  1761.      your home using the appropriate name, browse it and start
  1762.      experimenting. You may waste a lot of time before you get the
  1763.      precise look and feel you like;
  1764.  
  1765.   ╖  WindowMaker: it has several config files that live under
  1766.      $HOME/GNUstep, and a cool configuration applet;
  1767.  
  1768.   ╖  KDE: nothing to edit manually here: everything can be done via the
  1769.      menu.
  1770.  
  1771.   In short: if you don't mind editing config file, choose something like
  1772.   icewm, fvwm*, blackbox etc; if you do mind, the choice is currently
  1773.   restricted to KDE and WindowMaker.
  1774.  
  1775.   It's important to have a good .xinitrc. An example:
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.   #!/bin/sh
  1784.   # $HOME/.xinitrc
  1785.  
  1786.   usermodmap=$HOME/.Xmodmap
  1787.   xmodmap $usermodmap
  1788.  
  1789.   xset s noblank  # turn off the screen saver
  1790.   xset s 300 2    # screen saver start after 5 min
  1791.   xset m 10 5     # set mouse acceleration
  1792.  
  1793.   rxvt -cr green -ls -bg black -fg white -fn 7x14 \
  1794.     -geometry 80x30+57+0 &
  1795.  
  1796.   if [ "$1" = "" ] ; then  # default
  1797.     WINMGR=wmaker
  1798.   else
  1799.     WINMGR=$1
  1800.   fi
  1801.  
  1802.   $WINMGR
  1803.  
  1804.  
  1805.  
  1806.  
  1807.   Although it doesn't appear to be strictly required, make it executable
  1808.   with chmod +x .xinitrc.
  1809.  
  1810.   This .xinitrc lets you choose the window manager: try
  1811.  
  1812.  
  1813.        $ startx startkde # or other w.m.
  1814.  
  1815.  
  1816.  
  1817.  
  1818.   (it doesn't work with some S.u.S.E. versions, though).
  1819.  
  1820.  
  1821.  
  1822.   3.12.  Users' Configurations
  1823.  
  1824.  
  1825.   When you're done editing the dot files, copy them to /etc/skel as seen
  1826.   in Section ``Software Configuration''.  Note that .pinerc can't be
  1827.   fully tailored; make sure that at least the fields user-domain, smtp-
  1828.   server, and nntp-server are properly set up.
  1829.  
  1830.  
  1831.  
  1832.   3.13.  Upgrading
  1833.  
  1834.  
  1835.   If you upgrade your machine, do your backup as usual and remember to
  1836.   save a few additional files. Some could be /etc/X11/XF86Config,
  1837.   /usr/bin/fax, all the stuff in /usr/local, the kernel configuration,
  1838.   the whole /etc, and all the mail in /var/spool/mail.
  1839.  
  1840.  
  1841.  
  1842.   4.  Configuration Software
  1843.  
  1844.  
  1845.   There are several programs that make Linux easy to setup and
  1846.   configure. Some are becoming sort of standard: Red Hat, Caldera and
  1847.   other distributions ship with apps like printtool, netcfg, usertool,
  1848.   etc, while S.u.S.E. ships with a comprehensive configuration program
  1849.   called YAST.  Other useful programs are:
  1850.  
  1851.  
  1852.   ╖  The Dotfile Generator: fine X app with modules to configure
  1853.      packages like emacs, bash, procmail and more. Its page is on
  1854.      <http://www.imada.ou.dk/~blackie/dotfile> ;
  1855.  
  1856.   ╖  Linuxconf: the ultimate configuration tool. It can do everything,
  1857.      both in console and under X. Go to
  1858.      <http://www.solucorp.qc.ca/linuxconf> at once.
  1859.  
  1860.  
  1861.  
  1862.   5.  The End
  1863.  
  1864.  
  1865.  
  1866.  
  1867.   5.1.  Copyright
  1868.  
  1869.  
  1870.   Unless otherwise stated, Linux HOWTO documents are copyrighted by
  1871.   their respective authors. Linux HOWTO documents may be reproduced and
  1872.   distributed in whole or in part, in any medium physical or electronic,
  1873.   as long as this copyright notice is retained on all copies. Commercial
  1874.   redistribution is allowed and encouraged; however, the author would
  1875.   like to be notified of any such distributions.
  1876.  
  1877.   All translations, derivative works, or aggregate works incorporating
  1878.   any Linux HOWTO documents must be covered under this copyright notice.
  1879.   That is, you may not produce a derivative work from a HOWTO and impose
  1880.   additional restrictions on its distribution. Exceptions to these rules
  1881.   may be granted under certain conditions; please contact the Linux
  1882.   HOWTO coordinator at the address given below.
  1883.  
  1884.   In short, we wish to promote dissemination of this information through
  1885.   as many channels as possible. However, we do wish to retain copyright
  1886.   on the HOWTO documents, and would like to be notified of any plans to
  1887.   redistribute the HOWTOs.
  1888.  
  1889.   If you have questions, please contact Tim Bynum, the Linux HOWTO
  1890.   coordinator, at tjbynum@sunsite.unc.edu via email.
  1891.  
  1892.  
  1893.  
  1894.   5.2.  Feedback
  1895.  
  1896.  
  1897.   Perhaps even more than other HOWTOs, this one needs and welcomes your
  1898.   suggestions, criticisms, and contributions. Not only is feedback
  1899.   welcome: it's necessary. If you think something is missing or wrong,
  1900.   please email me.  If you have a distribution other than Red Hat or
  1901.   Caldera and your config files are different or placed in other
  1902.   directories, please tell me and I'll include your tips. My aim is
  1903.   making life with Linux as easy as possible.
  1904.  
  1905.   Linux has a huge number of packages, so it's impossible to include
  1906.   directions for all of them. Please keep your requests/suggestions
  1907.   pertinent to the ``most reasonable'' programs---I'll leave it to your
  1908.   common sense.
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.   5.3.  Disclaimer
  1916.  
  1917.  
  1918.   ``Configuration HOWTO'' was written by Guido Gonzato,
  1919.   guido@ibogeo.df.unibo.it.  Many thanks to all other HOWTO authors and
  1920.   man pages writers/maintainers, whose work I've shamelessly pilfered;
  1921.   and to all people who provided me with feedback.
  1922.  
  1923.   This document is provided ``as is''. I put great effort into writing
  1924.   it as accurately as I could, but you use the information contained in
  1925.   it at your own risk. In no event shall I be liable for any damages
  1926.   resulting from the use of this work.
  1927.  
  1928.   I hope you'll find this work useful, though. Whenever I install a new
  1929.   Linux box, I actually do...
  1930.  
  1931.   Enjoy,
  1932.  
  1933.   Guido   =8-)
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.