home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / emacs-19.000 / emacs-19 / usr / local / info / emacs-21 < prev    next >
Encoding:
GNU Info File  |  1995-09-11  |  39.8 KB  |  934 lines

  1. This is Info file ../info/emacs, produced by Makeinfo-1.55 from the
  2. input file emacs.texi.
  3.  
  4. 
  5. File: emacs,  Node: Resources X,  Next: Lucid Resources,  Prev: Icons X,  Up: Command Arguments
  6.  
  7. X Resources
  8. ===========
  9.  
  10.    Programs running under the X Window System organize their user
  11. options under a hierarchy of classes and resources.  You can specify
  12. default values for these options in your X resources file, usually named
  13. `~/.Xdefaults'.
  14.  
  15.    Each line in the file specifies a value for one option or for a
  16. collection of related options, for one program or for several programs
  17. (optionally even for all programs).
  18.  
  19.    Programs define named resources with particular meanings.  They also
  20. define how to group resources into named classes.  For instance, in
  21. Emacs, the `internalBorder' resource controls the width of the internal
  22. border, and the `borderWidth' resource controls the width of the
  23. external border.  Both of these resources are part of the `BorderWidth'
  24. class.  Case distinctions are significant in these names.
  25.  
  26.    In `~/.Xdefaults', you can specify a value for a single resource on
  27. one line, like this:
  28.  
  29.      emacs.borderWidth: 2
  30.  
  31. Or you can use a class name to specify the same value for all resources
  32. in that class.  Here's an example:
  33.  
  34.      emacs.BorderWidth: 2
  35.  
  36.    If you specify a value for a class, it becomes the default for all
  37. resources in that class.  You can specify values for individual
  38. resources as well; these override the class value, for those particular
  39. resources.  Thus, this example specifies 2 as the default width for all
  40. borders, but overrides this value with 4 for the external border:
  41.  
  42.      emacs.Borderwidth: 2
  43.      emacs.borderwidth: 4
  44.  
  45.    The order in which the lines appear in the file does not matter.
  46. Also, command-line options always override the X resources file.
  47.  
  48.    The string `emacs' in the examples above is also a resource name.
  49. It actually represents the name of the executable file that you invoke
  50. to run Emacs.  If Emacs is installed under a different name, it looks
  51. for resources under that name instead of `emacs'.
  52.  
  53.    When Emacs creates a new frame, it may or may not have a specified
  54. title.  The frame title, if specified, appears in window decorations and
  55. icons as the name of the frame.  It is also used (instead of the Emacs
  56. executable's name) to look up all the resources for that frame.  The
  57. option `-name' specifies a frame title for the initial frame.
  58. Subsequent frames normally have no specified frame title, but Lisp
  59. programs can specify a title when they create frames.
  60.  
  61. `-name NAME'
  62. `--name=NAME'
  63.      Use NAME as the title of the initial frame.
  64.  
  65. `-xrm RESOURCE-VALUES'
  66. `--xrm=RESOURCE-VALUES'
  67.      Specify X resource values for this Emacs job (see below).
  68.  
  69.    For consistency, `-name' also specifies the name to use for other
  70. resource values that do not belong to any particular frame.
  71.  
  72.    The resources that name Emacs invocations also belong to a class; its
  73. name is `Emacs'.  If you write `Emacs' instead of `emacs', the resource
  74. applies to all frames in all Emacs jobs, regardless of frame titles and
  75. regardless of the name of the executable file.  Here is an example:
  76.  
  77.      Emacs.BorderWidth: 2
  78.      Emacs.borderWidth: 4
  79.  
  80.    You can specify a string of additional resource values for Emacs to
  81. use with the command line option `-xrm RESOURCES'.  The text RESOURCES
  82. should have the same format that you would use inside a file of X
  83. resources.  To include multiple resource specifications in DATA, put a
  84. newline between them, just as you would in a file.  You can also use
  85. `#include "FILENAME"' to include a file full of resource
  86. specifications.  Resource values specified with `-xrm' take precedence
  87. over all other resource specifications.
  88.  
  89.    The following table lists the resource names that designate options
  90. for Emacs, each with the class that it belongs to:
  91.  
  92. `background' (class `Background')
  93.      Background color name.
  94.  
  95. `bitmapIcon' (class `BitmapIcon')
  96.      Use a bitmap icon (a picture of a gnu) if `on', let the window
  97.      manager choose an icon if `off'.
  98.  
  99. `borderColor' (class `BorderColor')
  100.      Color name for the external border.
  101.  
  102. `borderWidth' (class `BorderWidth')
  103.      Width in pixels of the external border.
  104.  
  105. `cursorColor' (class `Foreground')
  106.      Color name for text cursor (point).
  107.  
  108. `font' (class `Font')
  109.      Font name for text.
  110.  
  111. `foreground' (class `Foreground')
  112.      Color name for text.
  113.  
  114. `geometry' (class `Geometry')
  115.      Window size and position.  Be careful not to specify this resource
  116.      as `emacs*geometry', because that may affect individual menus as
  117.      well as the Emacs frame itself.  If this resource specifies a
  118.      position, that affects only the initial Emacs frame; but the size
  119.      (if specified) applies to all frames.
  120.  
  121. `iconName' (class `Title')
  122.      Name to display in the icon.
  123.  
  124. `internalBorder' (class `BorderWidth')
  125.      Width in pixels of the internal border.
  126.  
  127. `menuBar' (class `MenuBar')
  128.      Give frames menu bars if `on'; don't have menu bars if `off'.
  129.  
  130. `paneFont' (class `Font')
  131.      Font name for menu pane titles, in non-toolkit versions of Emacs.
  132.  
  133. `pointerColor' (class `Foreground')
  134.      Color of the mouse cursor.
  135.  
  136. `reverseVideo' (class `ReverseVideo')
  137.      Switch foreground and background default colors if `on', use
  138.      colors as specified if `off'.
  139.  
  140. `verticalScrollBars' (class `ScrollBars')
  141.      Give frames scroll bars if `on'; don't have scroll bars if `off'.
  142.  
  143. `selectionFont' (class `Font')
  144.      Font name for pop-up menu items, in non-toolkit versions of Emacs.
  145.      (For toolkit versions, see *Note Lucid Resources::, also see
  146.      *Note Motif Resources::.)
  147.  
  148. `title' (class `Title')
  149.      Name to display in the title bar of the initial Emacs frame.
  150.  
  151.    Here are resources for controlling the appearance of particular faces
  152. (*note Faces::.):
  153.  
  154. `FACE.attributeFont'
  155.      Font for face FACE.
  156.  
  157. `FACE.attributeForeground'
  158.      Foreground color for face FACE.
  159.  
  160. `FACE.attributeBackground'
  161.      Background color for face FACE.
  162.  
  163. `FACE.attributeUnderline'
  164.      Underline flag for face FACE.
  165.  
  166. 
  167. File: emacs,  Node: Lucid Resources,  Next: Motif Resources,  Prev: Resources X,  Up: Command Arguments
  168.  
  169. Lucid Menu X Resources
  170. ======================
  171.  
  172.    If the Emacs installed at your site was built to use the X toolkit
  173. with the Lucid menu widgets, then the menu bar is a separate widget and
  174. has its own resources.  The resource names contain `pane.menubar'
  175. (following, as always, the name of the Emacs invocation or `Emacs'
  176. which stands for all Emacs invocations).  Specify them like this:
  177.  
  178.      Emacs.pane.menubar.RESOURCE:  VALUE
  179.  
  180. For example, to specify the font `8x16' for the menu bar items, write
  181. this:
  182.  
  183.      Emacs.pane.menubar.font:  8x16
  184.  
  185.    Resources for toolkit popup menus have `menu*', in like fashion.
  186. For example, to specify the font `8x16' for the popup menu items, write
  187. this:
  188.  
  189.      Emacs.menu*.font:    8x16
  190.  
  191.    Experience shows that on some systems you may need to add `shell.'
  192. before the `pane.menubar' or `menu*'.
  193.  
  194.    Here is a list of the specific resources for menu bars and popup
  195. menus:
  196.  
  197. `font'
  198.      Font for menu item text.
  199.  
  200. `foreground'
  201.      Color of the foreground.
  202.  
  203. `background'
  204.      Color of the background.
  205.  
  206. `buttonForeground'
  207.      In the menu bar, the color of the foreground for a selected item.
  208.  
  209. `horizontalSpacing'
  210.      Horizontal spacing in pixels between items.  Default is 3.
  211.  
  212. `verticalSpacing'
  213.      Vertical spacing in pixels between items.  Default is 1.
  214.  
  215. `arrowSpacing'
  216.      Horizontal spacing between the arrow (which indicates a submenu)
  217.      and the associated text.  Default is 10.
  218.  
  219. `shadowThickness'
  220.      Thickness of shadow line around the widget.
  221.  
  222. 
  223. File: emacs,  Node: Motif Resources,  Prev: Lucid Resources,  Up: Command Arguments
  224.  
  225. Motif Menu X Resources
  226. ======================
  227.  
  228.    If the Emacs installed at your site was built to use the X toolkit
  229. with the Motif widgets, then the menu bar is a separate widget and has
  230. its own resources.  The resource names contain `pane.menubar'
  231. (following, as always, the name of the Emacs invocation or `Emacs'
  232. which stands for all Emacs invocations).  Specify them like this:
  233.  
  234.      Emacs.pane.menubar.SUBWIDGET.RESOURCE:  VALUE
  235.  
  236.    Each individual string in the menu bar is a subwidget; the
  237. subwidget's name is the same as the menu item string.  For example, the
  238. word `Files' in the menu bar is part of a subwidget named
  239. `emacs.pane.menubar.Files'.  Most likely, you want to specify the same
  240. resources for the whole menu bar.  To do this, use `*' instead of a
  241. specific subwidget name.  For example, to specify the font `8x16' for
  242. the menu bar items, write this:
  243.  
  244.      Emacs.pane.menubar.*.fontList:  8x16
  245.  
  246. This also specifies the resource value for submenus.
  247.  
  248.    Each item in a submenu in the menu bar also has its own name for X
  249. resources; for example, the `Files' submenu has an item named `Save
  250. Buffer'.  A resource specification for a submenu item looks like this:
  251.  
  252.      Emacs.pane.menubar.popup_*.MENU.ITEM.RESOURCE: VALUE
  253.  
  254. For example, here's how to specify the font for the `Save Buffer' item:
  255.  
  256.      Emacs.pane.menubar.popup_*.Files.Save Buffer.fontList: 8x16
  257.  
  258.    For an item in a second-level submenu, such as `Check Message' under
  259. `Spell' under `Edit', the resource fits this template:
  260.  
  261.      Emacs.pane.menubar.popup_*.popup_*.MENU.RESOURCE: VALUE
  262.  
  263. For example,
  264.  
  265.      Emacs.pane.menubar.popup_*.popup_*.Spell.Check Message: VALUE
  266.  
  267.    It's impossible to specify a resource for all the menu bar items
  268. without also specifying it for the submenus as well.  So if you want the
  269. submenu items to look different from the menu bar itself, you must ask
  270. for that in two steps.  First, specify the resource for all of them;
  271. then, override the value for submenus alone.  Here is an example:
  272.  
  273.      Emacs.pane.menubar.*.fontList:  8x16
  274.      Emacs.pane.menubar.popup_*.fontList: 8x16
  275.  
  276.    For toolkit popup menus, use `menu*' instead of `pane.menubar'.  For
  277. example, to specify the font `8x16' for the popup menu items, write
  278. this:
  279.  
  280.      Emacs.menu*.fontList:  8x16
  281.  
  282.    Here is a list of the specific resources for menu bars and popup
  283. menus:
  284.  
  285. `armColor'
  286.      The color to show in an armed button.
  287.  
  288. `fontList'
  289.      The font to use.
  290.  
  291. `marginBottom'
  292. `marginHeight'
  293. `marginLeft'
  294. `marginRight'
  295. `marginTop'
  296. `marginWidth'
  297.      Amount of space to leave around the item, within the border.
  298.  
  299. `borderWidth'
  300.      The width of border around the menu item, on all sides.
  301.  
  302. `shadowThickness'
  303.      The width of the border shadow.
  304.  
  305. `bottomShadowColor'
  306.      The color for the border shadow, on the bottom and the right.
  307.  
  308. `topShadowColor'
  309.      The color for the border shadow, on the bottom and the right.
  310.  
  311. 
  312. File: emacs,  Node: Antinews,  Next: MS-DOS,  Prev: Command Arguments,  Up: Top
  313.  
  314. Emacs 19.28 Antinews
  315. ********************
  316.  
  317.    For those users who live backwards in time, here is information about
  318. downgrading to Emacs version 19.28.  We hope you will enjoy the greater
  319. simplicity that results from the absence of certain Emacs 19.29
  320. features.
  321.  
  322.    * This version doesn't support Windows NT, or the DEC Alpha.
  323.  
  324.    * There is no support for editing formatted text.  The text formatter
  325.      TeX does a much better job of formatting than any formatted text
  326.      editor; we recommend you learn to use it.
  327.  
  328.    * `C-Mouse-2' now runs the menu for setting the default font.
  329.  
  330.    * F1 is no longer an alias for the Help key; you must actually type
  331.      `C-h' if you want help.
  332.  
  333.    * Integers and buffer sizes are limited to 24 bits on most machines.
  334.      But as memory gets more expensive, you won't want to edit such
  335.      large files any more.
  336.  
  337.    * There are no indirect buffers, so you can only display one view of
  338.      an outline.  Meanwhile, the prefix key for Outline minor mode is
  339.      now `C-c C-o'.
  340.  
  341.    * When you are in Transient Mark mode, incremental search always
  342.      deactivates the mark.
  343.  
  344.    * Dynamic abbrev completion has been eliminated in 19.28, and some
  345.      of the other dynamic abbrev customization features are also gone.
  346.  
  347.    * In Dired, Occur mode, Compilation mode, and other such modes, you
  348.      must use `C-c C-c' to select the item point is on.  RET won't do
  349.      it.
  350.  
  351.    * `M-x buffer-menu' now displays the menu buffer in another window.
  352.  
  353.    * The VC (version control) package no longer supports CVS or
  354.      selecting branches other than the principal branch.
  355.  
  356.    * There is no `recover-session' command; if Emacs crashes, you simply
  357.      have to remember which files you were editing before the crash,
  358.      and use `recover-file' on the individual files.
  359.  
  360.    * In Emacs Lisp mode, `C-M-x' now lets `defvar' operate as it
  361.      usually does--setting the value of the variable only if it has no
  362.      value yet.  Use `ESC ESC' to evaluate a Lisp expression, instead
  363.      of `M-:'.
  364.  
  365.    * GNU-standard long option names are not supported.  (Real hackers
  366.      prefer the shorter single-dash names, to save typing.)  All the
  367.      initial options must come before all the action options, and
  368.      whatever initial options you use must appear in this order: `-t',
  369.      `-d', `-nw', `-batch', `-q' or `-no-init-file', `-no-site-file',
  370.      `-u' or `-user', `-debug-init'.
  371.  
  372. 
  373. File: emacs,  Node: MS-DOS,  Next: Manifesto,  Prev: Antinews,  Up: Top
  374.  
  375. MS-DOS Issues
  376. *************
  377.  
  378.    This section briefly describes the peculiarities of using Emacs under
  379. the MS-DOS "operating system" (also known as "MS-DOG").
  380.  
  381.    MS-DOS normally uses a backslash, `\', to separate name units within
  382. a file name, instead of the slash used on other systems.  Emacs on
  383. MS-DOS permits use of either slash or backslash.
  384.  
  385.    On MS-DOS, file names are case-insensitive and limited to eight
  386. characters, plus optionally a period and three more characters.  Emacs
  387. does not know about this limitation; it is up to you to specify valid
  388. file names.  Excess characters before or after the period are generally
  389. ignored.
  390.  
  391.    Display on MS-DOS does not support menus or multiple fonts.  Support
  392. for multiple faces that specify different colors may be added later.
  393.  
  394.    Emacs on MS-DOS does support a mouse (on the default terminal only).
  395. The mouse commands work as documented, aside from those that try to use
  396. menus.  *Note Mouse Commands::.
  397.  
  398.    Because MS-DOS is a single-process "operating system", asynchronous
  399. subprocesses are not available.  In particular, Shell mode and its
  400. derivatives do not work.  Compilation under Emacs with `M-x compile'
  401. does work, but the compiler runs synchronously; you cannot do any more
  402. editing until the compilation finishes.
  403.  
  404.    When you run a subprocess synchronously on MS-DOS, make sure the
  405. program terminates and does not try to read keyboard input.  If the
  406. program does not terminate on its own, you will be unable to terminate
  407. it, because MS-DOS provides no general way to terminate a process.
  408.  
  409. 
  410. File: emacs,  Node: Manifesto,  Prev: MS-DOS,  Up: Top
  411.  
  412. The GNU Manifesto
  413. *****************
  414.  
  415.      The GNU Manifesto which appears below was written by Richard
  416.      Stallman at the beginning of the GNU project, to ask for
  417.      participation and support.  For the first few years, it was
  418.      updated in minor ways to account for developments, but now it
  419.      seems best to leave it unchanged as most people have seen it.
  420.  
  421.      Since that time, we have learned about certain common
  422.      misunderstandings that different wording could help avoid.
  423.      Footnotes added in 1993 help clarify these points.
  424.  
  425.      For up-to-date information about the available GNU software,
  426.      please see the latest issue of the GNU's Bulletin.  The list is
  427.      much too long to include here.
  428.  
  429. What's GNU?  Gnu's Not Unix!
  430. ============================
  431.  
  432.    GNU, which stands for Gnu's Not Unix, is the name for the complete
  433. Unix-compatible software system which I am writing so that I can give it
  434. away free to everyone who can use it.(1) Several other volunteers are
  435. helping me.  Contributions of time, money, programs and equipment are
  436. greatly needed.
  437.  
  438.    So far we have an Emacs text editor with Lisp for writing editor
  439. commands, a source level debugger, a yacc-compatible parser generator,
  440. a linker, and around 35 utilities.  A shell (command interpreter) is
  441. nearly completed.  A new portable optimizing C compiler has compiled
  442. itself and may be released this year.  An initial kernel exists but
  443. many more features are needed to emulate Unix.  When the kernel and
  444. compiler are finished, it will be possible to distribute a GNU system
  445. suitable for program development.  We will use TeX as our text
  446. formatter, but an nroff is being worked on.  We will use the free,
  447. portable X window system as well.  After this we will add a portable
  448. Common Lisp, an Empire game, a spreadsheet, and hundreds of other
  449. things, plus on-line documentation.  We hope to supply, eventually,
  450. everything useful that normally comes with a Unix system, and more.
  451.  
  452.    GNU will be able to run Unix programs, but will not be identical to
  453. Unix.  We will make all improvements that are convenient, based on our
  454. experience with other operating systems.  In particular, we plan to
  455. have longer file names, file version numbers, a crashproof file system,
  456. file name completion perhaps, terminal-independent display support, and
  457. perhaps eventually a Lisp-based window system through which several
  458. Lisp programs and ordinary Unix programs can share a screen.  Both C
  459. and Lisp will be available as system programming languages.  We will
  460. try to support UUCP, MIT Chaosnet, and Internet protocols for
  461. communication.
  462.  
  463.    GNU is aimed initially at machines in the 68000/16000 class with
  464. virtual memory, because they are the easiest machines to make it run
  465. on.  The extra effort to make it run on smaller machines will be left
  466. to someone who wants to use it on them.
  467.  
  468.    To avoid horrible confusion, please pronounce the `G' in the word
  469. `GNU' when it is the name of this project.
  470.  
  471. Why I Must Write GNU
  472. ====================
  473.  
  474.    I consider that the golden rule requires that if I like a program I
  475. must share it with other people who like it.  Software sellers want to
  476. divide the users and conquer them, making each user agree not to share
  477. with others.  I refuse to break solidarity with other users in this
  478. way.  I cannot in good conscience sign a nondisclosure agreement or a
  479. software license agreement.  For years I worked within the Artificial
  480. Intelligence Lab to resist such tendencies and other inhospitalities,
  481. but eventually they had gone too far: I could not remain in an
  482. institution where such things are done for me against my will.
  483.  
  484.    So that I can continue to use computers without dishonor, I have
  485. decided to put together a sufficient body of free software so that I
  486. will be able to get along without any software that is not free.  I
  487. have resigned from the AI lab to deny MIT any legal excuse to prevent
  488. me from giving GNU away.
  489.  
  490. Why GNU Will Be Compatible with Unix
  491. ====================================
  492.  
  493.    Unix is not my ideal system, but it is not too bad.  The essential
  494. features of Unix seem to be good ones, and I think I can fill in what
  495. Unix lacks without spoiling them.  And a system compatible with Unix
  496. would be convenient for many other people to adopt.
  497.  
  498. How GNU Will Be Available
  499. =========================
  500.  
  501.    GNU is not in the public domain.  Everyone will be permitted to
  502. modify and redistribute GNU, but no distributor will be allowed to
  503. restrict its further redistribution.  That is to say, proprietary
  504. modifications will not be allowed.  I want to make sure that all
  505. versions of GNU remain free.
  506.  
  507. Why Many Other Programmers Want to Help
  508. =======================================
  509.  
  510.    I have found many other programmers who are excited about GNU and
  511. want to help.
  512.  
  513.    Many programmers are unhappy about the commercialization of system
  514. software.  It may enable them to make more money, but it requires them
  515. to feel in conflict with other programmers in general rather than feel
  516. as comrades.  The fundamental act of friendship among programmers is the
  517. sharing of programs; marketing arrangements now typically used
  518. essentially forbid programmers to treat others as friends.  The
  519. purchaser of software must choose between friendship and obeying the
  520. law.  Naturally, many decide that friendship is more important.  But
  521. those who believe in law often do not feel at ease with either choice.
  522. They become cynical and think that programming is just a way of making
  523. money.
  524.  
  525.    By working on and using GNU rather than proprietary programs, we can
  526. be hospitable to everyone and obey the law.  In addition, GNU serves as
  527. an example to inspire and a banner to rally others to join us in
  528. sharing.  This can give us a feeling of harmony which is impossible if
  529. we use software that is not free.  For about half the programmers I
  530. talk to, this is an important happiness that money cannot replace.
  531.  
  532. How You Can Contribute
  533. ======================
  534.  
  535.    I am asking computer manufacturers for donations of machines and
  536. money.  I'm asking individuals for donations of programs and work.
  537.  
  538.    One consequence you can expect if you donate machines is that GNU
  539. will run on them at an early date.  The machines should be complete,
  540. ready to use systems, approved for use in a residential area, and not
  541. in need of sophisticated cooling or power.
  542.  
  543.    I have found very many programmers eager to contribute part-time
  544. work for GNU.  For most projects, such part-time distributed work would
  545. be very hard to coordinate; the independently-written parts would not
  546. work together.  But for the particular task of replacing Unix, this
  547. problem is absent.  A complete Unix system contains hundreds of utility
  548. programs, each of which is documented separately.  Most interface
  549. specifications are fixed by Unix compatibility.  If each contributor
  550. can write a compatible replacement for a single Unix utility, and make
  551. it work properly in place of the original on a Unix system, then these
  552. utilities will work right when put together.  Even allowing for Murphy
  553. to create a few unexpected problems, assembling these components will
  554. be a feasible task.  (The kernel will require closer communication and
  555. will be worked on by a small, tight group.)
  556.  
  557.    If I get donations of money, I may be able to hire a few people full
  558. or part time.  The salary won't be high by programmers' standards, but
  559. I'm looking for people for whom building community spirit is as
  560. important as making money.  I view this as a way of enabling dedicated
  561. people to devote their full energies to working on GNU by sparing them
  562. the need to make a living in another way.
  563.  
  564. Why All Computer Users Will Benefit
  565. ===================================
  566.  
  567.    Once GNU is written, everyone will be able to obtain good system
  568. software free, just like air.(2)
  569.  
  570.    This means much more than just saving everyone the price of a Unix
  571. license.  It means that much wasteful duplication of system programming
  572. effort will be avoided.  This effort can go instead into advancing the
  573. state of the art.
  574.  
  575.    Complete system sources will be available to everyone.  As a result,
  576. a user who needs changes in the system will always be free to make them
  577. himself, or hire any available programmer or company to make them for
  578. him.  Users will no longer be at the mercy of one programmer or company
  579. which owns the sources and is in sole position to make changes.
  580.  
  581.    Schools will be able to provide a much more educational environment
  582. by encouraging all students to study and improve the system code.
  583. Harvard's computer lab used to have the policy that no program could be
  584. installed on the system if its sources were not on public display, and
  585. upheld it by actually refusing to install certain programs.  I was very
  586. much inspired by this.
  587.  
  588.    Finally, the overhead of considering who owns the system software
  589. and what one is or is not entitled to do with it will be lifted.
  590.  
  591.    Arrangements to make people pay for using a program, including
  592. licensing of copies, always incur a tremendous cost to society through
  593. the cumbersome mechanisms necessary to figure out how much (that is,
  594. which programs) a person must pay for.  And only a police state can
  595. force everyone to obey them.  Consider a space station where air must
  596. be manufactured at great cost: charging each breather per liter of air
  597. may be fair, but wearing the metered gas mask all day and all night is
  598. intolerable even if everyone can afford to pay the air bill.  And the
  599. TV cameras everywhere to see if you ever take the mask off are
  600. outrageous.  It's better to support the air plant with a head tax and
  601. chuck the masks.
  602.  
  603.    Copying all or parts of a program is as natural to a programmer as
  604. breathing, and as productive.  It ought to be as free.
  605.  
  606. Some Easily Rebutted Objections to GNU's Goals
  607. ==============================================
  608.  
  609.      "Nobody will use it if it is free, because that means they can't
  610.      rely on any support."
  611.  
  612.      "You have to charge for the program to pay for providing the
  613.      support."
  614.  
  615.    If people would rather pay for GNU plus service than get GNU free
  616. without service, a company to provide just service to people who have
  617. obtained GNU free ought to be profitable.(3)
  618.  
  619.    We must distinguish between support in the form of real programming
  620. work and mere handholding.  The former is something one cannot rely on
  621. from a software vendor.  If your problem is not shared by enough
  622. people, the vendor will tell you to get lost.
  623.  
  624.    If your business needs to be able to rely on support, the only way
  625. is to have all the necessary sources and tools.  Then you can hire any
  626. available person to fix your problem; you are not at the mercy of any
  627. individual.  With Unix, the price of sources puts this out of
  628. consideration for most businesses.  With GNU this will be easy.  It is
  629. still possible for there to be no available competent person, but this
  630. problem cannot be blamed on distribution arrangements.  GNU does not
  631. eliminate all the world's problems, only some of them.
  632.  
  633.    Meanwhile, the users who know nothing about computers need
  634. handholding: doing things for them which they could easily do
  635. themselves but don't know how.
  636.  
  637.    Such services could be provided by companies that sell just
  638. hand-holding and repair service.  If it is true that users would rather
  639. spend money and get a product with service, they will also be willing
  640. to buy the service having got the product free.  The service companies
  641. will compete in quality and price; users will not be tied to any
  642. particular one.  Meanwhile, those of us who don't need the service
  643. should be able to use the program without paying for the service.
  644.  
  645.      "You cannot reach many people without advertising, and you must
  646.      charge for the program to support that."
  647.  
  648.      "It's no use advertising a program people can get free."
  649.  
  650.    There are various forms of free or very cheap publicity that can be
  651. used to inform numbers of computer users about something like GNU.  But
  652. it may be true that one can reach more microcomputer users with
  653. advertising.  If this is really so, a business which advertises the
  654. service of copying and mailing GNU for a fee ought to be successful
  655. enough to pay for its advertising and more.  This way, only the users
  656. who benefit from the advertising pay for it.
  657.  
  658.    On the other hand, if many people get GNU from their friends, and
  659. such companies don't succeed, this will show that advertising was not
  660. really necessary to spread GNU.  Why is it that free market advocates
  661. don't want to let the free market decide this?(4)
  662.  
  663.      "My company needs a proprietary operating system to get a
  664.      competitive edge."
  665.  
  666.    GNU will remove operating system software from the realm of
  667. competition.  You will not be able to get an edge in this area, but
  668. neither will your competitors be able to get an edge over you.  You and
  669. they will compete in other areas, while benefiting mutually in this
  670. one.  If your business is selling an operating system, you will not
  671. like GNU, but that's tough on you.  If your business is something else,
  672. GNU can save you from being pushed into the expensive business of
  673. selling operating systems.
  674.  
  675.    I would like to see GNU development supported by gifts from many
  676. manufacturers and users, reducing the cost to each.(5)
  677.  
  678.      "Don't programmers deserve a reward for their creativity?"
  679.  
  680.    If anything deserves a reward, it is social contribution.
  681. Creativity can be a social contribution, but only in so far as society
  682. is free to use the results.  If programmers deserve to be rewarded for
  683. creating innovative programs, by the same token they deserve to be
  684. punished if they restrict the use of these programs.
  685.  
  686.      "Shouldn't a programmer be able to ask for a reward for his
  687.      creativity?"
  688.  
  689.    There is nothing wrong with wanting pay for work, or seeking to
  690. maximize one's income, as long as one does not use means that are
  691. destructive.  But the means customary in the field of software today
  692. are based on destruction.
  693.  
  694.    Extracting money from users of a program by restricting their use of
  695. it is destructive because the restrictions reduce the amount and the
  696. ways that the program can be used.  This reduces the amount of wealth
  697. that humanity derives from the program.  When there is a deliberate
  698. choice to restrict, the harmful consequences are deliberate destruction.
  699.  
  700.    The reason a good citizen does not use such destructive means to
  701. become wealthier is that, if everyone did so, we would all become
  702. poorer from the mutual destructiveness.  This is Kantian ethics; or,
  703. the Golden Rule.  Since I do not like the consequences that result if
  704. everyone hoards information, I am required to consider it wrong for one
  705. to do so.  Specifically, the desire to be rewarded for one's creativity
  706. does not justify depriving the world in general of all or part of that
  707. creativity.
  708.  
  709.      "Won't programmers starve?"
  710.  
  711.    I could answer that nobody is forced to be a programmer.  Most of us
  712. cannot manage to get any money for standing on the street and making
  713. faces.  But we are not, as a result, condemned to spend our lives
  714. standing on the street making faces, and starving.  We do something
  715. else.
  716.  
  717.    But that is the wrong answer because it accepts the questioner's
  718. implicit assumption: that without ownership of software, programmers
  719. cannot possibly be paid a cent.  Supposedly it is all or nothing.
  720.  
  721.    The real reason programmers will not starve is that it will still be
  722. possible for them to get paid for programming; just not paid as much as
  723. now.
  724.  
  725.    Restricting copying is not the only basis for business in software.
  726. It is the most common basis because it brings in the most money.  If it
  727. were prohibited, or rejected by the customer, software business would
  728. move to other bases of organization which are now used less often.
  729. There are always numerous ways to organize any kind of business.
  730.  
  731.    Probably programming will not be as lucrative on the new basis as it
  732. is now.  But that is not an argument against the change.  It is not
  733. considered an injustice that sales clerks make the salaries that they
  734. now do.  If programmers made the same, that would not be an injustice
  735. either.  (In practice they would still make considerably more than
  736. that.)
  737.  
  738.      "Don't people have a right to control how their creativity is
  739.      used?"
  740.  
  741.    "Control over the use of one's ideas" really constitutes control over
  742. other people's lives; and it is usually used to make their lives more
  743. difficult.
  744.  
  745.    People who have studied the issue of intellectual property rights
  746. carefully (such as lawyers) say that there is no intrinsic right to
  747. intellectual property.  The kinds of supposed intellectual property
  748. rights that the government recognizes were created by specific acts of
  749. legislation for specific purposes.
  750.  
  751.    For example, the patent system was established to encourage
  752. inventors to disclose the details of their inventions.  Its purpose was
  753. to help society rather than to help inventors.  At the time, the life
  754. span of 17 years for a patent was short compared with the rate of
  755. advance of the state of the art.  Since patents are an issue only among
  756. manufacturers, for whom the cost and effort of a license agreement are
  757. small compared with setting up production, the patents often do not do
  758. much harm.  They do not obstruct most individuals who use patented
  759. products.
  760.  
  761.    The idea of copyright did not exist in ancient times, when authors
  762. frequently copied other authors at length in works of non-fiction.  This
  763. practice was useful, and is the only way many authors' works have
  764. survived even in part.  The copyright system was created expressly for
  765. the purpose of encouraging authorship.  In the domain for which it was
  766. invented--books, which could be copied economically only on a printing
  767. press--it did little harm, and did not obstruct most of the individuals
  768. who read the books.
  769.  
  770.    All intellectual property rights are just licenses granted by society
  771. because it was thought, rightly or wrongly, that society as a whole
  772. would benefit by granting them.  But in any particular situation, we
  773. have to ask: are we really better off granting such license?  What kind
  774. of act are we licensing a person to do?
  775.  
  776.    The case of programs today is very different from that of books a
  777. hundred years ago.  The fact that the easiest way to copy a program is
  778. from one neighbor to another, the fact that a program has both source
  779. code and object code which are distinct, and the fact that a program is
  780. used rather than read and enjoyed, combine to create a situation in
  781. which a person who enforces a copyright is harming society as a whole
  782. both materially and spiritually; in which a person should not do so
  783. regardless of whether the law enables him to.
  784.  
  785.      "Competition makes things get done better."
  786.  
  787.    The paradigm of competition is a race: by rewarding the winner, we
  788. encourage everyone to run faster.  When capitalism really works this
  789. way, it does a good job; but its defenders are wrong in assuming it
  790. always works this way.  If the runners forget why the reward is offered
  791. and become intent on winning, no matter how, they may find other
  792. strategies--such as, attacking other runners.  If the runners get into
  793. a fist fight, they will all finish late.
  794.  
  795.    Proprietary and secret software is the moral equivalent of runners
  796. in a fist fight.  Sad to say, the only referee we've got does not seem
  797. to object to fights; he just regulates them ("For every ten yards you
  798. run, you can fire one shot").  He really ought to break them up, and
  799. penalize runners for even trying to fight.
  800.  
  801.      "Won't everyone stop programming without a monetary incentive?"
  802.  
  803.    Actually, many people will program with absolutely no monetary
  804. incentive.  Programming has an irresistible fascination for some
  805. people, usually the people who are best at it.  There is no shortage of
  806. professional musicians who keep at it even though they have no hope of
  807. making a living that way.
  808.  
  809.    But really this question, though commonly asked, is not appropriate
  810. to the situation.  Pay for programmers will not disappear, only become
  811. less.  So the right question is, will anyone program with a reduced
  812. monetary incentive?  My experience shows that they will.
  813.  
  814.    For more than ten years, many of the world's best programmers worked
  815. at the Artificial Intelligence Lab for far less money than they could
  816. have had anywhere else.  They got many kinds of non-monetary rewards:
  817. fame and appreciation, for example.  And creativity is also fun, a
  818. reward in itself.
  819.  
  820.    Then most of them left when offered a chance to do the same
  821. interesting work for a lot of money.
  822.  
  823.    What the facts show is that people will program for reasons other
  824. than riches; but if given a chance to make a lot of money as well, they
  825. will come to expect and demand it.  Low-paying organizations do poorly
  826. in competition with high-paying ones, but they do not have to do badly
  827. if the high-paying ones are banned.
  828.  
  829.      "We need the programmers desperately.  If they demand that we stop
  830.      helping our neighbors, we have to obey."
  831.  
  832.    You're never so desperate that you have to obey this sort of demand.
  833. Remember: millions for defense, but not a cent for tribute!
  834.  
  835.      "Programmers need to make a living somehow."
  836.  
  837.    In the short run, this is true.  However, there are plenty of ways
  838. that programmers could make a living without selling the right to use a
  839. program.  This way is customary now because it brings programmers and
  840. businessmen the most money, not because it is the only way to make a
  841. living.  It is easy to find other ways if you want to find them.  Here
  842. are a number of examples.
  843.  
  844.    A manufacturer introducing a new computer will pay for the porting of
  845. operating systems onto the new hardware.
  846.  
  847.    The sale of teaching, hand-holding and maintenance services could
  848. also employ programmers.
  849.  
  850.    People with new ideas could distribute programs as freeware, asking
  851. for donations from satisfied users, or selling hand-holding services.
  852. I have met people who are already working this way successfully.
  853.  
  854.    Users with related needs can form users' groups, and pay dues.  A
  855. group would contract with programming companies to write programs that
  856. the group's members would like to use.
  857.  
  858.    All sorts of development can be funded with a Software Tax:
  859.  
  860.      Suppose everyone who buys a computer has to pay x percent of the
  861.      price as a software tax.  The government gives this to an agency
  862.      like the NSF to spend on software development.
  863.  
  864.      But if the computer buyer makes a donation to software development
  865.      himself, he can take a credit against the tax.  He can donate to
  866.      the project of his own choosing--often, chosen because he hopes to
  867.      use the results when it is done.  He can take a credit for any
  868.      amount of donation up to the total tax he had to pay.
  869.  
  870.      The total tax rate could be decided by a vote of the payers of the
  871.      tax, weighted according to the amount they will be taxed on.
  872.  
  873.      The consequences:
  874.  
  875.         * The computer-using community supports software development.
  876.  
  877.         * This community decides what level of support is needed.
  878.  
  879.         * Users who care which projects their share is spent on can
  880.           choose this for themselves.
  881.  
  882.    In the long run, making programs free is a step toward the
  883. post-scarcity world, where nobody will have to work very hard just to
  884. make a living.  People will be free to devote themselves to activities
  885. that are fun, such as programming, after spending the necessary ten
  886. hours a week on required tasks such as legislation, family counseling,
  887. robot repair and asteroid prospecting.  There will be no need to be
  888. able to make a living from programming.
  889.  
  890.    We have already greatly reduced the amount of work that the whole
  891. society must do for its actual productivity, but only a little of this
  892. has translated itself into leisure for workers because much
  893. nonproductive activity is required to accompany productive activity.
  894. The main causes of this are bureaucracy and isometric struggles against
  895. competition.  Free software will greatly reduce these drains in the
  896. area of software production.  We must do this, in order for technical
  897. gains in productivity to translate into less work for us.
  898.  
  899.    ---------- Footnotes ----------
  900.  
  901.    (1)  The wording here was careless.  The intention was that nobody
  902. would have to pay for *permission* to use the GNU system.  But the
  903. words don't make this clear, and people often interpret them as saying
  904. that copies of GNU should always be distributed at little or no charge.
  905. That was never the intent; later on, the manifesto mentions the
  906. possibility of companies providing the service of distribution for a
  907. profit.  Subsequently I have learned to distinguish carefully between
  908. "free" in the sense of freedom and "free" in the sense of price.  Free
  909. software is software that users have the freedom to distribute and
  910. change.  Some users may obtain copies at no charge, while others pay to
  911. obtain copies--and if the funds help support improving the software, so
  912. much the better.  The important thing is that everyone who has a copy
  913. has the freedom to cooperate with others in using it.
  914.  
  915.    (2)  This is another place I failed to distinguish carefully between
  916. the two different meanings of "free".  The statement as it stands is
  917. not false--you can get copies of GNU software at no charge, from your
  918. friends or over the net.  But it does suggest the wrong idea.
  919.  
  920.    (3)  Several such companies now exist.
  921.  
  922.    (4)  The Free Software Foundation raises most of its funds from a
  923. distribution service, although it is a charity rather than a company.
  924. If *no one* chooses to obtain copies by ordering the from the FSF, it
  925. will be unable to do its work.  But this does not mean that proprietary
  926. restrictions are justified to force every user to pay.  If a small
  927. fraction of all the users order copies from the FSF, that is sufficient
  928. to keep the FSF afloat.  So we ask users to choose to support us in
  929. this way.  Have you done your part?
  930.  
  931.    (5)  A group of computer companies recently pooled funds to support
  932. maintenance of the GNU C Compiler.
  933.  
  934.