r237: Fixed a bug which causes unnecessary flickering when a hidden file was
[rox-filer/ma.git] / ROX-Filer / src / Docs / Manual.lyx
blob880426f0694ef47037ac3a1f2ef88f7c925a422d
1 #This file was created by <tal197> Sun Apr  9 18:10:38 2000
2 #LyX 0.12 (C) 1995-1998 Matthias Ettrich and the LyX Team
3 \lyxformat 2.15
4 \textclass article
5 \begin_preamble
6 \def \Tab {\thinspace$\langle\hbox{Tab}\rangle$\thinspace}
7 \end_preamble
8 \language default
9 \inputencoding latin1
10 \fontscheme default
11 \graphics default
12 \paperfontsize default
13 \spacing single 
14 \papersize Default
15 \paperpackage widemarginsa4
16 \use_geometry 0
17 \use_amsmath 0
18 \paperorientation portrait
19 \secnumdepth 3
20 \tocdepth 3
21 \paragraph_separation indent
22 \defskip medskip
23 \quotes_language english
24 \quotes_times 2
25 \papercolumns 1
26 \papersides 1
27 \paperpagestyle default
29 \layout Title
31 ROX-Filer User Manual
32 \layout Author
34 Thomas Leonard, tal197@ecs.soton.ac.uk
35 \layout Date
38 \latex latex 
40 \backslash 
41 today
42 \layout Abstract
44 ROX-Filer is a graphical file manger for the X Window System.
45  Its user interface is based on the RISC OS filer and it supports similar
46  features such as application directories and drag-and-drop loading and
47  saving of files.
48 \layout Standard
51 \begin_inset LatexCommand \tableofcontents
53 \end_inset 
56 \layout Section
58 Introduction
59 \layout Standard
61 ROX-Filer is a simple and easy to use graphical file manager for X11, the
62  windowing system used on Unix and Unix-like operating systems.
63  It is also the core component of the ROX Desktop
64 \begin_inset LatexCommand \cite{ROX}
66 \end_inset 
69 \layout Subsection
71 Features
72 \layout Description
74 XDND A common drag-and-drop protocol used, for example, by the GNOME desktop
75 \begin_inset LatexCommand \cite{GNOME}
77 \end_inset 
80  This allows data to be loaded into an application by dragging it from a
81  filer window to a program.
82  The full specification is given in 
83 \begin_inset LatexCommand \cite{DND}
85 \end_inset 
88 \layout Description
90 XDS An extension to XDND that allows applications to save data by dragging
91  an icon back to a filer window.
92  The full specification is given in 
93 \begin_inset LatexCommand \cite{XDS}
95 \end_inset 
98 \layout Description
101 \protected_separator 
102 Choices A simple, but flexible, system for managing user choices.
103  See 
104 \begin_inset LatexCommand \cite{Choices}
106 \end_inset 
108  for details.
109 \layout Description
111 Application
112 \protected_separator 
113 directories Self contained relocatable applications, where installation
114  is as simple as copying it to where you want it and uninstalling it is
115  just a matter of deleting a directory.
116  Described later in this documentation.
117 \layout Section
119 Conditions
120 \layout Standard
122 This program is free software; you can redistribute it and/or modify it
123  under the terms of the GNU General Public License as published by the Free
124  Software Foundation; either version 2 of the License, or (at your option)
125  any later version.
126 \layout Standard
128 This program is distributed in the hope that it will be useful, but WITHOUT
129  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
130  FOR A PARTICULAR PURPOSE.
131  See the GNU General Public License for more details.
132 \layout Standard
134 You should have received a copy of the GNU General Public License along
135  with this program; if not, write to the Free Software Foundation, Inc.,
136  59 Temple Place, Suite 330, Boston, MA, 02111-1307, USA.
137 \layout Section
139 Instructions
140 \layout Subsection
142 Compiling
143 \layout Standard
145 ROX-Filer is usually supplied in source-only form.
146  To compile and run it, you will require
147 \layout Itemize
149 Unix or Linux (root access is not required),
150 \layout Itemize
152 The X Window system (supplied as standard on all modern systems),
153 \layout Itemize
155 GTK+ 1.2.0 or later (libraries and headers) - get the latest version from
157 \begin_inset LatexCommand \cite{GTK+}
159 \end_inset 
162 \layout Itemize
164 A C compiler (standard on most systems).
165 \layout Standard
167 All of the above are standard on most modern Linux distributions.
168  To check which version of GTK+ you have installed, run the gtk-config command,
169  like this ($ is the shell prompt):
170 \layout LyX-Code
172 $ gtk-config --version
173 \layout LyX-Code
175 1.2.3
176 \layout Standard
178 To compile:
179 \layout Enumerate
181 Change to the directory containing the ROX-Filer subdirectory.
182 \layout Enumerate
184 Run the AppRun script with the --compile option, like this:
185 \begin_deeper 
186 \layout LyX-Code
188 $ ROX-Filer/AppRun --compile
189 \end_deeper 
190 \layout Enumerate
192 ROX-Filer will perform various checks to find out what kind of system it
193  is being run on and will then compile.
194  If it doesn't work then please e-mail me and complain! Tell me what kind
195  of system you have and what errors were reported.
196  If you manage to fix the problem yourself then please e-mail me the fix.
197 \layout Standard
199 You can now run the filer by running the AppRun script without any options,
200  like this:
201 \layout LyX-Code
203 $ ROX-Filer/AppRun
204 \layout Standard
206 A window should appear and display the contents of your home directory.
207 \layout Standard
209 The executables files are stored inside the ROX-Filer directory in a different
210  subdirectory for each platform.
211  Therefore, you can compile the same application on several different types
212  of machine and then run it from any of them using the AppRun script.
213  This is particularly useful in a network environment.
214 \layout Subsection
216 Invoking
217 \layout Standard
219 By default, ROX-Filer will start by displaying your home directory.
220  You can get it to display other directories instead by listing them after
221  the command:
222 \layout LyX-Code
224 $ ROX-Filer/AppRun /home /usr /usr/local
225 \layout Standard
227 If you want one of the directories to be opened as a panel put 
228 \family typewriter 
230 \family default 
231  or 
232 \family typewriter 
234 \family default 
235  before the directory (for `bottom' or `top' panels).
236  If you don't know what a panel is, try it and see! To run the filer in
237  the background, put an & at the end of the line.
238 \layout LyX-Code
240 $ mkdir ~/Panel
241 \layout LyX-Code
243 $ ln -s $HOME ~/Panel/Home
244 \layout LyX-Code
246 $ ROX-Filer/AppRun -b ~/Panel &
247 \layout Standard
249 The panel should be displayed in a window without a title bar.
250  If this does not work then you may need to update your window manager.
251  The filer was designed and tested using the Enlightenment window manager
252 \begin_inset LatexCommand \cite{enlightenment}
254 \end_inset 
257  You could also try using the -o option which bypasses the window manager
258  entirely (also use this if the panel appears in the wrong place):
259 \layout LyX-Code
261 $ ROX-Filer/AppRun -o -b ~/Panel &
262 \layout Subsection
264 Mouse button and key bindings
265 \layout Standard
267 By default, the mouse button bindings are different to fit in better with
268  X conventions.
269  You can get the old RISC OS bindings by opening the Options window and
270  clicking on a few toggle buttons.
271 \layout Standard
273 By default, the mouse buttons and key bindings for filer windows are as
274  follows:
275 \layout Standard
276 \LyXTable
277 multicol5
278 21 2 0 0 -1 -1 -1 -1
279 1 1 0 0
280 1 1 0 0
281 0 1 0 0
282 0 1 0 0
283 0 1 1 0
284 0 1 0 0
285 0 1 1 0
286 0 1 0 0
287 0 1 1 0
288 0 1 1 0
289 0 1 0 0
290 0 1 1 0
291 0 1 1 0
292 0 1 0 0
293 0 1 1 0
294 0 1 0 0
295 0 1 0 0
296 0 1 0 0
297 0 1 0 0
298 0 1 0 0
299 0 1 0 0
300 8 1 0 "" ""
301 2 1 1 "10cm" ""
302 0 8 0 1 0 0 0 "" ""
303 0 2 0 1 0 0 0 "" ""
304 0 8 0 1 0 0 0 "" ""
305 0 8 0 1 0 0 0 "" ""
306 0 8 0 1 0 0 0 "" ""
307 0 8 0 1 0 0 0 "" ""
308 0 8 0 1 0 0 0 "" ""
309 0 8 0 1 1 0 0 "" ""
310 0 8 0 1 0 0 0 "" ""
311 0 8 0 1 0 0 0 "" ""
312 0 8 0 1 0 0 0 "" ""
313 0 8 0 1 1 0 0 "" ""
314 0 8 0 1 0 0 0 "" ""
315 0 8 0 1 0 0 0 "" ""
316 0 8 0 1 0 0 0 "" ""
317 0 8 0 1 1 0 0 "" ""
318 0 8 0 1 0 0 0 "" ""
319 0 8 0 1 1 0 0 "" ""
320 0 8 0 1 0 0 0 "" ""
321 0 8 0 1 0 0 0 "" ""
322 0 8 0 1 0 0 0 "" ""
323 0 2 0 1 1 0 0 "" ""
324 0 8 0 1 0 0 0 "" ""
325 0 8 0 1 1 0 0 "" ""
326 0 8 0 1 0 0 0 "" ""
327 0 8 0 1 0 0 0 "" ""
328 0 8 0 1 0 0 0 "" ""
329 0 8 0 1 1 0 0 "" ""
330 0 8 0 1 0 0 0 "" ""
331 0 8 0 1 0 0 0 "" ""
332 0 8 0 1 0 0 0 "" ""
333 0 8 0 1 0 0 0 "" ""
334 0 8 0 1 0 0 0 "" ""
335 0 8 0 1 0 0 0 "" ""
336 0 8 0 1 0 0 0 "" ""
337 0 8 0 1 0 0 0 "" ""
338 0 8 0 1 0 0 0 "" ""
339 0 8 0 1 0 0 0 "" ""
340 0 8 0 1 0 0 0 "" ""
341 0 8 0 1 0 0 0 "" ""
342 0 8 0 1 0 0 0 "" ""
343 0 8 0 1 0 0 0 "" ""
345 Key or mouse button
346 \newline 
347 Action
348 \newline 
349 Left button click
350 \newline 
351 Select (only) the item clicked on, or clear the selection.
352 \newline 
353 Middle button click
354 \newline 
355 Toggle the item between being selected and unselected.
356 \newline 
357 Right button click
358 \newline 
359 Open the main menu.
360  Hold down Ctrl while clicking to go directly to
361 \newline 
363 \newline 
364 the Selection submenu.
365 \newline 
366 Drag an item 
367 \newline 
368 Copy the file(s) to the destination (an application or another filer window)
369 \newline 
371 \newline 
372 Hold down Shift to move the file, or Ctrl+Shift to create a symbolic link.
373 \newline 
374 Drag (not over an item)
375 \newline 
376 Select a group of items by dragging a box around them.
377 \newline 
379 \newline 
380 If you use the left button then the boxed items only are selected, otherwise
381 \newline 
383 \newline 
384 the boxes items are toggled between selected and unselected.
385 \newline 
386 Double click left button
387 \newline 
388 Open the file or directory or run the application.
389 \newline 
391 \newline 
392 Holding down Shift while clicking does the same thing as choosing
393 \newline 
395 \newline 
396 `Shift Open' from the menu.
397 \newline 
398 Double click middle button
399 \newline 
400 Open the file and close the directory viewer,
401 \newline 
403 \newline 
404 or open the directory in a new window.
405 \newline 
406 Backspace
407 \newline 
408 Change to viewing the parent directory.
409 \newline 
410 Cursor keys
411 \newline 
412 Move the cursor around.
413 \newline 
414 Page Up, Page Down
415 \newline 
416 Move up and down in steps of ten rows at a time.
417 \newline 
418 Home, End
419 \newline 
420 Move to the first/last entry in the directory.
421 \newline 
422 Return
423 \newline 
424 Open the item under the cursor.
425  With Shift held down this acts like choosing 'Shift Open' from the menu.
426 \newline 
427 Spacebar
428 \newline 
429 Toggles the item under the cursor between being selected and unselected.
430 \layout Standard
432 You can simulate a click of the middle mouse button by clicking with Ctrl
433  held down.
434  Other keys can easily be defined by opening the menu, moving the pointer
435  over the item you want to use and pressing a key.
436  The key will appear in the menu and can be used from then on.
437  To make the new key bindings permanent, open the Options box from the menu
438  and click on Save.
439 \layout Subsection
441 The Selection
442 \layout Standard
444 While items are selected in a ROX-Filer window the filer has the global
445  selection.
446  You can then paste into another window to get the pathnames of the selected
447  files.
448  For example, to extract the files from a .tgz archive on a floppy disk into
449  your home directory:
450 \layout Enumerate
452 Choose `Xterm here' from the menu in your home directory.
453 \layout Enumerate
455 Type `tar xzf ' (but don't press Return)
456 \layout Enumerate
458 Click on the .tgz file to select it.
459 \layout Enumerate
461 Click the middle button in the xterm window to paste the name of the file
462  into the command.
463 \layout Enumerate
465 Press Return in the xterm to execute the command.
466 \layout Subsection
469 \begin_inset LatexCommand \label{sec: Toolbar}
471 \end_inset 
473 The Toolbar
474 \layout Standard
476 By default, each window has a toolbar along the top.
477  You can disable this from the Options window.
478  The three buttons on the toolbar are:
479 \layout Standard
480 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
481 multicol5
482 4 2 0 0 -1 -1 -1 -1
483 1 1 0 0
484 1 1 0 0
485 0 1 0 0
486 0 1 0 0
487 8 1 0 "" ""
488 2 1 1 "8cm" ""
489 0 8 0 1 0 0 0 "" ""
490 0 8 0 1 0 0 0 "" ""
491 0 8 0 1 0 0 0 "" ""
492 0 8 0 1 0 0 0 "" ""
493 0 8 0 1 0 0 0 "" ""
494 0 2 0 1 0 0 0 "" ""
495 0 8 0 1 0 0 0 "" ""
496 0 8 0 1 0 0 0 "" ""
498 Icon
499 \newline 
500 Action
501 \newline 
502 Up arrow
503 \newline 
504 Change to parent directory
505 \newline 
506 House
507 \newline 
508 Change to home directory
509 \newline 
510 Looping arrows
511 \newline 
512 Reread the directory contents
513 \layout Subsection
515 The Menus
516 \layout Standard
518 You can open a menu by right clicking
519 \begin_float footnote 
520 \layout Standard
522 If the Use `RISC OS mouse bindings' option is on then use the middle button
523  instead.
524 \end_float 
525  over a panel or filer window.
526  Here is a full description of each choice and what it does:
527 \layout Standard
528 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
529 multicol5
530 6 2 0 0 -1 -1 -1 -1
531 1 1 0 0
532 1 1 0 0
533 0 1 0 0
534 0 1 0 0
535 0 1 0 0
536 0 1 0 0
537 8 1 0 "" ""
538 2 1 1 "8cm" ""
539 0 8 0 1 0 0 0 "" ""
540 0 8 0 1 0 0 0 "" ""
541 0 8 0 1 0 0 0 "" ""
542 0 8 0 1 0 0 0 "" ""
543 0 8 0 1 0 0 0 "" ""
544 0 8 0 1 0 0 0 "" ""
545 0 8 0 1 0 0 0 "" ""
546 0 2 0 1 0 0 0 "" ""
547 0 8 0 1 0 0 0 "" ""
548 0 8 0 1 0 0 0 "" ""
549 0 8 0 1 0 0 0 "" ""
550 0 8 0 1 0 0 0 "" ""
552 Entry
553 \newline 
554 Action
555 \newline 
556 Select All
557 \newline 
558 Select every item in this window.
559 \newline 
560 Clear Selection
561 \newline 
562 Unselect every item in this window.
563 \newline 
564 Options...
565 \newline 
566 Configure ROX-Filer.
567 \newline 
568 New Directory...
569 \newline 
570 Create a new directory in this one.
571 \newline 
572 Xterm Here
573 \newline 
574 Open an xterm with its current directory set to this directory.
575 \layout Subsubsection
577 The Display Menu
578 \layout Standard
579 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
580 multicol5
581 11 2 0 0 -1 -1 -1 -1
582 1 1 0 0
583 1 1 0 0
584 0 1 0 0
585 0 1 0 0
586 0 1 0 0
587 0 1 0 0
588 0 1 0 0
589 0 1 0 0
590 0 1 0 0
591 0 1 0 0
592 0 1 1 0
593 8 1 0 "" ""
594 2 1 1 "8cm" ""
595 0 8 0 1 0 0 0 "" ""
596 0 8 0 1 0 0 0 "" ""
597 0 8 0 1 0 0 0 "" ""
598 0 2 1 1 0 0 0 "" ""
599 0 8 0 1 0 0 0 "" ""
600 0 8 0 1 0 0 0 "" ""
601 0 8 0 1 0 0 0 "" ""
602 0 8 0 1 0 0 0 "" ""
603 0 8 0 1 0 0 0 "" ""
604 0 8 0 1 0 0 0 "" ""
605 0 8 0 1 0 0 0 "" ""
606 0 2 0 1 0 0 0 "" ""
607 0 8 0 1 0 0 0 "" ""
608 0 8 0 1 0 0 0 "" ""
609 0 8 0 1 0 0 0 "" ""
610 0 8 0 1 0 0 0 "" ""
611 0 8 0 1 0 0 0 "" ""
612 0 8 0 1 0 0 0 "" ""
613 0 8 0 1 0 0 0 "" ""
614 0 8 0 1 1 0 0 "" ""
615 0 8 0 1 0 0 0 "" ""
616 0 8 0 1 0 0 0 "" ""
618 Entry
619 \newline 
620 Action
621 \newline 
622 Large Icons
623 \newline 
624 Each object in the directory is shown as a large icon with its name below.
625 \newline 
626 Small Icons
627 \newline 
628 Each entry is shown as the top part of its icon with the name beside it.
629 \newline 
630 Full Info
631 \newline 
632 Entries are displayed with their icon, name, type, permissions, owner and
633  size.
634 \newline 
635 Sort by Name
636 \newline 
637 Items are arranged in ASCII order.
638  Note that `Z' is considered to come before `a'.
639 \newline 
640 Sort by Type
641 \newline 
642 Items are grouped by their MIME-types and sorted by name within the groups.
643 \newline 
644 Sort by Date
645 \newline 
646 Most recently modified first.
647 \newline 
648 Sort by Size
649 \newline 
650 Largest first.
651 \newline 
652 Show Hidden
653 \newline 
654 If on, files beginning with a dot are shown, otherwise they are hidden.
655 \newline 
656 Refresh
657 \newline 
658 Rereads the contents of the directory and details of all the files in it.
659 \newline 
661 \newline 
662 Use this if the display becomes out-of-date.
663 \layout Subsubsection
666 \begin_inset LatexCommand \label{sec: Permissions}
668 \end_inset 
670 Permissions
671 \layout Standard
673 The permissions display is made up of four groups of three flags.
674  Each flag is displayed as a letter if it is on and a dash (-) if not.
675  The first three characters show the permissions for the owner of the file,
676  the second for other members of the file's group and the third for everyone
677  else.
678  Whichever group applies to the ROX-Filer process itself is shown underlined.
679  The fourth group shows any special flags.
680 \layout Standard
682 The meanings of the characters are:
683 \layout Description
685 r Permission to read the contents of a file, or the names of files in a
686  directory.
687 \layout Description
689 w Permission to alter the contents of a file, or change which names appear
690  in a directory.
691 \layout Description
693 x Permission to run the file as a program, or refer to the files listed
694  within the directory.
695 \layout Description
697 U This program executes with the 
698 \emph on 
699 effective user ID
700 \emph toggle 
701  of its owner rather than the person who ran it.
702 \layout Description
704 G This program executes with the 
705 \emph on 
706 effective group ID
707 \emph toggle 
708  of its group, regardless of who ran it.
709 \layout Description
711 T Entries in this directory can only be altered or removed by the people
712  who own the files even if they have write permission on the directory itself.
713 \layout Standard
715 For example, `
716 \family typewriter 
717 \bar under 
719 \bar default 
720 ,rwx,r-x/---
721 \family default 
722 ' means that the owner of the file is the same as the effective user of
723  ROX-Filer (basically, you own the file), you and members of the file's
724  group have read, write and execute permission and other people have only
725  read and execute permission.
726  There are no special flags set.
727 \layout Standard
729 The rules which determine which permissions apply may vary slightly between
730  operating systems, but a rough guide is:
731 \layout Itemize
733 If the
734 \emph on 
735  effective user ID
736 \emph toggle 
737  of the process is equal to the file's owner, then the owner permissions
738  apply.
739 \layout Itemize
741 Otherwise, if the 
742 \emph on 
743 effective group ID
744 \emph toggle 
745  of the process is equal to the file's group OR the file's group is one
746  of the process's 
747 \emph on 
748 supplemental groups
749 \emph toggle 
750  then the group permissions apply.
751 \layout Itemize
753 Otherwise, the 'other' permissions apply.
754  The 
755 \emph on 
756 real user ID
757 \emph toggle 
758  and 
759 \emph on 
760 real group ID
761 \emph toggle 
762  have no effect (except that a process may set its real IDs to its effective
763  IDs).
764 \layout Subsubsection
766 The Selection Menu
767 \layout Standard
769 All of these work in the same way - if you open the menu with some items
770  selected then the operation applies to those items.
771  If you open then menu over an item while there is no selection then that
772  item is temporarily selected.
773  If you choose one of these while there is no selection at all then the
774  window goes into `target mode' - the operation happens to the next item
775  you click on.
776  Click on the window background, press Escape, or click with the right mouse
777  button to cancel target mode.
778  Target mode is mainly useful with the `Single click navigation' option
779  and keys bound to the various menu entries.
780 \layout Standard
781 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
782 multicol5
783 20 2 0 0 -1 -1 -1 -1
784 1 1 0 0
785 1 1 0 0
786 0 1 0 0
787 0 1 0 0
788 0 1 0 0
789 0 1 1 0
790 0 1 1 0
791 0 1 1 0
792 0 1 0 0
793 0 1 1 0
794 0 1 0 0
795 0 1 0 0
796 0 1 0 0
797 0 1 0 0
798 0 1 1 0
799 0 1 1 0
800 0 1 0 0
801 0 1 1 0
802 0 1 0 0
803 0 1 0 0
804 8 1 0 "" ""
805 2 1 1 "10cm" ""
806 0 8 0 1 0 0 0 "" ""
807 0 8 0 1 0 0 0 "" ""
808 0 8 0 1 0 0 0 "" ""
809 0 8 0 1 0 0 0 "" ""
810 0 8 0 1 0 0 0 "" ""
811 0 2 0 1 0 0 0 "" ""
812 0 8 0 1 0 0 0 "" ""
813 0 8 0 1 0 0 0 "" ""
814 0 8 0 1 0 0 0 "" ""
815 0 2 0 1 1 0 0 "" ""
816 0 8 0 1 0 0 0 "" ""
817 0 2 0 1 1 0 0 "" ""
818 0 8 0 1 0 0 0 "" ""
819 0 2 0 1 1 0 0 "" ""
820 0 8 0 1 0 0 0 "" ""
821 0 8 0 1 0 0 0 "" ""
822 0 8 0 1 0 0 0 "" ""
823 0 8 0 1 1 0 0 "" ""
824 0 8 0 1 0 0 0 "" ""
825 0 8 0 1 0 0 0 "" ""
826 0 8 0 1 0 0 0 "" ""
827 0 8 0 1 0 0 0 "" ""
828 0 8 0 1 0 0 0 "" ""
829 0 8 0 1 0 0 0 "" ""
830 0 8 0 1 0 0 0 "" ""
831 0 8 0 1 0 0 0 "" ""
832 0 8 0 1 0 0 0 "" ""
833 0 8 0 1 1 0 0 "" ""
834 0 8 0 1 0 0 0 "" ""
835 0 8 0 1 1 0 0 "" ""
836 0 8 0 1 0 0 0 "" ""
837 0 8 0 1 0 0 0 "" ""
838 0 8 0 1 0 0 0 "" ""
839 0 8 0 1 1 0 0 "" ""
840 0 8 0 1 0 0 0 "" ""
841 0 8 0 1 0 0 0 "" ""
842 0 8 0 1 0 0 0 "" ""
843 0 8 0 1 0 0 0 "" ""
844 0 8 0 1 0 0 0 "" ""
845 0 8 0 1 0 0 0 "" ""
847 Entry
848 \newline 
849 Action
850 \newline 
851 Copy...
852 \newline 
853 Make a copy of this object in the same directory.
854 \newline 
855 Rename...
856 \newline 
857 Change the name used for this object.
858 \newline 
859 Link...
860 \newline 
861 Create a symbolic link to this name in the same directory.
862 \newline 
863 Shift Open
864 \newline 
865 Opens applications as directories, files as text/plain, mount points
866 \newline 
868 \newline 
869 by mounting or unmounting them and symlinks by opening the directory
870 \newline 
872 \newline 
873 containing the thing they point to.
874 \newline 
876 \newline 
877 This is the same as double-clicking with Shift held down.
878 \newline 
879 Help
880 \newline 
881 Explain what kind of thing is selected.
882  For applications,
883 \newline 
885 \newline 
886 display the help files.
887 \newline 
888 Info
889 \newline 
890 Display extra information about this object.
891 \newline 
892 Open VFS
893 \newline 
894 Open the file as if it was a directory --- see section 
895 \begin_inset LatexCommand \ref{sec: vfs}
897 \end_inset 
900 \newline 
901 Mount
902 \newline 
903 Mount or unmount each mount point selected.
904 \newline 
905 Delete
906 \newline 
907 Remove all the selected entries from the directory.
908 \newline 
910 \newline 
911 Subdirectories will have their contents deleted first.
912 \newline 
914 \newline 
915 Deleting symlinks only removes the link, not the thing it points to.
916 \newline 
917 Disk Usage
918 \newline 
919 Count the sizes of all the selected items.
920  Directories also have their
921 \newline 
923 \newline 
924 contents counted.
925  Symlinks count themselves, not the things they point to.
926 \newline 
927 Permissions
928 \newline 
929 Allows you to change the permissions for the selected files.
930 \newline 
931 Find
932 \newline 
933 Search for files by specifying various conditions --- see section 
934 \begin_inset LatexCommand \ref{sec: Searching}
936 \end_inset 
939 \layout Subsubsection
941 The Window Menu
942 \layout Standard
943 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
944 multicol5
945 8 2 0 0 -1 -1 -1 -1
946 1 1 0 0
947 1 1 0 0
948 0 1 0 0
949 0 1 0 0
950 0 1 0 0
951 0 1 0 0
952 0 1 0 0
953 0 1 0 0
954 8 1 0 "" ""
955 2 1 1 "8cm" ""
956 0 8 0 1 0 0 0 "" ""
957 0 8 0 1 0 0 0 "" ""
958 0 8 0 1 0 0 0 "" ""
959 0 2 0 1 0 0 0 "" ""
960 0 8 0 1 0 0 0 "" ""
961 0 8 0 1 0 0 0 "" ""
962 0 8 0 1 0 0 0 "" ""
963 0 8 0 1 0 0 0 "" ""
964 0 8 0 1 0 0 0 "" ""
965 0 8 0 1 0 0 0 "" ""
966 0 8 0 1 0 0 0 "" ""
967 0 8 0 1 0 0 0 "" ""
968 0 8 0 1 0 0 0 "" ""
969 0 8 0 1 0 0 0 "" ""
970 0 8 0 1 0 0 0 "" ""
971 0 8 0 1 0 0 0 "" ""
973 Entry
974 \newline 
975 Action
976 \newline 
977 Parent, New Window
978 \newline 
979 Open a new window displaying this window's parent.
980 \newline 
981 Parent, Same Window
982 \newline 
983 As above, but reuse this window.
984 \newline 
985 New Window
986 \newline 
987 Open another window onto this directory.
988 \newline 
989 Close Window
990 \newline 
991 Close this window.
992 \newline 
993 Enter Path
994 \newline 
995 Open the path-entry box (see section 
996 \begin_inset LatexCommand \ref{sec: mini}
998 \end_inset 
1001 \newline 
1002 Shell Command
1003 \newline 
1004 Open the shell command box (see section 
1005 \begin_inset LatexCommand \ref{sec: mini}
1007 \end_inset 
1010 \newline 
1011 Show ROX-Filer help
1012 \newline 
1013 Same as selecting ROX-Filer and choosing `Help' from the menu.
1014 \layout Subsubsection
1016 The Panel menu
1017 \layout Standard
1019 This is just a cut-down version of the window menu.
1020  The only new entry is `Open Panel as Directory', which displays the panel
1021  in a new, non-panel, window.
1022  `Remove Item' is a cut-down version of `Delete'; it only works for symbolic
1023  links and never asks for confirmation.
1024  Since dragging applications and directories to the panel creates symlinks
1025  it is very easy to change the panel contents to suit your needs.
1026 \layout Subsection
1029 \begin_inset LatexCommand \label{sec: vfs}
1031 \end_inset 
1033 Virtual File Systems
1034 \layout Standard
1036 Some types of file can be represented as a directory.
1037  A typical example is a zip file, which contains an entire directory structure
1038  in compressed form.
1039  It is often useful to be able to open up such a file as if it was a real
1040  directory, and the VFS system allows you to do this.
1041 \layout Standard
1043 To use this feature you must have one or both of the following:
1044 \layout Itemize
1046 A system (such as PODFUK
1047 \begin_inset LatexCommand \cite{PODFUK}
1049 \end_inset 
1051 ) which causes the kernel to support various Virtual File Systems directly.
1052  This is the best option since all programs will be able to access the contents
1053  of the VFS.
1054  You will require root access to install such a system, however, and it
1055  is not available on all platforms.
1056 \layout Itemize
1058 Support for the Midnight Commander VFS library compiled into ROX-Filer.
1059  This happens automatically when you compile ROX-Filer if it can find the
1060  VFS library --- this means having 
1061 \family typewriter 
1062 libvfs.so
1063 \family default 
1064  (or 
1065 \family typewriter 
1066 libvfs.a
1067 \family default 
1068 ) in a system library directory or in the directory in the environment variable
1070 \family typewriter 
1071 LD_LIBRARY_PATH
1072 \family default 
1074  In this case, you will be able to view the directory structure but not
1075  change it or access individual files.
1076  Support for this may be added later.
1077  Midnight Commander is part of the GNOME project.
1078 \layout Standard
1080 Note that using the `Open VFS' menu is simply a short-cut for using the
1081  path-entry box (explained below), so if you want to use a VFS not listed
1082  on the menu you can type in the path directly, eg:
1083 \layout Standard
1086 \family typewriter 
1087 /home/fred/archive.zip#uzip/
1088 \layout Standard
1091 \latex latex 
1093 \backslash 
1094 noindent 
1095 \latex default 
1096 Don't forget the final slash!
1097 \layout Subsubsection
1099 Step by step example of adding VFS support
1100 \layout Standard
1102 This assumes that you have the Midnight Commander source in a directory
1103  called `mc'.
1104  You might need to replace 
1105 \family typewriter 
1106 libvfs.so 
1107 \family default 
1108 with 
1109 \family typewriter 
1110 libvfs.a
1111 \family default 
1113 \layout LyX-Code
1115 $ cd mc
1116 \layout LyX-Code
1118 $ ./configure
1119 \layout LyX-Code
1121 $ cd vfs
1122 \layout LyX-Code
1124 $ make libvfs.so
1125 \layout Itemize
1127 If you have the root password then install the library in a system library
1128  directory as normal.
1129 \layout Itemize
1131 If not,
1132 \begin_deeper 
1133 \layout LyX-Code
1135 $ mkdir ~/lib
1136 \layout LyX-Code
1138 $ cp libvfs.so ~/lib
1139 \layout LyX-Code
1141 $ cd ~/Apps/ROX-Filer
1142 \layout Standard
1144 Edit the 
1145 \family typewriter 
1146 AppRun
1147 \family default 
1148  file to include this as the 
1149 \emph on 
1150 second
1151 \emph toggle 
1152  line:
1153 \layout LyX-Code
1155 LD_LIBRARY_PATH=${HOME}/lib; export LD_LIBRARY_PATH
1156 \layout Standard
1158 This will ensure that ROX-Filer will look for the library in the new 
1159 \family typewriter 
1160 ~/lib
1161 \family default 
1162  directory.
1163  Finally, recompile:
1164 \layout LyX-Code
1166 $ ./AppRun --compile
1167 \layout LyX-Code
1170 \layout LyX-Code
1172 checking for mc_stat in -lvfs...
1173  yes
1174 \layout Standard
1176 If you saw that line then it's worked! Well done!
1177 \end_deeper 
1178 \layout Subsection
1181 \begin_inset LatexCommand \label{sec: mini}
1183 \end_inset 
1185 The mini-buffer
1186 \layout Standard
1188 The mini-buffer is a white bar that appears along the bottom of the window
1189  and allows you to enter some text.
1190  Press Escape to get rid of it again.
1191  It behaves in different ways depending on how you invoked it:
1192 \layout Subsubsection
1194 The path-entry box
1195 \layout Standard
1197 This allows you to type in a path directly.
1198  As you type the display is updated to show the item entered visually.
1199  The main use is to find a file in a large directory quickly, but you can
1200  also use it for navigating between directories, or for selecting a full
1201  pathname from somewhere else and pasting it directly into the path-entry
1202  box.
1203 \layout Standard
1204 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1205 multicol5
1206 4 2 0 0 -1 -1 -1 -1
1207 1 1 0 0
1208 0 1 0 0
1209 0 1 0 0
1210 0 1 0 0
1211 8 1 0 "" ""
1212 2 1 1 "8cm" ""
1213 0 8 0 1 0 0 0 "" ""
1214 0 8 0 1 0 0 0 "" ""
1215 0 8 0 1 0 0 0 "" ""
1216 0 8 0 1 0 0 0 "" ""
1217 0 8 0 1 0 0 0 "" ""
1218 0 8 0 1 0 0 0 "" ""
1219 0 8 0 1 0 0 0 "" ""
1220 0 8 0 1 0 0 0 "" ""
1223 \newline 
1224 Action
1225 \newline 
1226 Return
1227 \newline 
1228 Open the currently selected item.
1229 \newline 
1231 \newline 
1232 Shell-style tab completion.
1233 \newline 
1234 Up, Down
1235 \newline 
1236 Select the previous/next matching entry.
1237 \layout Standard
1239 Tab completion tries to fill in as many characters for you as it can.
1240  For example, if there are two files in a directory called `save-mail-nov-1999'
1241  and `save-mail-dec-1999' then typing 'save' and pressing Tab will expand
1242  `save' to `save-mail-' and beep to indicate that the match is not complete.
1243  If you use tab completion on a directory and it is unique then the filer
1244  will automatically change into the directory.
1245  This behavior should be familiar to shell users.
1246 \layout Subsubsection*
1248 Example
1249 \layout Standard
1251 Let's say you want to locate the documentation for Wine in the directory
1252  /usr/doc (which is usually very large).
1253  Here's how you could do it:
1254 \layout Enumerate
1256 Open the minibuffer by choosing 'Enter Path' from the Window menu.
1257  I usually bind this function to the slash (`/') key.
1258 \layout Enumerate
1260 Press CTRL-U to delete the existing contents - this moves you to the root
1261  directory.
1262 \layout Enumerate
1264 Type `u
1265 \latex latex 
1267 \backslash 
1268 Tab{}
1269 \latex default 
1271 \latex latex 
1273 \backslash 
1274 Tab{}
1275 \latex default 
1277 \latex latex 
1279 \backslash 
1280 Tab{}
1281 \latex default 
1283  As you type, the cursor will move to the correct subdirectory.
1284  If it beeps when you press Tab then you need to supply more letters.
1285 \layout Subsubsection
1287 The shell command box
1288 \layout Standard
1290 This provides a quick way of entering shell commands if you don't want to
1291  open an xterm.
1292  If you don't know what shell commands are, skip this section!
1293 \layout Standard
1295 Just type in the command and press Return to execute it.
1296  Up and Down arrows move through previously entered commands.
1297  If some items are selected then they are assigned to the positional parameters
1298  $1, $2, etc.
1299 \layout Subsubsection*
1301 Example
1302 \layout Standard
1304 To print all the selected files:
1305 \layout Enumerate
1307 Open the minibuffer by choosing `Shell Command' from the Window menu.
1308  I usually bind this to the bang (`!') key.
1309 \layout Enumerate
1311 Type 
1312 \family typewriter 
1313 `lpr $*
1314 \family default 
1315 ' and press Return.
1316 \layout Subsubsection*
1318 Notes
1319 \layout Itemize
1321 Be careful; you will not be asked to confirm! If in doubt, start the command
1322  with `
1323 \family typewriter 
1324 echo
1325 \family default 
1326 ' so that it will be displayed rather than executed.
1327 \layout Itemize
1329 The above command won't work if some of the files contain spaces --- use
1331 \family typewriter 
1332 lpr 
1333 \latex latex 
1335 \latex default 
1337 \latex latex 
1339 \family default 
1340 \latex default 
1341 ' instead to be safe.
1342 \layout Itemize
1344 `sh' is always used as the name of the shell to run (mainly because bash
1345  and csh treat positional parameters differently).
1346  However, PATH is searched to find it so you can still use another shell
1347  if you want by naming it sh and putting it in your path.
1348 \layout Itemize
1350 Commands execute in the background, so you can say:
1351 \begin_deeper 
1352 \layout LyX-Code
1354 sleep 240; xmessage Time to go!
1355 \end_deeper 
1356 \layout Subsection
1358 Action windows
1359 \layout Standard
1361 Action windows are those boxes that appear while you're doing a Copy/Move/Link/e
1362 tc operation.
1363  The status line at the top of the window shows the current directory or
1364  object that the window is processing.
1365  The scrolling area below is the log area - it shows what has been done
1366  and may display questions here.
1367 \layout Standard
1369 At the bottom are four buttons and, sometimes, some options.
1370  The buttons work as follows:
1371 \layout Description
1373 Quiet will do simple operations without asking you to confirm each one.
1374  By turning this on and off during an operation you can use it like a pause
1375  button.
1376 \layout Description
1378 Yes answers yes to the question displayed in the log area.
1379 \layout Description
1381 No answers no to the question displayed in the log area.
1382 \layout Description
1384 Abort kills the current operation (if any) and closes the action window.
1385 \layout Standard
1387 You can control which actions get started automatically (without you having
1388  to click on Quiet at the start) from the Options window.
1389 \layout Subsubsection
1391 Action Window Options
1392 \layout Standard
1394 Some actions have options, which appear as option boxes at the bottom of
1395  the window.
1396  They are:
1397 \layout Itemize
1399 `Force' means that the filer won't treat non-writeable files as special.
1400  Normally, it confirms the deletion even if Quiet is pressed.
1401  Note that you still can't removed files from non-writeable directories
1402  because in that case you really don't have permission.
1403 \layout Itemize
1405 `Brief' prevents the filer logging a message every time it does something.
1406  Use this to speed things up if large numbers of messages are being logged.
1407 \layout Itemize
1409 `Recurse' means that doing something to a directory will also do the same
1410  thing to all its contents, and the contents of any subdirectories, and
1411  so on.
1412 \layout Subsection
1415 \begin_inset LatexCommand \label{sec: Searching}
1417 \end_inset 
1419 Searching
1420 \layout Standard
1422 The Find feature looks through all the selected files and directories and
1423  any subdirectories (recursively) looking for items that match a particular
1424  expression.
1425 \layout Standard
1427 If you know the name of a file then just enter it in the `Expression:' box,
1428  enclosed in single quotes.
1429  For example, to find a file called `log' you would enter:
1430 \layout LyX-Code
1432 'log'
1433 \layout Standard
1435 Remember to use normal quotes, not double quotes (
1436 \family typewriter 
1438 \begin_inset Quotes eld
1439 \end_inset 
1442 \family default 
1443 ) or back-quotes (
1444 \family typewriter 
1446 \family default 
1448 \layout Standard
1450 As the filer finds matching files they are added to the results list.
1451  Clicking on an entry in the list opens a viewer showing the file you clicked
1452  on.
1453  The filer will use the same window to view other results (so, if you want
1454  the results shown in separate windows you must explicitly create a new
1455  window from the Window menu).
1456 \layout Subsubsection
1458 Wildcards
1459 \layout Standard
1461 You can also put shell-style wildcard characters inside the quotes, for
1462  example:
1463 \layout LyX-Code
1465 '*.html'
1466 \layout LyX-Code
1468 'Report.*'
1469 \layout LyX-Code
1471 'Draft[1-5]'
1472 \layout LyX-Code
1474 'main.[ch]'
1475 \layout Standard
1477 Look at the 
1478 \family typewriter 
1479 glob(7)
1480 \family default 
1481  manpage if you want to know more about shell wildcards.
1482 \layout Standard
1484 If the pattern you enter contains a slash ('/') character then the pattern
1485  is matched against the file's full path, otherwise only the leafname is
1486  used.
1487  That is, 
1488 \family typewriter 
1489 '*tmp*'
1490 \family default 
1491  will find 'tmp' and 'tmpfile' but not '/tmp/file' --- 
1492 \family typewriter 
1493 '/*tmp*'
1494 \family default 
1495  will find all three.
1496 \layout Subsubsection
1498 Simple tests
1499 \layout Standard
1501 As well as finding files by their names you can also find them by various
1502  other attributes.
1503  Note that `file' is used here to mean anything that can appear in the filesyste
1504 m --- including directories, devices and so on.
1505 \layout Standard
1508 \latex latex 
1510 \backslash 
1511 smallskip
1512 \backslash 
1513 noindent 
1514 \latex default 
1515 These look at the type of the item being checked:
1516 \layout Description
1518 IsReg matches any regular (ie, normal) file.
1519 \layout Description
1521 IsLink matches symlinks.
1522 \layout Description
1524 IsDir matches directories.
1525 \layout Description
1527 IsChar matches character device files.
1528 \layout Description
1530 IsBlock matches block device files.
1531 \layout Description
1533 IsDev matches block or character device files.
1534 \layout Description
1536 IsPipe matches pipes.
1537 \layout Description
1539 IsSocket matches sockets.
1540 \layout Standard
1542 These look at the permissions set on the file - see section 
1543 \begin_inset LatexCommand \ref{sec: Permissions}
1545 \end_inset 
1548 \layout Description
1550 IsSUID matches files which have the Set-UID bit set.
1551 \layout Description
1553 IsSGID matches files which have the Set-GID bit set.
1554 \layout Description
1556 IsSticky matches files with the sticky bit set,
1557 \layout Description
1559 IsReadable matches files which you can read from.
1560 \layout Description
1562 IsWriteable matches files which you can write to.
1563 \layout Description
1565 IsExecutable matches files which you can execute.
1566 \layout Standard
1568 And a couple of other useful ones:
1569 \layout Description
1571 IsEmpty finds empty files (ie, those whose length is 0 bytes).
1572 \layout Description
1574 IsMine finds files which you own.
1575 \layout Subsubsection
1577 Logic operators
1578 \layout Standard
1580 You can combine the above tests in various ways to perform more advanced
1581  searches.
1582  An expression is actually made up of a list of 
1583 \emph on 
1584 cases
1585 \emph toggle 
1586 , separated by commas.
1587  The filer will try to match each case in turn until one matches or there
1588  are no more cases left.
1589  For example, to search for files with several possible endings:
1590 \layout LyX-Code
1592 '*.gif', '*.htm', '*.html'
1593 \layout Standard
1595 Further, each of the cases is actually a list of conditions.
1596  The case only matches if all of its conditions are met.
1597  So, to find a directory called 
1598 \family typewriter 
1600 \family default 
1601  or a regular file ending in 
1602 \family typewriter 
1604 \family default 
1606 \layout LyX-Code
1608 IsDir 'lib', IsReg '*.so'
1609 \layout Standard
1611 You can negate a condition by putting a 
1612 \family typewriter 
1614 \family default 
1615  in front of it and you can use a sub-expression as a condition by bracketing
1616  it, like this:
1617 \layout LyX-Code
1619 ! (IsDir, IsReg)
1620 \layout LyX-Code
1622 !IsDir !IsReg
1623 \layout LyX-Code
1625 Not isdir and not isreg
1626 \layout Standard
1628 All three do the same thing.
1629 \layout Subsubsection
1631 Comparisons
1632 \layout Standard
1634 You can also compare various values using the operators 
1635 \family typewriter 
1636 <, <=, =, !=, >, >=
1637 \family default 
1638  (for less-than, less-than-or-equal-to, equal-to, not-equal-to, greater-than
1639  and greater-than-or-equal-to).
1640  When comparing times, you may find it helpful to use 
1641 \family typewriter 
1642 after 
1643 \family default 
1644 and 
1645 \family typewriter 
1646 before
1647 \family default 
1648  instead of 
1649 \family typewriter 
1651 \family default 
1652  and 
1653 \family typewriter 
1655 \family default 
1656  to make things clearer.
1657 \layout Standard
1659 The following are read from the file being checked and may be used for the
1660  values being compared:
1661 \layout Description
1663 atime The time that the file was last accessed.
1664 \layout Description
1666 ctime The time that the file's status was last changed.
1667 \layout Description
1669 mtime The time that the file's contents were last modified.
1670 \layout Description
1672 size The size of the file.
1673 \layout Description
1675 inode The file's inode (index) number
1676 \layout Description
1678 nlinks The number of links to this file (that is, the number of directory
1679  entries which refer to this file.
1680  Note that symlinks don't count as references).
1681 \layout Description
1683 uid The User ID of the file.
1684 \layout Description
1686 gid The Group ID of the file.
1687 \layout Description
1689 blocks The number of disk blocks being used by the file.
1690 \layout Standard
1692 Times are measured as seconds since the Unix Epoch (00:00:00 UTC, January
1693  1, 1970).
1694  Sizes are in bytes.
1695  When specifying constants to compare these values with you may use various
1696  keywords to scale the value:
1697 \layout Description
1699 Byte(s) has no effect, but looks better.
1700 \layout Description
1702 Kb multiplies by 1024, so 2Kb is the same as 2048.
1703 \layout Description
1705 Mb multiplies by 
1706 \begin_inset Formula \( 1024^{2} \)
1707 \end_inset 
1709 , ie 1024 Kb.
1710 \layout Description
1712 Sec(s) has no effect, but looks nice.
1713 \layout Description
1715 Min(s) multiplies by 60 to get minutes.
1716 \layout Description
1718 Hour(s),
1719 \protected_separator 
1720 Day(s),
1721 \protected_separator 
1722 Week(s),
1723 \protected_separator 
1724 Year(s) likewise convert to the relevant unit.
1725 \layout Description
1727 Ago makes the time in the past relative to when the check is done.
1728 \layout Description
1730 Hence makes the time in the future.
1731 \layout Description
1733 Now is short for `
1734 \family typewriter 
1735 0 Secs Hence
1736 \family default 
1738 \layout Standard
1740 Some examples should make this all a bit clearer!
1741 \layout LyX-Code
1743 mtime after 1 day ago
1744 \layout LyX-Code
1746 size > 10 Mb
1747 \layout LyX-Code
1749 IsReg and nlinks > 1
1750 \layout Standard
1752 The first finds files modified within the last 24 hours.
1753  You could use 
1754 \family typewriter 
1756 \family default 
1757  instead of 
1758 \family typewriter 
1759 after,
1760 \family default 
1761 but it's not so clear what is meant.
1762  The second finds files larger than 10 Mb and the last finds regular files
1763  with more than one directory entry.
1764 \layout Standard
1766 Be careful though --- the filer doesn't check the context of the modifiers,
1767  so 
1768 \family typewriter 
1769 size > 1 day ago
1770 \family default 
1771  is allowed, although it doesn't make much sense! Also, forgetting to use
1773 \family typewriter 
1775 \family default 
1776  or 
1777 \family typewriter 
1778 hence
1779 \family default 
1780  will cause odd effects (the time will be measured relative to the Epoch
1781  rather than the current time).
1782  Finally, don't use = with times --- 
1783 \family typewriter 
1784 atime = 1 day ago
1785 \family default 
1786  looks for a file accessed 
1787 \emph on 
1788 exactly
1789 \emph toggle 
1790  86400 seconds ago...
1791 \layout Subsection
1793 Specials
1794 \layout Description
1796 System(Command) executes `Command' on the file.
1797  The test succeeds if the command returns an exit status of zero.
1798  A `%' character in `Command' is replaced by the full path of the file being
1799  checked.
1800  System is a very slow test to perform, so do it last if possible.
1801  For example, if you're looking for a .c file containing the word `main',
1802  do
1803 \begin_deeper 
1804 \layout LyX-Code
1806 '*.c' system(grep -q main
1807 \latex latex 
1809 \backslash 
1810 thinspace{}
1811 \latex default 
1813 \latex latex 
1815 \backslash 
1816 thinspace{}"
1817 \latex default 
1819 \layout Standard
1821 so that the grep is only performed for files ending in .c (as opposed to
1822  only checking that the file ends in .c if it contains the word `main').
1823 \end_deeper 
1824 \layout Description
1826 Prune Always fails!
1827 \begin_float footnote 
1828 \layout Standard
1830 Note that this is the opposite of the 
1831 \noun on 
1832 find(1)
1833 \noun toggle 
1834  command.
1835 \end_float 
1836  However, if it gets evaluated at all then it prevents the filer from checking
1837  inside the current directory.
1838  Remember the order in which the filer checks the expression!
1839 \layout Standard
1841 Examples:
1842 \layout LyX-Code
1844 '*.old' system(echo rm %)
1845 \layout LyX-Code
1847 'src' prune, '*.c'
1848 \layout Standard
1850 The first displays a command to delete each file ending in 
1851 \family typewriter 
1852 .old
1853 \family default 
1854 ; you can either paste the results into an xterm to execute them or run
1855  the search again without the 
1856 \family typewriter 
1857 echo
1858 \family default 
1860  It's always a good idea to use 
1861 \family typewriter 
1862 echo
1863 \family default 
1864  first with dangerous commands! The second looks for 
1865 \family typewriter 
1867 \family default 
1868  files, but does not bother checking inside directories called 
1869 \family typewriter 
1871 \family default 
1873  The expression is evaluated like this:
1874 \layout Standard
1875 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
1877 \begin_inset Figure size 216 180
1878 file Prune.eps
1879 height 2 2.5
1880 flags 9
1882 \end_inset 
1885 \layout Subsection
1887 Options
1888 \layout Standard
1890 You can configure various aspects of ROX-Filer from the Options box.
1891  Choose `Options...' from a filer window menu to open it.
1893 \layout Standard
1895 At the bottom of the window are four buttons:
1896 \layout Description
1898 Save puts all your choices into effect, and also saves them into your Choices
1899  directory for next time ROX-Filer is loaded.
1900  ROX-Filer will never save any preferences to disk unless you click on the
1901  `Save' button in the options window.
1902 \layout Description
1904 OK puts your choices into effect without writing anything to disk.
1905 \layout Description
1907 Apply works like OK, but without closing the Options window.
1908 \layout Description
1910 Cancel closes the options box and forgets any changes you made.
1911 \layout Subsubsection
1913 Action window options
1914 \layout Standard
1916 You can choose to start some operations automatically, without waiting for
1917  you to click on Quiet.
1918  Select each operation that you want to auto-start here.
1919 \layout Subsubsection
1921 Filer window options
1922 \layout Itemize
1924 `New window on button 1' swaps the actions of the two non-menu buttons when
1925  opening directories.
1926  This is provided for people who are used to the RISC OS mouse bindings.
1927 \layout Itemize
1929 `Menu on button 2' swaps the actions of buttons 2 and 3 so that the middle
1930  button brings up the menus.
1931  This is provided for people who are used to the RISC OS mouse bindings.
1932 \layout Itemize
1934 `Single-click navigation' treats a single click over an item as if it was
1935  a double click.
1936  This allows you to move around, run applications and open files without
1937  double clicking.
1938  To select a file 
1939 \emph on 
1940 without
1941 \emph toggle 
1942  opening it you must hold down CTRL while you click.
1943 \layout Itemize
1945 `Unique windows' prevents you from having two windows showing the same directory.
1946  Opening a second view onto a directory closes the first.
1947 \layout Itemize
1949 `Toolbar type for new windows' allows you to choose what kind of toolbar
1950  will be used for future filer windows (the currently open windows are not
1951  affected).
1952  None means that new windows will not have a toolbar, Normal provides a
1953  small bar of icons, and GNOME displays larger icons with textual labels
1954  and allows the bar to be detached from the window by dragging it.
1955  See section 
1956 \begin_inset LatexCommand \ref{sec: Toolbar}
1958 \end_inset 
1960  for details.
1961 \layout Standard
1963 The last display style and sort type you chose will also be saved as the
1964  defaults for next time.
1965 \layout Subsubsection
1967 Drag and Drop options
1968 \layout Standard
1970 ROX-Filer uses the standard XDND protocol for drag-and-drop.
1971  This protocol recommends that URIs should contain the hostname of the computer
1972  that the resource is on so that the program receiving the data can determine
1973  whether it can get the data directly or whether it must go via the X-server.
1974  However, many older programs (particularly GNOME applications) get confused
1975  by the hostname and fail to load the data correctly.
1976  If `Don't use hostnames' is on then the hostname part is omitted and ROX-Filer
1977  will work with these applications BUT you can't drag data to a program
1978  running on a different machine.
1979 \layout Standard
1981 `Allow dragging to icons in filer windows' controls what happens when you
1982  drop files onto icons in filer windows.
1983  If on then drops onto directories will save the data inside the directory
1984  while dropping onto programs will invoke the program on that data.
1985  If off then drops anywhere inside a filer window act like drops onto the
1986  window background --- that is, the data will be saved into the directory
1987  being displayed.
1988 \layout Subsubsection
1990 Menu options
1991 \layout Standard
1993 The `Xterm here' program is the one used when you choose `Xterm here' from
1994  the menu.
1995  You can replace it with another program such as `gnome-terminal' if you
1996  like.
1997  In fact, any program will do, but note that you cannot pass any options
1998  to the program at present.
1999 \layout Section
2001 Filetypes
2002 \layout Standard
2004 ROX-Filer uses three sub-directories in your Choices directory for filetypes:
2005 \layout Description
2007 MIME-info contains files which specify what the MIME type for a file should
2008  be, based on its extention.
2009  All the files in all the MIME-info directories are scanned when the filer
2010  loads.
2011  In addition, ROX-Filer is now supplied with a file called `MIME-info' (inside
2012  its application directory), which is also scanned --- this allows new users
2013  to get started more easily.
2014  Many applications now come with a file called `something.mime'; copy these
2015  files into your MIME-info directory to make ROX-Filer automatically recognise
2016  the new extensions.
2017 \layout Description
2019 MIME-types contains symlinks, one for each MIME type, which point to programs
2020  that can handle files of that type.
2021  For example, to make opening an HTML file load it into Netscape:
2022 \begin_deeper 
2023 \layout Enumerate
2025 Find the Netscape application and go to `Link...' on the menu.
2026 \layout Enumerate
2028 Enter `text_html' as the name for the link and drag the icon from the Link
2029  box into the MIME-types directory.
2030 \layout Standard
2032 You can also put actual programs in here as well as links if you want to.
2033 \end_deeper 
2034 \layout Description
2036 MIME-icons contains the images used to display each type of file.
2037  So the filer will try to display an HTML file using the icon `MIME-icons/text_h
2038 tml.xpm'.
2039 \layout Standard
2041 Many sample files are supplied as part of the ROX desktop
2042 \begin_inset LatexCommand \cite{ROX}
2044 \end_inset 
2047 \layout Standard
2049 In both MIME-types and MIME-icons directories you can also provide default
2050  actions/images for each media type.
2051  For example, if `text_html' isn't found then the filer will try simply
2052  using `text'.
2053 \layout Section
2055 Application directories
2056 \layout Standard
2058 An application directory is a directory which can be run as an application.
2059  It contains all the resources of an application - source code, binaries,
2060  documentation and so on.
2061  Keeping everything in one place make installation and uninstallation much
2062  easier for users.
2063  You can also keep multiple versions of a program by simply having several
2064  application directories.
2065  You may move and rename them as you please.
2066  Application directories are easier to use and install and are more secure
2067  too
2068 \begin_float footnote 
2069 \layout Standard
2071 Because you can compile an application as a user and then simply copy it
2072  as root rather than having to run an install script you are free from the
2073  danger of running untrusted code as root.
2074  All you have to watch out for is setuid binaries.
2075 \end_float 
2077 \layout Standard
2079 To make a directory executable all you need to do is create a executable
2080  file called `AppRun' inside it.
2081  This file is run when the user double-clicks on the application.
2082  You should also provide `AppIcon.xpm' (which will be used as the image for
2083  the application) and `Help' (which is a directory that is opened when the
2084  user asks for help).
2085  Have a look at the ROX-Filer application directory for a full example.
2086 \layout Section
2088 Hacking
2089 \layout Standard
2091 This is a quick start guide for people who want to modify the source code.
2092  If you make useful changes or fix bugs, please send patches to me or to
2093  the mailing list.
2094  Tell me which version you're using!
2095 \layout Subsection
2097 Compiling
2098 \layout Standard
2100 The first time you compile the program you need to do `AppRun --compile',
2101  but in future you only need to run `make' in the `src' directory when you
2102  change the .c and .h files.
2103  You might want to run `make depend' too.
2104 \layout Subsection
2106 Creating and applying patches
2107 \layout Standard
2109 When people make small modifications to the sources they will often distribute
2110  them as 
2111 \emph on 
2112 patch files
2113 \emph toggle 
2114  --- usually on the mailing list.
2115  To apply a patch, go into the 'src' directory and run patch with the patch
2116  file.
2117  Then recompile, like this:
2118 \layout LyX-Code
2120 $ cd ROX-Filer/src
2121 \layout LyX-Code
2123 $ patch < patchfile
2124 \layout LyX-Code
2126 $ ../AppRun --compile
2127 \layout Standard
2129 You can remove the patch by simply repeating the above sequence - patch
2130  will detect that the patch is already applied and offer to remove it.
2131  To create a patch you need to take a copy of the old 'src' directory before
2132  you modify it (before you compile, even):
2133 \layout LyX-Code
2135 $ cd ROX-Filer
2136 \layout LyX-Code
2138 $ cp -r src old_src
2139 \layout Standard
2141 Now, modify and compile until it works they way you want it to.
2142  To make the patch:
2143 \layout LyX-Code
2145 $ cd ROX-Filer
2146 \layout LyX-Code
2148 $ diff -cr old_src src > my_patch
2149 \layout Standard
2151 This creates a human- and machine-readable patch file.
2152  Submit this to the mailing list.
2153  The are many reasons for posting patches rather that the modified files:
2154 \layout Itemize
2156 They are smaller, and hence shouldn't bounce.
2157  They are also quicker to download for people with slow connections.
2158 \layout Itemize
2160 People can see what they're getting into before applying them!
2161 \layout Itemize
2163 Patches can (usually) be applied to slightly modified versions of the sources.
2164  This means that people can apply several patches without each new one overwriti
2165 ng the others.
2166 \layout Subsection
2168 Autoconf
2169 \layout Standard
2171 Here's a quick explanation of the autoconf system in case you haven't used
2172  it before.
2173  See `info autoconf' for full details.
2174 \layout Standard
2176 There's a file called 'configure.in' which contains various tests (`info
2177  autoconf').
2178  You run `autoconf' and it reads through the file and generates a shell
2179  script to perform the tests, saving it as `configure'.
2180  `configure' is normally distributed with the program because not everyone
2181  has autoconf.
2182 \layout Standard
2184 You then run `configure' (in fact, let the `AppRun' script do it because
2185  it passes it some arguments), which performs all the tests.
2186  It reads in `Makefile.in' and `config.h.in' and fills in the missing values
2187  with the test results to produce `Makefile' and `config.h'.
2188 \layout Standard
2190 You run `make', which creates .o files from the .c files and links to produce
2191  ROX-Filer.
2192 \layout Subsection
2194 Data-structures
2195 \layout Standard
2197 The diagram below shows some of the major structures found in the filer
2198  along with their most important attributes and methods.
2199  Exactly which attributes have been included is a little hit-and-miss but
2200  it might help you get the overall picture.
2201  If you find it useful, please let me know and I'll try to keep it up-to-date
2202  (or even extend it!).
2203 \layout Standard
2205 To summarise, each window (or panel) has its own 
2206 \series bold 
2207 FilerWindow
2208 \series default 
2209  structure.
2210  This structure has pointers to a 
2211 \series bold 
2212 Collection
2213 \series default 
2214  (which is the widget which actually displays the files) and to a 
2215 \series bold 
2216 Directory
2217 \series default 
2218 , which is used to cache the directory contents.
2219  Both 
2220 \series bold 
2221 Collection
2222 \series default 
2223  and 
2224 \series bold 
2225 Directory
2226 \series default 
2227  have pointers to (the same) 
2228 \series bold 
2229 DirItem
2230 \series default 
2231 s, each of which corresponds to one filesystem object.
2232  Several 
2233 \series bold 
2234 FilerWindow
2235 \series default 
2236 s may share the same 
2237 \series bold 
2238 Directory
2239 \series default 
2241  While scanning is in progress the 
2242 \series bold 
2243 Directory
2244 \series default 
2245  keeps a list of the new items it has found (
2246 \emph on 
2247 new_items
2248 \emph toggle 
2249 ) and the items which have changed in some way (
2250 \emph on 
2251 up_items
2252 \emph toggle 
2254  It periodically notifies the filer window of the changes-so-far by calling
2255  all the functions in the 
2256 \emph on 
2257 users
2258 \emph toggle 
2259  list (use 
2260 \emph on 
2261 attach()
2262 \emph toggle 
2263  and 
2264 \emph on 
2265 detach()
2266 \emph toggle 
2267  to add and remove functions to or from the list).
2268 \layout Standard
2269 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
2271 \begin_inset Figure size 595 585
2272 file Structs.eps
2273 width 3 100
2274 flags 9
2276 \end_inset 
2279 \layout Bibliography
2280 \bibitem {ROX}
2283 \emph on 
2284 The ROX desktop
2285 \emph toggle 
2286 , <http://www.ecs.soton.ac.uk/~tal197/rox.php3>
2287 \layout Bibliography
2288 \bibitem {GTK+}
2291 \emph on 
2292 GTK+ Toolkit
2293 \emph toggle 
2294 , <http://www.gtk.org>
2295 \layout Bibliography
2296 \bibitem {GNOME}
2299 \emph on 
2300 The GNOME desktop
2301 \emph toggle 
2302 , <http://www.gnome.org>
2303 \layout Bibliography
2304 \bibitem {DND}
2307 \emph on 
2308 The Drag and Drop protocol
2309 \emph toggle 
2310 , <http://www.its.caltech.edu/~jafl/xdnd/>
2311 \layout Bibliography
2312 \bibitem {XDS}
2315 \emph on 
2316 The X Direct Save protocol
2317 \emph toggle 
2318 , <http://www.its.caltech.edu/~jafl/xds/>
2319 \layout Bibliography
2320 \bibitem {Choices}
2323 \emph on 
2324 The ROX Choices system
2325 \emph toggle 
2326 , <http://www.ecs.soton.ac.uk/~tal197/choices.php3>
2327 \layout Bibliography
2328 \bibitem {enlightenment}
2331 \emph on 
2332 Enlightenment,
2333 \emph toggle 
2334  <http://www.enlightenment.org> 
2335 \layout Bibliography
2336 \bibitem {PODFUK}
2339 \emph on 
2340 POrtable Dodgy Filesystems in Userland (hacK), 
2341 \emph toggle 
2342 <http://atrey.karlin.mff.cuni.cz/~pavel/podfuk/podfuk.html>
2343 \the_end