r326: Pinboard icons can now be dragged to filer windows or applications, just
[rox-filer/ma.git] / ROX-Filer / src / Docs / Manual.lyx
blob2763a94bb086a6cb873f8df0b5e205a9a449e749
1 #LyX 1.1 created this file. For more info see http://www.lyx.org/
2 \lyxformat 2.16
3 \textclass article
4 \begin_preamble
5 \def \Tab {\thinspace$\langle\hbox{Tab}\rangle$\thinspace}
6 \end_preamble
7 \language default
8 \inputencoding latin1
9 \fontscheme default
10 \graphics default
11 \paperfontsize default
12 \spacing single 
13 \papersize Default
14 \paperpackage widemarginsa4
15 \use_geometry 0
16 \use_amsmath 0
17 \paperorientation portrait
18 \secnumdepth 3
19 \tocdepth 3
20 \paragraph_separation indent
21 \defskip medskip
22 \quotes_language english
23 \quotes_times 2
24 \papercolumns 1
25 \papersides 1
26 \paperpagestyle default
28 \layout Title
30 ROX-Filer User Manual
31 \layout Author
33 Thomas Leonard, tal197@users.sourceforge.net
34 \layout Date
37 \latex latex 
39 \backslash 
40 today
41 \layout Abstract
43 ROX-Filer is a graphical file manger for the X Window System.
44  Its user interface is based on the RISC OS filer and it supports similar
45  features such as application directories and drag-and-drop loading and
46  saving of files.
47 \layout Standard
50 \begin_inset LatexCommand \tableofcontents{}
52 \end_inset 
55 \layout Section
57 Introduction
58 \layout Standard
60 ROX-Filer is a simple and easy to use graphical file manager for X11, the
61  windowing system used on Unix and Unix-like operating systems.
62  It is also the core component of the ROX Desktop
63 \begin_inset LatexCommand \cite{ROX}
65 \end_inset 
68 \layout Subsection
70 Features
71 \layout Description
73 XDND A common drag-and-drop protocol used, for example, by the GNOME desktop
74 \begin_inset LatexCommand \cite{GNOME}
76 \end_inset 
79  This allows data to be loaded into an application by dragging it from a
80  filer window to a program.
81  The full specification is given in 
82 \begin_inset LatexCommand \cite{DND}
84 \end_inset 
87 \layout Description
89 XDS An extension to XDND that allows applications to save data by dragging
90  an icon back to a filer window.
91  The full specification is given in 
92 \begin_inset LatexCommand \cite{XDS}
94 \end_inset 
97 \layout Description
99 ROX\SpecialChar ~
100 Choices A simple, but flexible, system for managing user choices.
101  See 
102 \begin_inset LatexCommand \cite{Choices}
104 \end_inset 
106  for details.
107 \layout Description
109 Application\SpecialChar ~
110 directories Self contained relocatable applications, where installati
111 on is as simple as copying it to where you want it and uninstalling it is
112  just a matter of deleting a directory.
113  Described later in this documentation.
114 \layout Section
116 Conditions
117 \layout Standard
119 This program is free software; you can redistribute it and/or modify it
120  under the terms of the GNU General Public License as published by the Free
121  Software Foundation; either version 2 of the License, or (at your option)
122  any later version.
123 \layout Standard
125 This program is distributed in the hope that it will be useful, but WITHOUT
126  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
127  FOR A PARTICULAR PURPOSE.
128  See the GNU General Public License for more details.
129 \layout Standard
131 You should have received a copy of the GNU General Public License along
132  with this program; if not, write to the Free Software Foundation, Inc.,
133  59 Temple Place, Suite 330, Boston, MA, 02111-1307, USA.
134 \layout Section
136 Instructions
137 \layout Subsection
139 Compiling
140 \layout Standard
142 ROX-Filer is usually supplied in source-only form.
143  To compile and run it, you will require
144 \layout Itemize
146 Unix or Linux (root access is not required),
147 \layout Itemize
149 The X Window system (supplied as standard on all modern systems),
150 \layout Itemize
152 GTK+ 1.2.0 or later (libraries and headers) --- get the latest version from
154 \begin_inset LatexCommand \cite{GTK+}
156 \end_inset 
159 \layout Itemize
161 A C compiler (standard on most systems).
162 \layout Standard
164 All of the above are standard on most modern Linux distributions.
165  To check which version of GTK+ you have installed, run the 
166 \family typewriter 
167 gtk-config
168 \family default 
169  command, like this (
170 \family typewriter 
172 \family default 
173  is the shell prompt):
174 \layout LyX-Code
176 $ gtk-config --version
177 \layout LyX-Code
179 1.2.3
180 \layout Standard
182 To compile:
183 \layout Enumerate
185 Change to the directory containing the ROX-Filer subdirectory.
186 \layout Enumerate
188 Run the AppRun script with the 
189 \family typewriter 
190 --compile
191 \family default 
192  option, like this:
193 \begin_deeper 
194 \layout LyX-Code
196 $ ROX-Filer/AppRun --compile
197 \end_deeper 
198 \layout Enumerate
200 ROX-Filer will perform various checks to find out what kind of system it
201  is being run on and will then compile.
202  If it doesn't work then please e-mail me and complain! Tell me what kind
203  of system you have and what errors were reported.
204  If you manage to fix the problem yourself then please e-mail me the fix.
205 \begin_deeper 
206 \layout Standard
208 The executables files are stored inside the ROX-Filer directory in a different
209  subdirectory for each platform.
210  Therefore, you can compile the same application on several different types
211  of machine and then run it from any of them using the AppRun script.
212  This is particularly useful in a network environment.
213 \end_deeper 
214 \layout Enumerate
216 The filer needs some shared files to work --- icons for the various file
217  types, rules for determining file types and default run actions.
218  These are installed, along with the filer itself, by the '
219 \family typewriter 
220 install.sh
221 \family default 
222 ' script supplied with the filer.
223  Run it like this:
224 \begin_deeper 
225 \layout LyX-Code
227 $ su
228 \layout LyX-Code
230 [ enter root password ]
231 \layout LyX-Code
233 $ ./install.sh
234 \layout Standard
236 If you don't have the root password then don't worry --- skip the '
237 \family typewriter 
239 \family default 
240 ' step and follow the instructions for installing into your home directory.
242 \end_deeper 
243 \layout Standard
245 You can now run the filer by running the AppRun script without any options,
246  like this:
247 \layout LyX-Code
249 $ ROX-Filer/AppRun
250 \layout Standard
252 A window should appear and display the contents of your home directory.
253  If you opted to install the `
254 \family typewriter 
256 \family default 
257 ' script then you can simply run that to open a viewer onto the current
258  directory.
259  You can also use it to open files in the same way that the filer would.
260  If you installed the script into your home directory then you may need
261  to set your PATH environment variable so that the shell can find it.
262 \layout Subsection
264 Invoking
265 \layout Standard
267 By default, ROX-Filer will start by displaying your home directory.
268  You can get it to display other directories instead by listing them after
269  the command:
270 \layout LyX-Code
272 $ ROX-Filer/AppRun /home /usr /usr/local
273 \layout Standard
275 If you want the filer to manage your desktop background then you use the
277 \family typewriter 
278 --pinboard
279 \family default 
280  option and supply a name for the pinboard:
281 \layout LyX-Code
283 $ ROX-Filer/AppRun --pinboard MyPinboard
284 \layout Standard
286 The pinboard configuration is saved in `
287 \emph on 
288 <Choices>/ROX-Filer/pb_MyPinboard
289 \emph default 
291  You may have to use the 
292 \family typewriter 
293 --new
294 \family default 
295  option when creating a pinboard (this will be fixed in later versions).
296 \layout Standard
298 If you want one of the directories to be opened as a panel put 
299 \family typewriter 
301 \family default 
302  or 
303 \family typewriter 
305 \family default 
306  before the directory (for `bottom' or `top' panels).
307  If you don't know what a panel is, try it and see! To run the filer in
308  the background, put an & at the end of the line.
309 \layout LyX-Code
311 $ mkdir ~/Panel
312 \layout LyX-Code
314 $ ln -s $HOME ~/Panel/Home
315 \layout LyX-Code
317 $ ROX-Filer/AppRun -b ~/Panel &
318 \layout Standard
320 The panel should be displayed in a window without a title bar.
321  If this does not work then you may need to update your window manager.
322  The filer was designed and tested using the Enlightenment window manager
323 \begin_inset LatexCommand \cite{enlightenment}
325 \end_inset 
328  You could also try using the 
329 \family typewriter 
331 \family default 
332  option which bypasses the window manager entirely (also use this if the
333  panel appears in the wrong place):
334 \layout LyX-Code
336 $ ROX-Filer/AppRun -o -b ~/Panel &
337 \layout Standard
339 Note that if the same version of the filer is already running on this machine
340  then, by default, it will be used to open the directories and the new copy
341  will exit immediately.
342  You can override this (perhaps because the old copy has stopped responding
343  for some reason) using the `
344 \family typewriter 
345 --new
346 \family default 
347 ' option.
348 \layout Subsection
350 Mouse button and key bindings
351 \layout Standard
353 Quick start:
354 \layout Itemize
356 Click the left
357 \begin_float footnote 
358 \layout Standard
360 This documentation assumes that button--1 is the left button, button--2
361  is the middle button and button--3 is the right button.
362  This is not always the case --- for example, in a left-handed setup.
363 \end_float 
364  mouse button to open files and directories.
365 \layout Itemize
367 Click the right button to get a menu.
368  Click over a file to perform an action on that file.
369 \layout Itemize
371 Drag files between windows to copy (left button) or move (middle button)
372  them.
373 \layout Standard
376 \latex latex 
378 \backslash 
379 noindent 
380 \latex default 
381 By default, the mouse button bindings are designed to fit in with X conventions.
382  However, the behaviour is highly configurable --- have a play in the Options
383  window if you don't like the normal settings.
384  The normal settings behave as follows:
385 \layout Standard
388 \latex latex 
390 \backslash 
391 medskip
392 \layout Standard
393 \LyXTable
394 multicol5
395 19 2 0 0 -1 -1 -1 -1
396 1 1 0 0
397 1 1 0 0
398 0 1 1 0
399 0 1 1 0
400 0 1 0 0
401 0 1 0 0
402 0 1 0 0
403 0 1 1 0
404 0 1 0 0
405 0 1 1 0
406 0 1 0 0
407 0 1 1 0
408 0 1 1 0
409 0 1 0 0
410 0 1 0 0
411 0 1 0 0
412 0 1 0 0
413 0 1 0 0
414 0 1 0 0
415 2 1 0 "3.5cm" ""
416 2 1 1 "9.5cm" ""
417 0 2 0 1 0 0 0 "" ""
418 0 2 0 1 0 0 0 "" ""
419 0 8 0 1 0 0 0 "" ""
420 0 8 0 1 1 0 0 "" ""
421 0 8 0 1 0 0 0 "" ""
422 0 8 0 1 1 0 0 "" ""
423 0 8 0 1 0 0 0 "" ""
424 0 8 0 1 0 0 0 "" ""
425 0 2 0 1 0 0 0 "" ""
426 0 8 0 1 0 0 0 "" ""
427 0 8 0 1 0 0 0 "" ""
428 0 8 0 1 0 0 0 "" ""
429 0 8 0 1 1 0 0 "" ""
430 0 8 0 1 1 0 0 "" ""
431 0 8 0 1 0 0 0 "" ""
432 0 2 0 1 0 0 0 "" ""
433 0 8 0 1 1 0 0 "" ""
434 0 8 0 1 0 0 0 "" ""
435 0 2 0 1 0 0 0 "" ""
436 0 8 0 1 0 0 0 "" ""
437 0 8 0 1 0 0 0 "" ""
438 0 8 0 1 1 0 0 "" ""
439 0 8 0 1 0 0 0 "" ""
440 0 8 0 1 1 0 0 "" ""
441 0 8 0 1 0 0 0 "" ""
442 0 8 0 1 0 0 0 "" ""
443 0 8 0 1 0 0 0 "" ""
444 0 8 0 1 0 0 0 "" ""
445 0 8 0 1 0 0 0 "" ""
446 0 8 0 1 0 0 0 "" ""
447 0 8 0 1 0 0 0 "" ""
448 0 8 0 1 0 0 0 "" ""
449 0 8 0 1 0 0 0 "" ""
450 0 8 0 1 0 0 0 "" ""
451 0 8 0 1 0 0 0 "" ""
452 0 8 0 1 0 0 0 "" ""
453 0 8 0 1 0 0 0 "" ""
454 0 8 0 1 0 0 0 "" ""
456 Key or mouse button
457 \newline 
458 Action
459 \newline 
460 Left button click
461 \newline 
462 Open the file or directory clicked on.
463 \newline 
465 \newline 
466 Hold down Ctrl to select things instead of opening them.
467 \newline 
469 \newline 
470 Hold down Shift to look inside applications, treat files as text, follow
471  symlinks or mount devices.
472 \newline 
473 Middle button click
474 \newline 
475 Same as left click, but open a directory in a new window or close the viewer
476  when opening a file.
477 \newline 
478 Right button click
479 \newline 
480 Open the main menu.
481  Hold down Ctrl while clicking to go directly to the Selection submenu.
482 \newline 
483 Drag an item 
484 \newline 
485 Copy the file(s) to the destination (an application or another filer window).
486 \newline 
487 (left mouse button)
488 \newline 
489 Hold down Shift to move the file, or Ctrl+Shift to create a symbolic link.
490 \newline 
491 Drag an item
492 \newline 
493 As above, but always moves rather than copying or symlinking.
494 \newline 
495 (middle mouse button)
496 \newline 
498 \newline 
499 Drag (not over an item)
500 \newline 
501 Select a group of items by dragging a box around them.
502  With the left mouse button, only the files
503 \newline 
505 \newline 
506 in the box will be selected.
507  If you hold down Ctrl then the boxed items are added to the selection.
508 \newline 
510 \newline 
511 If the other mouse button is used then the boxed items are toggled between
512  selected and unselected.
513 \newline 
514 Backspace
515 \newline 
516 Change to viewing the parent directory.
517 \newline 
518 Cursor keys
519 \newline 
520 Move the cursor around.
521 \newline 
522 Page Up, Page Down
523 \newline 
524 Move up and down in steps of ten rows at a time.
525 \newline 
526 Home, End
527 \newline 
528 Move to the first/last entry in the directory.
529 \newline 
530 Return
531 \newline 
532 Open the item under the cursor.
533  With Shift held down this acts like choosing 'Shift Open' from the menu.
534 \newline 
535 Spacebar
536 \newline 
537 Toggles the item under the cursor between being selected and unselected.
538 \layout Standard
541 \latex latex 
543 \backslash 
544 medskip
545 \backslash 
546 noindent 
547 \latex default 
548 Other keys can easily be defined by opening the menu, moving the pointer
549  over the item you want to use and pressing a key.
550  The key will appear in the menu and can be used from then on.
551  To make the new key bindings permanent, open the Options box from the menu
552  and click on Save.
553 \layout Subsection
555 The selection
556 \layout Standard
558 While items are selected in a ROX-Filer window the filer has the global
559  selection.
560  You can then paste into another window to get the pathnames of the selected
561  files.
562  For example, to extract the files from a .tgz archive on a floppy disk into
563  your home directory:
564 \layout Enumerate
566 Choose `Xterm here' from the menu in your home directory.
567 \layout Enumerate
569 Type `tar xzf ' (but don't press Return)
570 \layout Enumerate
572 Ctrl-click on the .tgz file to select it.
573 \layout Enumerate
575 Click the middle button in the xterm window to paste the name of the file
576  into the command.
577 \layout Enumerate
579 Press Return in the xterm to execute the command.
580 \layout Subsection
583 \begin_inset LatexCommand \label{sec: Toolbar}
585 \end_inset 
587 The toolbar
588 \layout Standard
590 By default, each window has a toolbar along the top.
591  You can disable this (or make it larger) from the Options window.
592  The four buttons on the toolbar are:
593 \layout Standard
594 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
595 multicol5
596 5 3 0 0 -1 -1 -1 -1
597 1 1 0 0
598 1 1 0 0
599 0 1 0 0
600 0 1 0 0
601 0 1 0 0
602 8 1 0 "" ""
603 2 1 1 "4.5cm" ""
604 2 0 1 "4.5cm" ""
605 0 8 0 1 0 0 0 "" ""
606 0 2 0 1 0 0 0 "" ""
607 0 2 0 1 0 0 0 "" ""
608 0 8 0 1 0 0 0 "" ""
609 0 2 0 1 0 0 0 "" ""
610 0 8 0 1 0 0 0 "" ""
611 0 8 0 1 0 0 0 "" ""
612 0 2 0 1 0 0 0 "" ""
613 0 2 0 1 0 0 0 "" ""
614 0 8 0 1 0 0 0 "" ""
615 0 8 0 1 0 0 0 "" ""
616 0 8 0 1 0 0 0 "" ""
617 0 8 0 1 0 0 0 "" ""
618 0 8 0 1 0 0 0 "" ""
619 0 8 0 1 0 0 0 "" ""
621 Icon
622 \newline 
623 Action
624 \newline 
625 Other action
626 \newline 
627 Up arrow
628 \newline 
629 Change to parent directory
630 \newline 
631 Show parent in a new window
632 \newline 
633 House
634 \newline 
635 Change to home directory
636 \newline 
637 Show home in a new window
638 \newline 
639 Looping arrows
640 \newline 
641 Reread the directory contents
642 \newline 
643 Open a new window
644 \newline 
645 Information
646 \newline 
647 Show ROX-Filer's help files
648 \newline 
649 Same
650 \layout Standard
653 \latex latex 
655 \backslash 
656 noindent 
657 \latex default 
658 If the toolbar is in Normal mode (ie, not GNOME mode) then you may also
659  use either of the other buttons to perform the `Other action'.
660  If the 'New window on button 1' option is turned on then the `Action' and
661  `Other action' of the first two are swapped.
662 \layout Subsection
664 The menus
665 \layout Standard
667 You can open a menu by right clicking
668 \begin_float footnote 
669 \layout Standard
671 If the Use `RISC OS mouse bindings' option is on then use the middle button
672  instead.
673 \end_float 
674  over a panel or filer window.
675  Here is a full description of each choice and what it does:
676 \layout Standard
677 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
678 multicol5
679 6 2 0 0 -1 -1 -1 -1
680 1 1 0 0
681 1 1 0 0
682 0 1 0 0
683 0 1 0 0
684 0 1 0 0
685 0 1 0 0
686 8 1 0 "" ""
687 2 1 1 "8cm" ""
688 0 8 0 1 0 0 0 "" ""
689 0 8 0 1 0 0 0 "" ""
690 0 8 0 1 0 0 0 "" ""
691 0 8 0 1 0 0 0 "" ""
692 0 8 0 1 0 0 0 "" ""
693 0 8 0 1 0 0 0 "" ""
694 0 8 0 1 0 0 0 "" ""
695 0 2 0 1 0 0 0 "" ""
696 0 8 0 1 0 0 0 "" ""
697 0 8 0 1 0 0 0 "" ""
698 0 8 0 1 0 0 0 "" ""
699 0 8 0 1 0 0 0 "" ""
701 Entry
702 \newline 
703 Action
704 \newline 
705 Select All
706 \newline 
707 Select every item in this window.
708 \newline 
709 Clear Selection
710 \newline 
711 Unselect every item in this window.
712 \newline 
713 Options...
714 \newline 
715 Configure ROX-Filer.
716 \newline 
717 New Directory...
718 \newline 
719 Create a new directory in this one.
720 \newline 
721 Xterm Here
722 \newline 
723 Open an xterm with its current directory set to this directory.
724 \layout Subsubsection
726 The display menu
727 \layout Standard
728 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
729 multicol5
730 15 2 0 0 -1 -1 -1 -1
731 1 1 0 0
732 1 1 0 0
733 0 1 0 0
734 0 1 0 0
735 0 1 1 0
736 0 1 1 0
737 0 1 1 0
738 0 1 0 0
739 0 1 0 0
740 0 1 0 0
741 0 1 0 0
742 0 1 0 0
743 0 1 0 0
744 0 1 0 0
745 0 1 1 0
746 8 1 0 "" ""
747 2 1 1 "10cm" ""
748 0 8 0 1 0 0 0 "" ""
749 0 2 0 1 0 0 0 "" ""
750 0 8 0 1 0 0 0 "" ""
751 0 2 1 1 0 0 0 "" ""
752 0 8 0 1 0 0 0 "" ""
753 0 8 0 1 0 0 0 "" ""
754 0 8 0 1 0 0 0 "" ""
755 0 8 0 1 1 0 0 "" ""
756 0 8 0 1 0 0 0 "" ""
757 0 8 0 1 1 0 0 "" ""
758 0 8 0 1 0 0 0 "" ""
759 0 8 0 1 1 0 0 "" ""
760 0 8 0 1 0 0 0 "" ""
761 0 8 0 1 0 0 0 "" ""
762 0 8 0 1 0 0 0 "" ""
763 0 8 0 1 0 0 0 "" ""
764 0 8 0 1 0 0 0 "" ""
765 0 8 0 1 0 0 0 "" ""
766 0 8 0 1 0 0 0 "" ""
767 0 2 0 1 0 0 0 "" ""
768 0 8 0 1 0 0 0 "" ""
769 0 8 0 1 0 0 0 "" ""
770 0 8 0 1 0 0 0 "" ""
771 0 8 0 1 0 0 0 "" ""
772 0 8 0 1 0 0 0 "" ""
773 0 8 0 1 0 0 0 "" ""
774 0 8 0 1 0 0 0 "" ""
775 0 8 0 1 1 0 0 "" ""
776 0 8 0 1 0 0 0 "" ""
777 0 8 0 1 0 0 0 "" ""
779 Entry
780 \newline 
781 Action
782 \newline 
783 Large Icons
784 \newline 
785 Each object in the directory is shown as a large icon with its name below.
786 \newline 
787 Small Icons
788 \newline 
789 Items are drawn smaller that usual, allowing you to see more files at once.
790 \latex latex 
792 \backslash 
794 \latex default 
796 \newline 
797 Large, With...
798 \newline 
799 Entries are displayed along with some extra details:
800 \newline 
802 \newline 
804 \series bold 
805 Summary
806 \series default 
807  shows the file permissions, owner, group, size and modification time.
808 \newline 
810 \newline 
812 \series bold 
813 Sizes
814 \series default 
815  shows just the size of each file (not directories).
816 \newline 
818 \newline 
820 \series bold 
821 Size Bars
822 \series default 
823  displays a bar indicating the size of each file.
824  This is on a log scale.
825 \newline 
826 Small, With...
827 \newline 
828 As above, but with a smaller icon and all on one line.
829 \newline 
830 Sort by Name
831 \newline 
832 Items are arranged by name.
833  There is an option to make this case-sensitive.
834 \newline 
835 Sort by Type
836 \newline 
837 Items are grouped by their types and then sorted by name within the groups.
838 \newline 
839 Sort by Date
840 \newline 
841 Most recently modified first.
842 \newline 
843 Sort by Size
844 \newline 
845 Largest first.
846 \newline 
847 Show Hidden
848 \newline 
849 If on, files beginning with a dot are shown, otherwise they are hidden.
850 \newline 
851 Refresh
852 \newline 
853 Rereads the contents of the directory and details of all the files in it.
854 \newline 
856 \newline 
857 Use this if the display becomes out-of-date.
858 \layout Standard
861 \latex latex 
863 \backslash 
864 noindent
865 \backslash 
867 \backslash 
868 thinspace{}
869 \latex default 
870 If ROX-Filer was unable to find ImLib
871 \begin_inset LatexCommand \cite{ImLib}
873 \end_inset 
875  when it was compiled then the icons are shown cropped rather than scaled.
876  Get ImLib and recompile if you want it to look nice.
877 \layout Subsubsection
880 \begin_inset LatexCommand \label{sec: Permissions}
882 \end_inset 
884 Permissions
885 \layout Standard
887 The permissions display, shown in Full Info mode, is made up of four groups
888  of three flags.
889  Each flag is displayed as a letter if it is on and a dash (--) if not.
890  The first three characters show the permissions for the owner of the file,
891  the second for other members of the file's group and the third for everyone
892  else.
893  Whichever group applies to the ROX-Filer process itself is shown underlined.
894  The fourth group shows any special flags.
895 \layout Standard
897 The meanings of the characters are:
898 \layout Description
900 r Permission to read the contents of a file, or the names of files in a
901  directory.
902 \layout Description
904 w Permission to alter the contents of a file, or change which names appear
905  in a directory.
906 \layout Description
908 x Permission to run the file as a program, or refer to the files listed
909  within the directory.
910 \layout Description
912 U This program executes with the 
913 \emph on 
914 effective user ID
915 \emph toggle 
916  of its owner rather than the person who ran it.
917 \layout Description
919 G This program executes with the 
920 \emph on 
921 effective group ID
922 \emph toggle 
923  of its group, regardless of who ran it.
924 \layout Description
926 T Entries in this directory can only be altered or removed by the people
927  who own the files even if they have write permission on the directory itself.
928 \layout Standard
930 For example, `
931 \family typewriter 
932 \bar under 
934 \bar default 
935 ,rwx,r-x/---
936 \family default 
937 ' means that the owner of the file is the same as the effective user of
938  ROX-Filer (basically, you own the file), you and members of the file's
939  group have read, write and execute permission and other people have only
940  read and execute permission.
941  There are no special flags set.
942 \layout Standard
944 The rules which determine which permissions apply may vary slightly between
945  operating systems, but a rough guide is:
946 \layout Itemize
948 If the
949 \emph on 
950  effective user ID
951 \emph toggle 
952  of the process is equal to the file's owner, then the owner permissions
953  apply.
954 \layout Itemize
956 Otherwise, if the 
957 \emph on 
958 effective group ID
959 \emph toggle 
960  of the process is equal to the file's group OR the file's group is one
961  of the process's 
962 \emph on 
963 supplemental groups
964 \emph toggle 
965  then the group permissions apply.
966 \layout Itemize
968 Otherwise, the `other' permissions apply.
969  The 
970 \emph on 
971 real user ID
972 \emph toggle 
973  and 
974 \emph on 
975 real group ID
976 \emph toggle 
977  have no effect (except that a process may set its real IDs to its effective
978  IDs).
979 \layout Subsubsection
981 The selection menu
982 \layout Standard
984 All of these work in the same way --- if you open the menu with some items
985  selected then the operation applies to those items.
986  If you open then menu over an item while there is no selection then that
987  item is temporarily selected.
988  If you choose one of these while there is no selection at all then the
989  window goes into `target mode'; the operation happens to the next item
990  you click on.
991  Click on the window background, press Escape, or click with the right mouse
992  button to cancel target mode.
993  Target mode is mainly useful with the `Single click navigation' option
994  and keys bound to the various menu entries.
995 \layout Standard
996 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
997 multicol5
998 19 2 0 0 -1 -1 -1 -1
999 1 1 0 0
1000 1 1 0 0
1001 0 1 0 0
1002 0 1 0 0
1003 0 1 0 0
1004 0 1 1 0
1005 0 1 1 0
1006 0 1 1 0
1007 0 1 0 0
1008 0 1 0 0
1009 0 1 0 0
1010 0 1 0 0
1011 0 1 0 0
1012 0 1 1 0
1013 0 1 1 0
1014 0 1 0 0
1015 0 1 1 0
1016 0 1 0 0
1017 0 1 0 0
1018 8 1 0 "" ""
1019 2 1 1 "10cm" ""
1020 0 8 0 1 0 0 0 "" ""
1021 0 8 0 1 0 0 0 "" ""
1022 0 8 0 1 0 0 0 "" ""
1023 0 8 0 1 0 0 0 "" ""
1024 0 8 0 1 0 0 0 "" ""
1025 0 2 0 1 0 0 0 "" ""
1026 0 8 0 1 0 0 0 "" ""
1027 0 8 0 1 0 0 0 "" ""
1028 0 8 0 1 0 0 0 "" ""
1029 0 2 0 1 1 0 0 "" ""
1030 0 8 0 1 0 0 0 "" ""
1031 0 2 0 1 1 0 0 "" ""
1032 0 8 0 1 0 0 0 "" ""
1033 0 2 0 1 1 0 0 "" ""
1034 0 8 0 1 0 0 0 "" ""
1035 0 8 0 1 0 0 0 "" ""
1036 0 8 0 1 0 0 0 "" ""
1037 0 8 0 1 0 0 0 "" ""
1038 0 8 0 1 0 0 0 "" ""
1039 0 8 0 1 0 0 0 "" ""
1040 0 8 0 1 0 0 0 "" ""
1041 0 8 0 1 0 0 0 "" ""
1042 0 8 0 1 0 0 0 "" ""
1043 0 8 0 1 0 0 0 "" ""
1044 0 8 0 1 0 0 0 "" ""
1045 0 8 0 1 1 0 0 "" ""
1046 0 8 0 1 0 0 0 "" ""
1047 0 8 0 1 1 0 0 "" ""
1048 0 8 0 1 0 0 0 "" ""
1049 0 8 0 1 0 0 0 "" ""
1050 0 8 0 1 0 0 0 "" ""
1051 0 8 0 1 1 0 0 "" ""
1052 0 8 0 1 0 0 0 "" ""
1053 0 8 0 1 0 0 0 "" ""
1054 0 8 0 1 0 0 0 "" ""
1055 0 8 0 1 0 0 0 "" ""
1056 0 8 0 1 0 0 0 "" ""
1057 0 8 0 1 0 0 0 "" ""
1059 Entry
1060 \newline 
1061 Action
1062 \newline 
1063 Copy...
1064 \newline 
1065 Make a copy of this object in the same directory.
1066 \newline 
1067 Rename...
1068 \newline 
1069 Change the name used for this object.
1070 \newline 
1071 Link...
1072 \newline 
1073 Create a symbolic link to this name in the same directory.
1074 \newline 
1075 Shift Open
1076 \newline 
1077 Opens applications as directories, files as text/plain, mount points
1078 \newline 
1080 \newline 
1081 by mounting or unmounting them and symlinks by opening the directory
1082 \newline 
1084 \newline 
1085 containing the thing they point to.
1086 \newline 
1088 \newline 
1089 This is the same effect as clicking with Shift held down.
1090 \newline 
1091 Help
1092 \newline 
1093 Explain what kind of thing is selected.
1094  For applications, display the help files.
1095 \newline 
1096 Info
1097 \newline 
1098 Display extra information about this object.
1099 \newline 
1100 Open VFS
1101 \newline 
1102 Open the file as if it was a directory --- see section 
1103 \begin_inset LatexCommand \ref{sec: vfs}
1105 \end_inset 
1108 \newline 
1109 Mount
1110 \newline 
1111 Mount or unmount each mount point selected.
1112 \newline 
1113 Delete
1114 \newline 
1115 Remove all the selected entries from the directory.
1116 \newline 
1118 \newline 
1119 Subdirectories will have their contents deleted first.
1120 \newline 
1122 \newline 
1123 Deleting symlinks only removes the link, not the thing it points to.
1124 \newline 
1125 Disk Usage
1126 \newline 
1127 Count the sizes of all the selected items.
1128  Directories also have their
1129 \newline 
1131 \newline 
1132 contents counted.
1133  Symlinks count themselves, not the things they point to.
1134 \newline 
1135 Permissions
1136 \newline 
1137 Allows you to change the permissions for the selected files.
1138 \newline 
1139 Find
1140 \newline 
1141 Search for files by specifying various conditions --- see section 
1142 \begin_inset LatexCommand \ref{sec: Searching}
1144 \end_inset 
1147 \layout Subsubsection
1149 The window menu
1150 \layout Standard
1151 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1152 multicol5
1153 11 2 0 0 -1 -1 -1 -1
1154 1 1 0 0
1155 1 1 0 0
1156 0 1 0 0
1157 0 1 0 0
1158 0 1 0 0
1159 0 1 0 0
1160 0 1 0 0
1161 0 1 0 0
1162 0 1 1 0
1163 0 1 0 0
1164 0 1 0 0
1165 8 1 0 "" ""
1166 2 1 1 "8cm" ""
1167 0 8 0 1 0 0 0 "" ""
1168 0 8 0 1 0 0 0 "" ""
1169 0 8 0 1 0 0 0 "" ""
1170 0 2 0 1 0 0 0 "" ""
1171 0 8 0 1 0 0 0 "" ""
1172 0 8 0 1 0 0 0 "" ""
1173 0 8 0 1 0 0 0 "" ""
1174 0 8 0 1 0 0 0 "" ""
1175 0 8 0 1 0 0 0 "" ""
1176 0 8 0 1 0 0 0 "" ""
1177 0 8 0 1 0 0 0 "" ""
1178 0 8 0 1 0 0 0 "" ""
1179 0 8 0 1 0 0 0 "" ""
1180 0 8 0 1 0 0 0 "" ""
1181 0 8 0 1 0 0 0 "" ""
1182 0 8 0 1 1 0 0 "" ""
1183 0 8 0 1 0 0 0 "" ""
1184 0 8 0 1 0 0 0 "" ""
1185 0 8 0 1 0 0 0 "" ""
1186 0 8 0 1 0 0 0 "" ""
1187 0 8 0 1 0 0 0 "" ""
1188 0 8 0 1 0 0 0 "" ""
1190 Entry
1191 \newline 
1192 Action
1193 \newline 
1194 Parent, New Window
1195 \newline 
1196 Open a new window displaying this window's parent.
1197 \newline 
1198 Parent, Same Window
1199 \newline 
1200 As above, but reuse this window.
1201 \newline 
1202 New Window
1203 \newline 
1204 Open another window onto this directory.
1205 \newline 
1206 Close Window
1207 \newline 
1208 Close this window.
1209 \newline 
1210 Enter Path...
1211 \newline 
1212 Open the path-entry box (see section 
1213 \begin_inset LatexCommand \ref{sec: mini}
1215 \end_inset 
1218 \newline 
1219 Shell Command...
1220 \newline 
1221 Open the shell command box (see section 
1222 \begin_inset LatexCommand \ref{sec: mini}
1224 \end_inset 
1227 \newline 
1228 Set Run Action...
1229 \newline 
1230 Allows you to set the program to use when double-clicking on a file.
1231 \newline 
1233 \newline 
1234 See section 
1235 \begin_inset LatexCommand \ref{sec: RunAction}
1237 \end_inset 
1239  for details.
1240 \newline 
1241 Select If...
1242 \newline 
1243 Select just those files that match the given pattern --- see section 
1244 \begin_inset LatexCommand \ref{sec: SelectIf}
1246 \end_inset 
1249 \newline 
1250 Show ROX-Filer help
1251 \newline 
1252 Same as selecting ROX-Filer and choosing `Help' from the menu.
1253 \layout Subsubsection
1255 The panel menu
1256 \layout Standard
1258 This is just a cut-down version of the window menu.
1259  The only new entry is `Open Panel as Directory', which displays the panel
1260  in a new, non-panel, window.
1261  `Remove Item' is a cut-down version of `Delete'; it only works for symbolic
1262  links and never asks for confirmation.
1263  Since dragging applications and directories to the panel creates symlinks
1264  it is very easy to change the panel contents to suit your needs.
1265 \layout Subsection
1268 \begin_inset LatexCommand \label{sec: vfs}
1270 \end_inset 
1272 Virtual file systems
1273 \layout Standard
1275 Some types of file can be represented as a directory.
1276  A typical example is a zip file, which contains an entire directory structure
1277  in compressed form.
1278  It is often useful to be able to open up such a file as if it was a real
1279  directory, and the VFS system allows you to do this.
1280 \layout Standard
1282 To use this feature you must have one or both of the following:
1283 \layout Itemize
1285 A system (such as PODFUK
1286 \begin_inset LatexCommand \cite{PODFUK}
1288 \end_inset 
1290 ) which causes the kernel to support various Virtual File Systems directly.
1291  This is the best option since all programs will be able to access the contents
1292  of the VFS.
1293  You will require root access to install such a system, however, and it
1294  is not available on all platforms.
1295 \layout Itemize
1297 Support for the Midnight Commander VFS library compiled into ROX-Filer.
1298  This happens automatically when you compile ROX-Filer if it can find the
1299  VFS library --- this means having 
1300 \family typewriter 
1301 libvfs.so
1302 \family default 
1303  (or 
1304 \family typewriter 
1305 libvfs.a
1306 \family default 
1307 ) in a system library directory or in the directory in the environment variable
1309 \family typewriter 
1310 LD_LIBRARY_PATH
1311 \family default 
1313  In this case, you will be able to view the directory structure and copy
1314  files out of it, but not change it.
1315  Support for this may be added later.
1316  Midnight Commander is part of the GNOME project.
1317 \layout Standard
1319 Note that using the `Open VFS' menu is simply a short-cut for using the
1320  path-entry box (explained below), so if you want to use a VFS not listed
1321  on the menu you can type in the path directly, eg:
1322 \layout Standard
1325 \family typewriter 
1326 /home/fred/archive.zip#uzip/
1327 \layout Standard
1330 \latex latex 
1332 \backslash 
1333 noindent 
1334 \latex default 
1335 Don't forget the final slash!
1336 \layout Subsubsection
1338 Step by step example of adding VFS support
1339 \layout Standard
1341 This assumes that you have the Midnight Commander source in a directory
1342  called `mc'.
1343  You might need to replace 
1344 \family typewriter 
1345 libvfs.so 
1346 \family default 
1347 with 
1348 \family typewriter 
1349 libvfs.a
1350 \family default 
1352 \layout LyX-Code
1354 $ cd mc
1355 \layout LyX-Code
1357 $ ./configure
1358 \layout LyX-Code
1360 $ cd vfs
1361 \layout LyX-Code
1363 $ make libvfs.so
1364 \layout Itemize
1366 If you have the root password then install the library in a system library
1367  directory as normal.
1368 \layout Itemize
1370 If not,
1371 \begin_deeper 
1372 \layout LyX-Code
1374 $ mkdir ~/lib
1375 \layout LyX-Code
1377 $ cp libvfs.so ~/lib
1378 \layout LyX-Code
1380 $ cd ~/Apps/ROX-Filer
1381 \layout Standard
1383 Edit the 
1384 \family typewriter 
1385 AppRun
1386 \family default 
1387  file to include this as the 
1388 \emph on 
1389 second
1390 \emph toggle 
1391  line:
1392 \layout LyX-Code
1394 LD_LIBRARY_PATH=${HOME}/lib; export LD_LIBRARY_PATH
1395 \layout Standard
1397 This will ensure that ROX-Filer will look for the library in the new 
1398 \family typewriter 
1399 ~/lib
1400 \family default 
1401  directory.
1402  Finally, recompile:
1403 \layout LyX-Code
1405 $ ./AppRun --compile
1406 \layout LyX-Code
1409 \layout LyX-Code
1411 checking for mc_stat in -lvfs...
1412  yes
1413 \layout Standard
1415 If you saw that line then it's worked! Well done!
1416 \end_deeper 
1417 \layout Subsection
1420 \begin_inset LatexCommand \label{sec: mini}
1422 \end_inset 
1424 The mini-buffer
1425 \layout Standard
1427 The mini-buffer is a white bar that appears along the bottom of the window
1428  and allows you to enter some text.
1429  Press Escape to get rid of it again.
1430  It behaves in different ways depending on how you invoked it:
1431 \layout Subsubsection
1433 The path-entry box
1434 \layout Standard
1436 This allows you to type in a path directly.
1437  As you type the display is updated to show the item entered visually.
1438  The main use is to find a file in a large directory quickly, but you can
1439  also use it for navigating between directories, or for selecting a full
1440  pathname from somewhere else and pasting it directly into the path-entry
1441  box.
1442 \layout Standard
1443 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1444 multicol5
1445 4 2 0 0 -1 -1 -1 -1
1446 1 1 0 0
1447 0 1 0 0
1448 0 1 0 0
1449 0 1 0 0
1450 8 1 0 "" ""
1451 2 1 1 "8cm" ""
1452 0 8 0 1 0 0 0 "" ""
1453 0 8 0 1 0 0 0 "" ""
1454 0 8 0 1 0 0 0 "" ""
1455 0 8 0 1 0 0 0 "" ""
1456 0 8 0 1 0 0 0 "" ""
1457 0 8 0 1 0 0 0 "" ""
1458 0 8 0 1 0 0 0 "" ""
1459 0 8 0 1 0 0 0 "" ""
1462 \newline 
1463 Action
1464 \newline 
1465 Return
1466 \newline 
1467 Open the currently selected item.
1468 \newline 
1470 \newline 
1471 Shell-style tab completion.
1472 \newline 
1473 Up, Down
1474 \newline 
1475 Select the previous/next matching entry.
1476 \layout Standard
1478 Tab completion tries to fill in as many characters for you as it can.
1479  For example, if there are two files in a directory called `save-mail-nov-1999'
1480  and `save-mail-dec-1999' then typing 'save' and pressing Tab will expand
1481  `save' to `save-mail-' and beep to indicate that the match is not complete.
1482  If you use tab completion on a directory and it is unique then the filer
1483  will automatically change into the directory.
1484  This behavior should be familiar to shell users.
1485 \layout Subsubsection*
1487 Example
1488 \layout Standard
1490 Let's say you want to locate the documentation for Wine in the directory
1491  /usr/doc (which is usually very large).
1492  Here's how you could do it:
1493 \layout Enumerate
1495 Open the minibuffer by choosing 'Enter Path' from the Window menu.
1496  I usually bind this function to the slash (`/') key.
1497 \layout Enumerate
1499 Press CTRL-U to delete the existing contents --- this moves you to the root
1500  directory.
1501 \layout Enumerate
1503 Type `u
1504 \latex latex 
1506 \backslash 
1507 Tab{}
1508 \latex default 
1510 \latex latex 
1512 \backslash 
1513 Tab{}
1514 \latex default 
1516 \latex latex 
1518 \backslash 
1519 Tab{}
1520 \latex default 
1522  As you type, the cursor will move to the correct subdirectory.
1523  If it beeps when you press Tab then you need to supply more letters.
1524 \layout Subsubsection
1527 \begin_inset LatexCommand \label{sec: RunAction}
1529 \end_inset 
1531 The run action box
1532 \layout Standard
1534 This box appears when you choose `Set Run Action' from the Window menu.
1535  You can now either drag a file onto an application, or you can enter a
1536  shell command.
1537  In either case, the action is not actually performed but instead becomes
1538  the default action for files of that type.
1539 \layout Standard
1541 All files have a MIME type in the form `
1542 \family typewriter 
1543 text/plain
1544 \family default 
1546  Here, `
1547 \family typewriter 
1548 text
1549 \family default 
1550 ' is the 
1551 \emph on 
1552 media type
1553 \emph toggle 
1554  and `
1555 \family typewriter 
1556 plain
1557 \family default 
1558 ' is the 
1559 \emph on 
1560 sub-type
1561 \emph toggle 
1563  Whichever method you use to set the action you will be given the choice
1564  of setting the run action just for that type, or setting the default for
1565  all files with that media-type which don't already have a specific action.
1566 \layout Standard
1568 For example, let's say you want to set things up so that double-clicking
1569  on a `.gif' file loads it into the Gimp:
1570 \layout Paragraph
1572 Setting the run action by drag-and-drop
1573 \newline 
1575 \layout Standard
1577 Choose `Set Run Action' from the Window menu and, while the minibuffer is
1578  still open, drag a GIF file from the filer window onto the Gimp's application
1579  directory (probably in another filer window).
1580 \layout Paragraph
1582 Setting the run action by entering a shell command
1583 \newline 
1585 \layout Standard
1587 Type:
1588 \layout LyX-Code
1590 gimp 
1591 \begin_inset Quotes erd
1592 \end_inset 
1595 \begin_inset Quotes erd
1596 \end_inset 
1599 \layout Standard
1601 and press Return.
1602  Note that the cursor (the black box) must be on the GIF file when you press
1603  Return.
1604 \layout Subsubsection
1606 The shell command box
1607 \layout Standard
1609 This provides a quick way of entering shell commands if you don't want to
1610  open an xterm.
1611  If you don't know what shell commands are, skip this section!
1612 \layout Standard
1614 Just type in the command and press Return to execute it.
1615  Up and Down arrows move through previously entered commands.
1616  Tab does shell-style completion.
1617  Clicking on an item inserts its name into the minibuffer.
1618  If some items are selected then they are assigned to the positional parameters
1620 \family typewriter 
1622 \family default 
1624 \family typewriter 
1626 \family default 
1627 , etc.
1628 \layout Subsubsection*
1630 Examples
1631 \layout Standard
1633 To untar a 
1634 \family typewriter 
1635 .tgz
1636 \family default 
1637  archive:
1638 \layout Enumerate
1640 Open the minibuffer by choosing `Shell Command' from the Window menu.
1641  I usually bind this to the bang (`!') key.
1642 \layout Enumerate
1644 Type `
1645 \family typewriter 
1646 tar xzf
1647 \family default 
1648 ' and click on the file.
1649  The leading space is automatically inserted.
1650 \layout Enumerate
1652 Press Return to execute it.
1653 \layout Standard
1655 To print all the selected files:
1656 \layout Enumerate
1658 Open the shell command minibuffer.
1659 \layout Enumerate
1661 Type 
1662 \family typewriter 
1663 `lpr $*
1664 \family default 
1665 ' and press Return.
1666 \layout Subsubsection*
1668 Notes
1669 \layout Itemize
1671 Be careful; you will not be asked to confirm! If in doubt, start the command
1672  with `
1673 \family typewriter 
1674 echo
1675 \family default 
1676 ' so that it will be displayed rather than executed.
1677 \layout Itemize
1679 The above command won't work if some of the files contain spaces --- use
1681 \family typewriter 
1682 lpr 
1683 \latex latex 
1685 \latex default 
1687 \latex latex 
1689 \family default 
1690 \latex default 
1691 ' instead to be safe.
1692 \layout Itemize
1694 `sh' is always used as the name of the shell to run (mainly because bash
1695  and csh treat positional parameters differently).
1696  However, PATH is searched to find it so you can still use another shell
1697  if you want by naming it sh and putting it in your path.
1698 \layout Itemize
1700 Commands execute in the background, so you can say:
1701 \begin_deeper 
1702 \layout LyX-Code
1704 sleep 240; xmessage Time to go!
1705 \end_deeper 
1706 \layout Subsubsection
1709 \begin_inset LatexCommand \label{sec: SelectIf}
1711 \end_inset 
1713 The conditional selection box
1714 \layout Standard
1716 Use this if you want to automatically select all files in the directory
1717  which match a condition.
1718  The syntax for the conditions is given in section 
1719 \begin_inset LatexCommand \ref{sec: Searching}
1721 \end_inset 
1724  For example, to select all files larger than 5Mb:
1725 \layout Enumerate
1727 Open the Select If minibuffer.
1728 \layout Enumerate
1730 Type `
1731 \family typewriter 
1732 Size > 5Mb
1733 \family default 
1734 ' and press Return.
1735 \layout Standard
1737 Just those files over 5 Mb in size will be selected.
1738  The expressions you can enter are in the same form as described in section
1740 \begin_inset LatexCommand \ref{sec: Searching}
1742 \end_inset 
1744 , except that `
1745 \family typewriter 
1746 prune
1747 \family default 
1748 ' has no effect since the contents of directories are never checked anyway.
1749 \layout Subsection
1751 Action windows
1752 \layout Standard
1754 Action windows are those boxes that appear while you're doing a Copy/Move/Link/e
1755 tc operation.
1756  The status line at the top of the window shows the current directory or
1757  object that the window is processing.
1758  The scrolling area below is the log area --- it shows what has been done
1759  and may display questions here.
1760 \layout Standard
1762 At the bottom are four buttons and, sometimes, some options.
1763  The buttons work as follows:
1764 \layout Description
1766 Quiet will do simple operations without asking you to confirm each one.
1767  By turning this on and off during an operation you can use it like a pause
1768  button.
1769 \layout Description
1771 Yes answers yes to the question displayed in the log area.
1772 \layout Description
1774 No answers no to the question displayed in the log area.
1775 \layout Description
1777 Abort kills the current operation (if any) and closes the action window.
1778 \layout Standard
1780 You can control which actions get started automatically (without you having
1781  to click on Quiet at the start) from the Options window.
1782 \layout Subsubsection
1784 Action window options
1785 \layout Standard
1787 Some actions have options, which appear as option boxes at the bottom of
1788  the window.
1789  They are:
1790 \layout Itemize
1792 `Force' means that the filer won't treat non-writeable files as special.
1793  Normally, it confirms the deletion even if Quiet is pressed.
1794  Note that you still can't remove files from non-writeable directories because
1795  in that case you really don't have permission.
1796 \layout Itemize
1798 `Brief' prevents the filer logging a message every time it does something.
1799  Use this to speed things up if large numbers of messages are being logged.
1800 \layout Itemize
1802 `Recurse' means that doing something to a directory will also do the same
1803  thing to all its contents, and the contents of any subdirectories, and
1804  so on.
1805 \layout Subsection
1808 \begin_inset LatexCommand \label{sec: Searching}
1810 \end_inset 
1812 Searching
1813 \layout Standard
1815 The Find feature looks through all the selected files and directories and
1816  any subdirectories (recursively) looking for items that match a particular
1817  expression.
1818 \layout Standard
1820 If you know the name of a file then just enter it in the `Expression:' box,
1821  enclosed in single quotes.
1822  For example, to find a file called `log' you would enter:
1823 \layout LyX-Code
1825 'log'
1826 \layout Standard
1828 Remember to use normal quotes, not double quotes (
1829 \family typewriter 
1831 \begin_inset Quotes eld
1832 \end_inset 
1835 \family default 
1836 ) or back-quotes (
1837 \family typewriter 
1839 \family default 
1841 \layout Standard
1843 As the filer finds matching files they are added to the results list.
1844  Clicking on an entry in the list opens a viewer showing the file you clicked
1845  on.
1846  The filer will use the same window to view other results (so, if you want
1847  the results shown in separate windows you must explicitly create a new
1848  window from the Window menu).
1849 \layout Subsubsection
1851 Wildcards
1852 \layout Standard
1854 You can also put shell-style wildcard characters inside the quotes, for
1855  example:
1856 \layout LyX-Code
1858 '*.html'
1859 \layout LyX-Code
1861 'Report.*'
1862 \layout LyX-Code
1864 'Draft[1-5]'
1865 \layout LyX-Code
1867 'main.[ch]'
1868 \layout Standard
1870 Look at the 
1871 \family typewriter 
1872 glob(7)
1873 \family default 
1874  manpage if you want to know more about shell wildcards.
1875 \layout Standard
1877 If the pattern you enter contains a slash ('/') character then the pattern
1878  is matched against the file's full path, otherwise only the leafname is
1879  used.
1880  That is, 
1881 \family typewriter 
1882 '*tmp*'
1883 \family default 
1884  will find 'tmp' and 'tmpfile' but not '/tmp/file' --- 
1885 \family typewriter 
1886 '/*tmp*'
1887 \family default 
1888  will find all three.
1889 \layout Subsubsection
1891 Simple tests
1892 \layout Standard
1894 As well as finding files by their names you can also find them by various
1895  other attributes.
1896  Note that `file' is used here to mean anything that can appear in the filesyste
1897 m --- including directories, devices and so on.
1898 \layout Standard
1901 \latex latex 
1903 \backslash 
1904 smallskip
1905 \backslash 
1906 noindent 
1907 \latex default 
1908 These look at the type of the item being checked:
1909 \layout Description
1911 IsReg matches any regular (ie, normal) file.
1912 \layout Description
1914 IsLink matches symlinks.
1915 \layout Description
1917 IsDir matches directories.
1918 \layout Description
1920 IsChar matches character device files.
1921 \layout Description
1923 IsBlock matches block device files.
1924 \layout Description
1926 IsDev matches block or character device files.
1927 \layout Description
1929 IsPipe matches pipes.
1930 \layout Description
1932 IsSocket matches sockets.
1933 \layout Standard
1935 These look at the permissions set on the file --- see section 
1936 \begin_inset LatexCommand \ref{sec: Permissions}
1938 \end_inset 
1941 \layout Description
1943 IsSUID matches files which have the Set-UID bit set.
1944 \layout Description
1946 IsSGID matches files which have the Set-GID bit set.
1947 \layout Description
1949 IsSticky matches files with the sticky bit set,
1950 \layout Description
1952 IsReadable matches files which you can read from.
1953 \layout Description
1955 IsWriteable matches files which you can write to.
1956 \layout Description
1958 IsExecutable matches files which you can execute.
1959 \layout Standard
1961 And a couple of other useful ones:
1962 \layout Description
1964 IsEmpty finds empty files (ie, those whose length is 0 bytes).
1965 \layout Description
1967 IsMine finds files which you own.
1968 \layout Subsubsection
1970 Logic operators
1971 \layout Standard
1973 You can combine the above tests in various ways to perform more advanced
1974  searches.
1975  An expression is actually made up of a list of 
1976 \emph on 
1977 cases
1978 \emph toggle 
1979 , separated by commas.
1980  The filer will try to match each case in turn until one matches or there
1981  are no more cases left.
1982  For example, to search for files with several possible endings:
1983 \layout LyX-Code
1985 '*.gif', '*.htm', '*.html'
1986 \layout Standard
1988 Further, each of the cases is actually a list of conditions.
1989  The case only matches if all of its conditions are met.
1990  So, to find a directory called 
1991 \family typewriter 
1993 \family default 
1994  or a regular file ending in 
1995 \family typewriter 
1997 \family default 
1999 \layout LyX-Code
2001 IsDir 'lib', IsReg '*.so'
2002 \layout Standard
2004 You can negate a condition by putting a 
2005 \family typewriter 
2007 \family default 
2008  in front of it and you can use a sub-expression as a condition by bracketing
2009  it, like this:
2010 \layout LyX-Code
2012 ! (IsDir, IsReg)
2013 \layout LyX-Code
2015 !IsDir !IsReg
2016 \layout LyX-Code
2018 Not isdir and not isreg
2019 \layout Standard
2021 All three do the same thing.
2022 \layout Subsubsection
2024 Comparisons
2025 \layout Standard
2027 You can also compare various values using the operators 
2028 \family typewriter 
2029 <, <=, =, !=, >, >=
2030 \family default 
2031  (for less-than, less-than-or-equal-to, equal-to, not-equal-to, greater-than
2032  and greater-than-or-equal-to).
2033  When comparing times, you may find it helpful to use 
2034 \family typewriter 
2035 after 
2036 \family default 
2037 and 
2038 \family typewriter 
2039 before
2040 \family default 
2041  instead of 
2042 \family typewriter 
2044 \family default 
2045  and 
2046 \family typewriter 
2048 \family default 
2049  to make things clearer.
2050 \layout Standard
2052 The following are read from the file being checked and may be used for the
2053  values being compared:
2054 \layout Description
2056 atime The time that the file was last accessed.
2057 \layout Description
2059 ctime The time that the file's status was last changed.
2060 \layout Description
2062 mtime The time that the file's contents were last modified.
2063 \layout Description
2065 size The size of the file.
2066 \layout Description
2068 inode The file's inode (index) number
2069 \layout Description
2071 nlinks The number of links to this file (that is, the number of directory
2072  entries which refer to this file.
2073  Note that symlinks don't count as references).
2074 \layout Description
2076 uid The User ID of the file.
2077 \layout Description
2079 gid The Group ID of the file.
2080 \layout Description
2082 blocks The number of disk blocks being used by the file.
2083 \layout Standard
2085 Times are measured as seconds since the Unix Epoch (00:00:00 UTC, January
2086  1, 1970).
2087  Sizes are in bytes.
2088  When specifying constants to compare these values with you may use various
2089  keywords to scale the value:
2090 \layout Description
2092 Byte(s) has no effect, but looks better.
2093 \layout Description
2095 Kb multiplies by 1024, so 2Kb is the same as 2048.
2096 \layout Description
2098 Mb multiplies by 
2099 \begin_inset Formula \( 1024^{2} \)
2100 \end_inset 
2102 , ie 1024 Kb.
2103 \layout Description
2105 Sec(s) has no effect, but looks nice.
2106 \layout Description
2108 Min(s) multiplies by 60 to get minutes.
2109 \layout Description
2111 Hour(s),\SpecialChar ~
2112 Day(s),\SpecialChar ~
2113 Week(s),\SpecialChar ~
2114 Year(s) likewise convert to the relevant unit.
2115 \layout Description
2117 Ago makes the time in the past relative to when the check is done.
2118 \layout Description
2120 Hence makes the time in the future.
2121 \layout Description
2123 Now is short for `
2124 \family typewriter 
2125 0 Secs Hence
2126 \family default 
2128 \layout Standard
2130 Some examples should make this all a bit clearer!
2131 \layout LyX-Code
2133 mtime after 1 day ago
2134 \layout LyX-Code
2136 size > 10 Mb
2137 \layout LyX-Code
2139 IsReg and nlinks > 1
2140 \layout Standard
2142 The first finds files modified within the last 24 hours.
2143  You could use 
2144 \family typewriter 
2146 \family default 
2147  instead of 
2148 \family typewriter 
2149 after,
2150 \family default 
2151 but it's not so clear what is meant.
2152  The second finds files larger than 10 Mb and the last finds regular files
2153  with more than one directory entry.
2154 \layout Standard
2156 Be careful though --- the filer doesn't check the context of the modifiers,
2157  so 
2158 \family typewriter 
2159 size > 1 day ago
2160 \family default 
2161  is allowed, although it doesn't make much sense! Also, forgetting to use
2163 \family typewriter 
2165 \family default 
2166  or 
2167 \family typewriter 
2168 hence
2169 \family default 
2170  will cause odd effects (the time will be measured relative to the Epoch
2171  rather than the current time).
2172  Finally, don't use = with times --- 
2173 \family typewriter 
2174 atime = 1 day ago
2175 \family default 
2176  looks for a file accessed 
2177 \emph on 
2178 exactly
2179 \emph toggle 
2180  86400 seconds ago...
2181 \layout Subsubsection
2183 Specials
2184 \layout Description
2186 System(Command) executes `Command' on the file.
2187  The test succeeds if the command returns an exit status of zero.
2188  A `%' character in `Command' is replaced by the full path of the file being
2189  checked.
2190  System is a very slow test to perform, so do it last if possible.
2191  For example, if you're looking for a .c file containing the word `main',
2192  do
2193 \begin_deeper 
2194 \layout LyX-Code
2196 '*.c' system(grep -q main
2197 \latex latex 
2199 \backslash 
2200 thinspace{}
2201 \latex default 
2203 \latex latex 
2205 \backslash 
2206 thinspace{}"
2207 \latex default 
2209 \layout Standard
2211 so that the grep is only performed for files ending in .c (as opposed to
2212  only checking that the file ends in .c if it contains the word `main').
2213 \end_deeper 
2214 \layout Description
2216 Prune Always fails!
2217 \begin_float footnote 
2218 \layout Standard
2220 Note that this is the opposite of the 
2221 \noun on 
2222 find(1)
2223 \noun toggle 
2224  command.
2225 \end_float 
2226  However, if it gets evaluated at all then it prevents the filer from checking
2227  inside the current directory.
2228  Remember the order in which the filer checks the expression!
2229 \layout Standard
2231 Examples:
2232 \layout LyX-Code
2234 '*.old' system(echo rm %)
2235 \layout LyX-Code
2237 'src' prune, '*.c'
2238 \layout Standard
2240 The first displays a command to delete each file ending in 
2241 \family typewriter 
2242 .old
2243 \family default 
2244 ; you can either paste the results into an xterm to execute them or run
2245  the search again without the 
2246 \family typewriter 
2247 echo
2248 \family default 
2250  It's always a good idea to use 
2251 \family typewriter 
2252 echo
2253 \family default 
2254  first with dangerous commands! The second looks for 
2255 \family typewriter 
2257 \family default 
2258  files, but does not bother checking inside directories called 
2259 \family typewriter 
2261 \family default 
2263  The expression is evaluated like this:
2264 \layout Standard
2265 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
2267 \begin_inset Figure size 216 180
2268 file Prune.eps
2269 height 2 2.50
2270 flags 9
2272 \end_inset 
2275 \layout Subsection
2277 Options
2278 \layout Standard
2280 You can configure various aspects of ROX-Filer from the Options box.
2281  Choose `Options...' from a filer window menu to open it.
2283 \layout Standard
2285 At the bottom of the window are four buttons:
2286 \layout Description
2288 Save puts all your choices into effect, and also saves them into your Choices
2289  directory for next time ROX-Filer is loaded.
2290  ROX-Filer will never save any preferences to disk unless you click on the
2291  `Save' button in the options window.
2292  Exactly where choices are loaded from and saved to is controlled by the
2294 \family typewriter 
2295 CHOICESPATH
2296 \family default 
2297  environment variable --- see 
2298 \begin_inset LatexCommand \cite{Choices}
2300 \end_inset 
2302  for details.
2303 \layout Description
2305 OK puts your choices into effect without writing anything to disk.
2306 \layout Description
2308 Apply works like OK, but without closing the Options window.
2309 \layout Description
2311 Cancel closes the options box and forgets any changes you made.
2312 \layout Subsubsection
2314 Action window options
2315 \layout Standard
2317 You can choose to start some operations automatically, without waiting for
2318  you to click on Quiet.
2319  Select each operation that you want to auto-start here.
2320 \layout Subsubsection
2322 Filer window options
2323 \layout Itemize
2325 `Ignore case when sorting' treats upper and lower case letters as equivalent
2326  when sorting.
2327  If this is off then `Zoo' comes before `animal', for example.
2328 \layout Itemize
2330 `New window on button 1' swaps the actions of the two non-menu buttons when
2331  opening directories.
2332  This is provided for people who are used to the RISC OS mouse bindings.
2333 \layout Itemize
2335 `Menu on button 2' swaps the actions of buttons 2 and 3 so that the middle
2336  button brings up the menus.
2337  This is provided for people who are used to the RISC OS mouse bindings.
2338 \layout Itemize
2340 `Single-click navigation' treats a single click over an item as if it was
2341  a double click.
2342  This allows you to move around, run applications and open files without
2343  double clicking.
2344  To select a file 
2345 \emph on 
2346 without
2347 \emph toggle 
2348  opening it you must hold down CTRL while you click.
2349 \layout Itemize
2351 `Unique windows' prevents you from having two windows showing the same directory.
2352  Opening a second view onto a directory closes the first.
2353 \layout Itemize
2355 `Toolbar type for new windows' allows you to choose what kind of toolbar
2356  will be used for future filer windows (the currently open windows are not
2357  affected).
2358  None means that new windows will not have a toolbar, Normal provides a
2359  small bar of icons, and GNOME displays larger icons with textual labels
2360  and allows the bar to be detached from the window by dragging it.
2361  See section 
2362 \begin_inset LatexCommand \ref{sec: Toolbar}
2364 \end_inset 
2366  for details.
2367 \layout Standard
2369 The last display style and sort type you chose will also be saved as the
2370  defaults for next time.
2371 \layout Subsubsection
2373 Drag-And-Drop options
2374 \layout Standard
2376 ROX-Filer uses the standard XDND protocol for drag-and-drop.
2377  This protocol recommends that URIs should contain the hostname of the computer
2378  that the resource is on so that the program receiving the data can determine
2379  whether it can get the data directly or whether it must go via the X-server.
2380  However, many older programs (particularly GNOME applications) get confused
2381  by the hostname and fail to load the data correctly.
2382  If `Don't use hostnames' is on then the hostname part is omitted and ROX-Filer
2383  will work with these applications BUT you can't drag data to a program
2384  running on a different machine.
2385 \layout Standard
2387 `Allow dragging to icons in filer windows' controls what happens when you
2388  drop files onto icons in filer windows.
2389  If on then drops onto directories will save the data inside the directory
2390  while dropping onto programs will invoke the program on that data.
2391  If off then drops anywhere inside a filer window act like drops onto the
2392  window background --- that is, the data will be saved into the directory
2393  being displayed.
2394 \layout Subsubsection
2396 Menu options
2397 \layout Standard
2399 The `Xterm here' program is the one used when you choose `Xterm here' from
2400  the menu.
2401  You can replace it with another program such as `gnome-terminal' if you
2402  like.
2403  In fact, any program will do, but note that you cannot pass any options
2404  to the program at present.
2405 \layout Section
2407 Filetypes
2408 \layout Standard
2410 ROX-Filer uses three sub-directories in your Choices directory for filetypes:
2411 \layout Description
2413 MIME-info contains files which specify what the MIME type for a file should
2414  be, based on its extention.
2415  All the files in all the MIME-info directories are scanned when the filer
2416  loads.
2417  ROX-Filer comes with many such rules --- these are installed into the MIME-info
2418  directory by the install script.
2419 \begin_deeper 
2420 \layout Standard
2422 Many applications now come with a file called `something.mime'; copy these
2423  files into your MIME-info directory to make ROX-Filer automatically recognise
2424  the new extensions.
2425 \end_deeper 
2426 \layout Description
2428 MIME-types contains symlinks, one for each MIME type, which point to programs
2429  that can handle files of that type.
2430  To set what program is run when you click on the file you should normally
2431  use the `Set Run Action' feature (see section 
2432 \begin_inset LatexCommand \ref{sec: RunAction}
2434 \end_inset 
2437  However, you can also set the actions manually --- for example, to make
2438  opening an HTML file load it into Netscape:
2439 \begin_deeper 
2440 \layout Enumerate
2442 Find the Netscape application and go to `Link...' on the menu.
2443 \layout Enumerate
2445 Enter `text_html' as the name for the link and drag the icon from the Link
2446  box into the MIME-types directory.
2447 \layout Standard
2449 You can also put actual programs in here as well as links if you want to.
2450 \end_deeper 
2451 \layout Description
2453 MIME-icons contains the images used to display each type of file.
2454  So the filer will try to display an HTML file using the icon `MIME-icons/text_h
2455 tml.xpm'.
2456 \layout Standard
2458 In both MIME-types and MIME-icons directories you can also provide default
2459  actions/images for each media type.
2460  For example, if `text_html' isn't found then the filer will try simply
2461  using `text'.
2462 \layout Section
2464 Application directories
2465 \layout Standard
2467 An application directory is a directory which can be run as an application.
2468  It contains all the resources of an application --- source code, binaries,
2469  documentation and so on.
2470  Keeping everything in one place make installation and uninstallation much
2471  easier for users.
2472  You can also keep multiple versions of a program by simply having several
2473  application directories.
2474  You may move and rename them as you please.
2475  Application directories are easier to use and install and are more secure
2476  too
2477 \begin_float footnote 
2478 \layout Standard
2480 Because you can compile an application as a user and then simply copy it
2481  as root rather than having to run an install script you are free from the
2482  danger of running untrusted code as root.
2483  All you have to watch out for is setuid binaries.
2484 \end_float 
2486 \layout Standard
2488 To make a directory executable all you need to do is create a executable
2489  file called `AppRun' inside it.
2490  This file is run when the user double-clicks on the application.
2491  You should also provide `AppIcon.xpm' (which will be used as the image for
2492  the application) and `Help' (which is a directory that is opened when the
2493  user asks for help).
2494  Finally (for security reasons), an application directory must have the
2495  same owner as the AppRun file inside.
2496  Have a look at the ROX-Filer application directory for a full example.
2497 \layout Section
2499 Internationalisation
2500 \layout Subsection
2503 \begin_inset LatexCommand \label{sec: LANG}
2505 \end_inset 
2507 Selecting a translation
2508 \layout Standard
2510 ROX-Filer is able to translate many of its messages, provided suitable translati
2511 on files are provided.
2512  If you know that your language is supported then simply set the 
2513 \family typewriter 
2514 LANG
2515 \family default 
2516  environment variable to the appropriate code for your country before starting
2517  the filer, eg:
2518 \layout LyX-Code
2520 LANG=fr; export LANG
2521 \layout LyX-Code
2523 ROX-Filer/AppRun
2524 \layout Standard
2526 To see which translations are currently provided, open the ROX-Filer application
2527  directory (hold down Shift and double-click) and look inside the `
2528 \family typewriter 
2529 Messages
2530 \family default 
2531 ' subdirectory.
2532 \layout Subsection
2534 Creating a new translation
2535 \layout Enumerate
2537 Go into the 
2538 \family typewriter 
2540 \family default 
2541  directory and create the file `
2542 \family typewriter 
2543 messages.pot
2544 \family default 
2546 \begin_deeper 
2547 \layout LyX-Code
2549 $ cd ROX-Filer/src
2550 \layout LyX-Code
2552 $ make messages.pot
2553 \end_deeper 
2554 \layout Enumerate
2556 Copy the file into the `
2557 \family typewriter 
2559 \family default 
2560 ' subdirectory under 
2561 \family typewriter 
2563 \family default 
2564  as 
2565 \begin_inset Formula \( \langle \hbox {name}\rangle \hbox {\tt .po} \)
2566 \end_inset 
2569  Eg, if your language is referred to as `ml' (`my language'):
2570 \begin_deeper 
2571 \layout LyX-Code
2573 $ cp messages.pot po/ml.po
2574 \end_deeper 
2575 \layout Enumerate
2577 Load the copy into a text editor.
2578 \layout Enumerate
2580 Fill in the translations, which are all blank to start with.
2581 \layout Enumerate
2583 Run the `
2584 \family typewriter 
2585 make-mo
2586 \family default 
2587 ' script to create the binary file which ROX-Filer can use.
2588  You will need the GNU gettext package for this.
2589  If you don't have it then just send me the 
2590 \family typewriter 
2592 \family default 
2593  file and I'll convert it for you.
2594 \begin_deeper 
2595 \layout LyX-Code
2597 $ cd ROX-Filer/src/po
2598 \layout LyX-Code
2600 $ ./make-mo ml
2601 \layout LyX-Code
2603 Created file ../../Messages/ml.gmo OK
2604 \end_deeper 
2605 \layout Enumerate
2607 Set the LANG variable to `
2608 \family typewriter 
2610 \family default 
2611 ' and restart the filer (see section 
2612 \begin_inset LatexCommand \ref{sec: LANG}
2614 \end_inset 
2617 \layout Enumerate
2619 Submit the 
2620 \family typewriter 
2622 \family default 
2623  file to me so that I can include it in future releases of the filer.
2624 \layout Subsection
2626 Updating an existing translation
2627 \layout Enumerate
2629 Go into the directory containing the 
2630 \family typewriter 
2632 \family default 
2633  files and run the 
2634 \family typewriter 
2635 update-po
2636 \family default 
2637  script.
2638  This checks the source code for new and changed strings and updates all
2639  the translation files.
2640 \begin_deeper 
2641 \layout LyX-Code
2643 $ cd ROX-Filer/src/po
2644 \layout LyX-Code
2646 $ ./update-po
2647 \end_deeper 
2648 \layout Enumerate
2650 Edit the file by hand as before, filling in the new blanks and updating
2651  out-of-date translations.
2652  Look out for `fuzzy' entries where 
2653 \family typewriter 
2654 update-po
2655 \family default 
2656  has made a guess; check it's correct and remove the `fuzzy' line.
2657 \layout Enumerate
2659 Run 
2660 \family typewriter 
2661 make-mo
2662 \family default 
2663  as before.
2664 \layout Enumerate
2666 Submit the updated file to me.
2667 \layout Standard
2669 See the 
2670 \family typewriter 
2671 gettext
2672 \family default 
2673  info page for more instructions on creating a translation.
2674 \layout Section
2676 Hacking
2677 \layout Standard
2679 This is a quick start guide for people who want to modify the source code.
2680  If you make useful changes or fix bugs, please send patches to me or to
2681  the mailing list.
2682  Tell me which version you're using!
2683 \layout Subsection
2685 Compiling
2686 \layout Standard
2688 The first time you compile the program you need to do `
2689 \family typewriter 
2690 AppRun --compile
2691 \family default 
2692 ', but in future you only need to run `
2693 \family typewriter 
2694 make
2695 \family default 
2696 ' in the `
2697 \family typewriter 
2699 \family default 
2700 ' directory when you change the 
2701 \family typewriter 
2703 \family default 
2704  and 
2705 \family typewriter 
2707 \family default 
2708  files.
2709  You might want to run `
2710 \family typewriter 
2711 make depend
2712 \family default 
2713 ' too.
2714 \layout Subsection
2716 Creating and applying patches
2717 \layout Standard
2719 When people make small modifications to the sources they will often distribute
2720  them as 
2721 \emph on 
2722 patch files
2723 \emph toggle 
2724  --- usually on the mailing list.
2725  To apply a patch, go into the 'src' directory and run patch with the patch
2726  file.
2727  Then recompile, like this:
2728 \layout LyX-Code
2730 $ cd ROX-Filer/src
2731 \layout LyX-Code
2733 $ patch < patchfile
2734 \layout LyX-Code
2736 $ ../AppRun --compile
2737 \layout Standard
2739 You can remove the patch by simply repeating the above sequence --- patch
2740  will detect that the patch is already applied and offer to remove it.
2741 \layout Standard
2743 To create a patch you should first get the latest version of the filer from
2744  CVS (instructions on using CVS can be found on the web-site).
2745  Modify the program as you please.
2746  Create the patch using `
2747 \family typewriter 
2748 cvs diff
2749 \family default 
2750 ' from the appropriate directory:
2751 \layout LyX-Code
2753 $ cvs diff -c > my_patch
2754 \layout Standard
2756 This creates a human- and machine-readable patch file.
2757  Submit this to the mailing list.
2758  The are many reasons for posting patches rather that the modified files:
2759 \layout Itemize
2761 They are smaller, and hence shouldn't bounce.
2762  They are also quicker to download for people with slow connections.
2763 \layout Itemize
2765 People can see what they're getting into before applying them!
2766 \layout Itemize
2768 Patches can (usually) be applied to slightly modified versions of the sources.
2769  This means that people can apply several patches without each new one overwriti
2770 ng the others.
2771 \layout Subsection
2773 Autoconf
2774 \layout Standard
2776 Here's a quick explanation of the autoconf system in case you haven't used
2777  it before.
2778  See `info autoconf' for full details.
2779 \layout Standard
2781 There's a file called 'configure.in' which contains various tests (`info
2782  autoconf').
2783  You run `autoconf' and it reads through the file and generates a shell
2784  script to perform the tests, saving it as `configure'.
2785  `configure' is normally distributed with the program because not everyone
2786  has autoconf.
2787 \layout Standard
2789 You then run `configure' (in fact, let the `AppRun' script do it because
2790  it passes it some arguments), which performs all the tests.
2791  It reads in `Makefile.in' and `config.h.in' and fills in the missing values
2792  with the test results to produce `Makefile' and `config.h'.
2793 \layout Standard
2795 You run `make', which creates .o files from the .c files and links to produce
2796  ROX-Filer.
2797 \layout Subsection
2799 Data-structures
2800 \layout Standard
2802 The diagram below shows some of the major structures found in the filer
2803  along with their most important attributes and methods.
2804  Exactly which attributes have been included is a little hit-and-miss but
2805  it might help you get the overall picture.
2806  If you find it useful, please let me know and I'll try to keep it up-to-date
2807  (or even extend it!).
2808 \layout Standard
2810 To summarise, each window (or panel) has its own 
2811 \series bold 
2812 FilerWindow
2813 \series default 
2814  structure.
2815  This structure has pointers to a 
2816 \series bold 
2817 Collection
2818 \series default 
2819  (which is the widget which actually displays the files) and to a 
2820 \series bold 
2821 Directory
2822 \series default 
2823 , which is used to cache the directory contents.
2824  Both 
2825 \series bold 
2826 Collection
2827 \series default 
2828  and 
2829 \series bold 
2830 Directory
2831 \series default 
2832  have pointers to (the same) 
2833 \series bold 
2834 DirItem
2835 \series default 
2836 s, each of which corresponds to one filesystem object.
2837  Several 
2838 \series bold 
2839 FilerWindow
2840 \series default 
2841 s may share the same 
2842 \series bold 
2843 Directory
2844 \series default 
2846  While scanning is in progress the 
2847 \series bold 
2848 Directory
2849 \series default 
2850  keeps a list of the new items it has found (
2851 \emph on 
2852 new_items
2853 \emph toggle 
2854 ) and the items which have changed in some way (
2855 \emph on 
2856 up_items
2857 \emph toggle 
2859  It periodically notifies the filer window of the changes-so-far by calling
2860  all the functions in the 
2861 \emph on 
2862 users
2863 \emph toggle 
2864  list (use 
2865 \emph on 
2866 attach()
2867 \emph toggle 
2868  and 
2869 \emph on 
2870 detach()
2871 \emph toggle 
2872  to add and remove functions to or from the list).
2873 \layout Standard
2874 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
2876 \begin_inset Figure size 595 618
2877 file Structs.eps
2878 width 3 100.00
2879 flags 9
2881 \end_inset 
2884 \layout Bibliography
2885 \bibitem {ROX}
2888 \emph on 
2889 The ROX desktop
2890 \emph toggle 
2891 , <http://rox.sourceforge.net>
2892 \layout Bibliography
2893 \bibitem {GTK+}
2896 \emph on 
2897 GTK+ Toolkit
2898 \emph toggle 
2899 , <http://www.gtk.org>
2900 \layout Bibliography
2901 \bibitem {GNOME}
2904 \emph on 
2905 The GNOME desktop
2906 \emph toggle 
2907 , <http://www.gnome.org>
2908 \layout Bibliography
2909 \bibitem {DND}
2912 \emph on 
2913 The Drag and Drop protocol
2914 \emph toggle 
2915 , <http://www.its.caltech.edu/~jafl/xdnd/>
2916 \layout Bibliography
2917 \bibitem {XDS}
2920 \emph on 
2921 The X Direct Save protocol
2922 \emph toggle 
2923 , <http://www.its.caltech.edu/~jafl/xds/>
2924 \layout Bibliography
2925 \bibitem {Choices}
2928 \emph on 
2929 The ROX Choices system
2930 \emph toggle 
2931 , <http://rox.sourceforge.net/choices.php3>
2932 \layout Bibliography
2933 \bibitem {enlightenment}
2936 \emph on 
2937 Enlightenment,
2938 \emph toggle 
2939  <http://www.enlightenment.org>
2940 \layout Bibliography
2941 \bibitem {PODFUK}
2944 \emph on 
2945 POrtable Dodgy Filesystems in Userland (hacK), 
2946 \emph toggle 
2947 <http://atrey.karlin.mff.cuni.cz/~pavel/podfuk/podfuk.html>
2948 \layout Bibliography
2949 \bibitem {ImLib}
2952 \emph on 
2953 ImLib
2954 \emph toggle 
2955 , <http://www.gnome.org>
2956 \the_end