r235: Added the Shell Command feature to the minibuffer.
[rox-filer.git] / ROX-Filer / src / Docs / Manual.lyx
blob085fc14ece4fbc9da2ceaed7c331ace63eee9077
1 #This file was created by <tal197> Sun Apr  9 16:01:14 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 21 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 0 1 0 0
805 8 1 0 "" ""
806 2 1 1 "10cm" ""
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 8 0 1 0 0 0 "" ""
812 0 2 0 1 0 0 0 "" ""
813 0 8 0 1 0 0 0 "" ""
814 0 8 0 1 0 0 0 "" ""
815 0 8 0 1 0 0 0 "" ""
816 0 2 0 1 1 0 0 "" ""
817 0 8 0 1 0 0 0 "" ""
818 0 2 0 1 1 0 0 "" ""
819 0 8 0 1 0 0 0 "" ""
820 0 2 0 1 1 0 0 "" ""
821 0 8 0 1 0 0 0 "" ""
822 0 8 0 1 0 0 0 "" ""
823 0 8 0 1 0 0 0 "" ""
824 0 8 0 1 1 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 0 0 0 "" ""
834 0 8 0 1 1 0 0 "" ""
835 0 8 0 1 0 0 0 "" ""
836 0 8 0 1 1 0 0 "" ""
837 0 8 0 1 0 0 0 "" ""
838 0 8 0 1 0 0 0 "" ""
839 0 8 0 1 0 0 0 "" ""
840 0 8 0 1 1 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 "" ""
846 0 8 0 1 0 0 0 "" ""
847 0 8 0 1 0 0 0 "" ""
848 0 8 0 1 0 0 0 "" ""
850 Entry
851 \newline 
852 Action
853 \newline 
854 Copy...
855 \newline 
856 Make a copy of this object in the same directory.
857 \newline 
858 Rename...
859 \newline 
860 Change the name used for this object.
861 \newline 
862 Link...
863 \newline 
864 Create a symbolic link to this name in the same directory.
865 \newline 
866 Shift Open
867 \newline 
868 Opens applications as directories, files as text/plain, mount points
869 \newline 
871 \newline 
872 by mounting or unmounting them and symlinks by opening the directory
873 \newline 
875 \newline 
876 containing the thing they point to.
877 \newline 
879 \newline 
880 This is the same as double-clicking with Shift held down.
881 \newline 
882 Help
883 \newline 
884 Explain what kind of thing is selected.
885  For applications,
886 \newline 
888 \newline 
889 display the help files.
890 \newline 
891 Info
892 \newline 
893 Display extra information about this object.
894 \newline 
895 Open VFS
896 \newline 
897 Open the file as if it was a directory --- see section 
898 \begin_inset LatexCommand \ref{sec: vfs}
900 \end_inset 
903 \newline 
904 Mount
905 \newline 
906 Mount or unmount each mount point selected.
907 \newline 
908 Delete
909 \newline 
910 Remove all the selected entries from the directory.
911 \newline 
913 \newline 
914 Subdirectories will have their contents deleted first.
915 \newline 
917 \newline 
918 Deleting symlinks only removes the link, not the thing it points to.
919 \newline 
920 Disk Usage
921 \newline 
922 Count the sizes of all the selected items.
923  Directories also have their
924 \newline 
926 \newline 
927 contents counted.
928  Symlinks count themselves, not the things they point to.
929 \newline 
930 Permissions
931 \newline 
932 Allows you to change the permissions for the selected files.
933 \newline 
934 Touch
935 \newline 
936 Not implemented.
937 \newline 
938 Find
939 \newline 
940 Search for files by specifying various conditions --- see section 
941 \begin_inset LatexCommand \ref{sec: Searching}
943 \end_inset 
946 \layout Subsubsection
948 The Window Menu
949 \layout Standard
950 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
951 multicol5
952 8 2 0 0 -1 -1 -1 -1
953 1 1 0 0
954 1 1 0 0
955 0 1 0 0
956 0 1 0 0
957 0 1 0 0
958 0 1 0 0
959 0 1 0 0
960 0 1 0 0
961 8 1 0 "" ""
962 2 1 1 "8cm" ""
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 2 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 "" ""
972 0 8 0 1 0 0 0 "" ""
973 0 8 0 1 0 0 0 "" ""
974 0 8 0 1 0 0 0 "" ""
975 0 8 0 1 0 0 0 "" ""
976 0 8 0 1 0 0 0 "" ""
977 0 8 0 1 0 0 0 "" ""
978 0 8 0 1 0 0 0 "" ""
980 Entry
981 \newline 
982 Action
983 \newline 
984 Parent, New Window
985 \newline 
986 Open a new window displaying this window's parent.
987 \newline 
988 Parent, Same Window
989 \newline 
990 As above, but reuse this window.
991 \newline 
992 New Window
993 \newline 
994 Open another window onto this directory.
995 \newline 
996 Close Window
997 \newline 
998 Close this window.
999 \newline 
1000 Enter Path
1001 \newline 
1002 Open the path-entry box (see section 
1003 \begin_inset LatexCommand \ref{sec: mini}
1005 \end_inset 
1008 \newline 
1009 Shell Command
1010 \newline 
1011 Open the shell command box (see section 
1012 \begin_inset LatexCommand \ref{sec: mini}
1014 \end_inset 
1017 \newline 
1018 Show ROX-Filer help
1019 \newline 
1020 Same as selecting ROX-Filer and choosing `Help' from the menu.
1021 \layout Subsubsection
1023 The Panel menu
1024 \layout Standard
1026 This is just a cut-down version of the window menu.
1027  The only new entry is `Open Panel as Directory', which displays the panel
1028  in a new, non-panel, window.
1029  `Remove Item' is a cut-down version of `Delete'; it only works for symbolic
1030  links and never asks for confirmation.
1031  Since dragging applications and directories to the panel creates symlinks
1032  it is very easy to change the panel contents to suit your needs.
1033 \layout Subsection
1036 \begin_inset LatexCommand \label{sec: vfs}
1038 \end_inset 
1040 Virtual File Systems
1041 \layout Standard
1043 Some types of file can be represented as a directory.
1044  A typical example is a zip file, which contains an entire directory structure
1045  in compressed form.
1046  It is often useful to be able to open up such a file as if it was a real
1047  directory, and the VFS system allows you to do this.
1048 \layout Standard
1050 To use this feature you must have one or both of the following:
1051 \layout Itemize
1053 A system (such as PODFUK
1054 \begin_inset LatexCommand \cite{PODFUK}
1056 \end_inset 
1058 ) which causes the kernel to support various Virtual File Systems directly.
1059  This is the best option since all programs will be able to access the contents
1060  of the VFS.
1061  You will require root access to install such a system, however, and it
1062  is not available on all platforms.
1063 \layout Itemize
1065 Support for the Midnight Commander VFS library compiled into ROX-Filer.
1066  This happens automatically when you compile ROX-Filer if it can find the
1067  VFS library --- this means having 
1068 \family typewriter 
1069 libvfs.so
1070 \family default 
1071  (or 
1072 \family typewriter 
1073 libvfs.a
1074 \family default 
1075 ) in a system library directory or in the directory in the environment variable
1077 \family typewriter 
1078 LD_LIBRARY_PATH
1079 \family default 
1081  In this case, you will be able to view the directory structure but not
1082  change it or access individual files.
1083  Support for this may be added later.
1084  Midnight Commander is part of the GNOME project.
1085 \layout Standard
1087 Note that using the `Open VFS' menu is simply a short-cut for using the
1088  path-entry box (explained below), so if you want to use a VFS not listed
1089  on the menu you can type in the path directly, eg:
1090 \layout Standard
1093 \family typewriter 
1094 /home/fred/archive.zip#uzip/
1095 \layout Standard
1098 \latex latex 
1100 \backslash 
1101 noindent 
1102 \latex default 
1103 Don't forget the final slash!
1104 \layout Subsubsection
1106 Step by step example of adding VFS support
1107 \layout Standard
1109 This assumes that you have the Midnight Commander source in a directory
1110  called `mc'.
1111  You might need to replace 
1112 \family typewriter 
1113 libvfs.so 
1114 \family default 
1115 with 
1116 \family typewriter 
1117 libvfs.a
1118 \family default 
1120 \layout LyX-Code
1122 $ cd mc
1123 \layout LyX-Code
1125 $ ./configure
1126 \layout LyX-Code
1128 $ cd vfs
1129 \layout LyX-Code
1131 $ make libvfs.so
1132 \layout Itemize
1134 If you have the root password then install the library in a system library
1135  directory as normal.
1136 \layout Itemize
1138 If not,
1139 \begin_deeper 
1140 \layout LyX-Code
1142 $ mkdir ~/lib
1143 \layout LyX-Code
1145 $ cp libvfs.so ~/lib
1146 \layout LyX-Code
1148 $ cd ~/Apps/ROX-Filer
1149 \layout Standard
1151 Edit the 
1152 \family typewriter 
1153 AppRun
1154 \family default 
1155  file to include this as the 
1156 \emph on 
1157 second
1158 \emph toggle 
1159  line:
1160 \layout LyX-Code
1162 LD_LIBRARY_PATH=${HOME}/lib; export LD_LIBRARY_PATH
1163 \layout Standard
1165 This will ensure that ROX-Filer will look for the library in the new 
1166 \family typewriter 
1167 ~/lib
1168 \family default 
1169  directory.
1170  Finally, recompile:
1171 \layout LyX-Code
1173 $ ./AppRun --compile
1174 \layout LyX-Code
1177 \layout LyX-Code
1179 checking for mc_stat in -lvfs...
1180  yes
1181 \layout Standard
1183 If you saw that line then it's worked! Well done!
1184 \end_deeper 
1185 \layout Subsection
1188 \begin_inset LatexCommand \label{sec: mini}
1190 \end_inset 
1192 The mini-buffer
1193 \layout Standard
1195 The mini-buffer is a white bar that appears along the bottom of the window
1196  and allows you to enter some text.
1197  Press Escape to get rid of it again.
1198  It behaves in different ways depending on how you invoked it:
1199 \layout Subsubsection
1201 The path-entry box
1202 \layout Standard
1204 This allows you to type in a path directly.
1205  As you type the display is updated to show the item entered visually.
1206  The main use is to find a file in a large directory quickly, but you can
1207  also use it for navigating between directories, or for selecting a full
1208  pathname from somewhere else and pasting it directly into the path-entry
1209  box.
1210 \layout Standard
1211 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1212 multicol5
1213 4 2 0 0 -1 -1 -1 -1
1214 1 1 0 0
1215 0 1 0 0
1216 0 1 0 0
1217 0 1 0 0
1218 8 1 0 "" ""
1219 2 1 1 "8cm" ""
1220 0 8 0 1 0 0 0 "" ""
1221 0 8 0 1 0 0 0 "" ""
1222 0 8 0 1 0 0 0 "" ""
1223 0 8 0 1 0 0 0 "" ""
1224 0 8 0 1 0 0 0 "" ""
1225 0 8 0 1 0 0 0 "" ""
1226 0 8 0 1 0 0 0 "" ""
1227 0 8 0 1 0 0 0 "" ""
1230 \newline 
1231 Action
1232 \newline 
1233 Return
1234 \newline 
1235 Open the currently selected item.
1236 \newline 
1238 \newline 
1239 Shell-style tab completion.
1240 \newline 
1241 Up, Down
1242 \newline 
1243 Select the previous/next matching entry.
1244 \layout Standard
1246 Tab completion tries to fill in as many characters for you as it can.
1247  For example, if there are two files in a directory called `save-mail-nov-1999'
1248  and `save-mail-dec-1999' then typing 'save' and pressing Tab will expand
1249  `save' to `save-mail-' and beep to indicate that the match is not complete.
1250  If you use tab completion on a directory and it is unique then the filer
1251  will automatically change into the directory.
1252  This behavior should be familiar to shell users.
1253 \layout Subsubsection*
1255 Example
1256 \layout Standard
1258 Let's say you want to locate the documentation for Wine in the directory
1259  /usr/doc (which is usually very large).
1260  Here's how you could do it:
1261 \layout Enumerate
1263 Open the minibuffer by choosing 'Enter Path' from the Window menu.
1264  I usually bind this function to the slash (`/') key.
1265 \layout Enumerate
1267 Press CTRL-U to delete the existing contents - this moves you to the root
1268  directory.
1269 \layout Enumerate
1271 Type `u
1272 \latex latex 
1274 \backslash 
1275 Tab{}
1276 \latex default 
1278 \latex latex 
1280 \backslash 
1281 Tab{}
1282 \latex default 
1284 \latex latex 
1286 \backslash 
1287 Tab{}
1288 \latex default 
1290  As you type, the cursor will move to the correct subdirectory.
1291  If it beeps when you press Tab then you need to supply more letters.
1292 \layout Subsubsection
1294 The shell command box
1295 \layout Standard
1297 This provides a quick way of entering shell commands if you don't want to
1298  open an xterm.
1299  If you don't know what shell commands are, skip this section!
1300 \layout Standard
1302 Just type in the command and press Return to execute it.
1303  Up and Down arrows move through previously entered commands.
1304  If some items are selected then they are assigned to the positional parameters
1305  $1, $2, etc.
1306 \layout Subsubsection*
1308 Example
1309 \layout Standard
1311 To print all the selected files:
1312 \layout Enumerate
1314 Open the minibuffer by choosing `Shell Command' from the Window menu.
1315  I usually bind this to the bang (`!') key.
1316 \layout Enumerate
1318 Type 
1319 \family typewriter 
1320 `lpr $*
1321 \family default 
1322 ' and press Return.
1323 \layout Subsubsection*
1325 Notes
1326 \layout Itemize
1328 Be careful; you will not be asked to confirm! If in doubt, start the command
1329  with `
1330 \family typewriter 
1331 echo
1332 \family default 
1333 ' so that it will be displayed rather than executed.
1334 \layout Itemize
1336 The above command won't work if some of the files contain spaces --- use
1338 \family typewriter 
1339 lpr 
1340 \latex latex 
1342 \latex default 
1344 \latex latex 
1346 \family default 
1347 \latex default 
1348 ' instead to be safe.
1349 \layout Itemize
1351 `sh' is always used as the name of the shell to run (mainly because bash
1352  and csh treat positional parameters differently).
1353  However, PATH is searched to find it so you can still use another shell
1354  if you want by naming it sh and putting it in your path.
1355 \layout Itemize
1357 Commands execute in the background, so you can say:
1358 \begin_deeper 
1359 \layout LyX-Code
1361 sleep 240; xmessage Time to go!
1362 \end_deeper 
1363 \layout Subsection
1365 Action windows
1366 \layout Standard
1368 Action windows are those boxes that appear while you're doing a Copy/Move/Link/e
1369 tc operation.
1370  The status line at the top of the window shows the current directory or
1371  object that the window is processing.
1372  The scrolling area below is the log area - it shows what has been done
1373  and may display questions here.
1374 \layout Standard
1376 At the bottom are four buttons and, sometimes, some options.
1377  The buttons work as follows:
1378 \layout Description
1380 Quiet will do simple operations without asking you to confirm each one.
1381  By turning this on and off during an operation you can use it like a pause
1382  button.
1383 \layout Description
1385 Yes answers yes to the question displayed in the log area.
1386 \layout Description
1388 No answers no to the question displayed in the log area.
1389 \layout Description
1391 Abort kills the current operation (if any) and closes the action window.
1392 \layout Standard
1394 You can control which actions get started automatically (without you having
1395  to click on Quiet at the start) from the Options window.
1396 \layout Subsubsection
1398 Action Window Options
1399 \layout Standard
1401 Some actions have options, which appear as option boxes at the bottom of
1402  the window.
1403  They are:
1404 \layout Itemize
1406 `Force' means that the filer won't treat non-writeable files as special.
1407  Normally, it confirms the deletion even if Quiet is pressed.
1408  Note that you still can't removed files from non-writeable directories
1409  because in that case you really don't have permission.
1410 \layout Itemize
1412 `Brief' prevents the filer logging a message every time it does something.
1413  Use this to speed things up if large numbers of messages are being logged.
1414 \layout Itemize
1416 `Recurse' means that doing something to a directory will also do the same
1417  thing to all its contents, and the contents of any subdirectories, and
1418  so on.
1419 \layout Subsection
1422 \begin_inset LatexCommand \label{sec: Searching}
1424 \end_inset 
1426 Searching
1427 \layout Standard
1429 The Find feature looks through all the selected files and directories and
1430  any subdirectories (recursively) looking for items that match a particular
1431  expression.
1432 \layout Standard
1434 If you know the name of a file then just enter it in the `Expression:' box,
1435  enclosed in single quotes.
1436  For example, to find a file called `log' you would enter:
1437 \layout LyX-Code
1439 'log'
1440 \layout Standard
1442 Remember to use normal quotes, not double quotes (
1443 \family typewriter 
1445 \begin_inset Quotes eld
1446 \end_inset 
1449 \family default 
1450 ) or back-quotes (
1451 \family typewriter 
1453 \family default 
1455 \layout Standard
1457 As the filer finds matching files they are added to the results list.
1458  Clicking on an entry in the list opens a viewer showing the file you clicked
1459  on.
1460  The filer will use the same window to view other results (so, if you want
1461  the results shown in separate windows you must explicitly create a new
1462  window from the Window menu).
1463 \layout Subsubsection
1465 Wildcards
1466 \layout Standard
1468 You can also put shell-style wildcard characters inside the quotes, for
1469  example:
1470 \layout LyX-Code
1472 '*.html'
1473 \layout LyX-Code
1475 'Report.*'
1476 \layout LyX-Code
1478 'Draft[1-5]'
1479 \layout LyX-Code
1481 'main.[ch]'
1482 \layout Standard
1484 Look at the 
1485 \family typewriter 
1486 glob(7)
1487 \family default 
1488  manpage if you want to know more about shell wildcards.
1489 \layout Standard
1491 If the pattern you enter contains a slash ('/') character then the pattern
1492  is matched against the file's full path, otherwise only the leafname is
1493  used.
1494  That is, 
1495 \family typewriter 
1496 '*tmp*'
1497 \family default 
1498  will find 'tmp' and 'tmpfile' but not '/tmp/file' --- 
1499 \family typewriter 
1500 '/*tmp*'
1501 \family default 
1502  will find all three.
1503 \layout Subsubsection
1505 Simple tests
1506 \layout Standard
1508 As well as finding files by their names you can also find them by various
1509  other attributes.
1510  Note that `file' is used here to mean anything that can appear in the filesyste
1511 m --- including directories, devices and so on.
1512 \layout Standard
1515 \latex latex 
1517 \backslash 
1518 smallskip
1519 \backslash 
1520 noindent 
1521 \latex default 
1522 These look at the type of the item being checked:
1523 \layout Description
1525 IsReg matches any regular (ie, normal) file.
1526 \layout Description
1528 IsLink matches symlinks.
1529 \layout Description
1531 IsDir matches directories.
1532 \layout Description
1534 IsChar matches character device files.
1535 \layout Description
1537 IsBlock matches block device files.
1538 \layout Description
1540 IsDev matches block or character device files.
1541 \layout Description
1543 IsPipe matches pipes.
1544 \layout Description
1546 IsSocket matches sockets.
1547 \layout Standard
1549 These look at the permissions set on the file - see section 
1550 \begin_inset LatexCommand \ref{sec: Permissions}
1552 \end_inset 
1555 \layout Description
1557 IsSUID matches files which have the Set-UID bit set.
1558 \layout Description
1560 IsSGID matches files which have the Set-GID bit set.
1561 \layout Description
1563 IsSticky matches files with the sticky bit set,
1564 \layout Description
1566 IsReadable matches files which you can read from.
1567 \layout Description
1569 IsWriteable matches files which you can write to.
1570 \layout Description
1572 IsExecutable matches files which you can execute.
1573 \layout Standard
1575 And a couple of other useful ones:
1576 \layout Description
1578 IsEmpty finds empty files (ie, those whose length is 0 bytes).
1579 \layout Description
1581 IsMine finds files which you own.
1582 \layout Subsubsection
1584 Logic operators
1585 \layout Standard
1587 You can combine the above tests in various ways to perform more advanced
1588  searches.
1589  An expression is actually made up of a list of 
1590 \emph on 
1591 cases
1592 \emph toggle 
1593 , separated by commas.
1594  The filer will try to match each case in turn until one matches or there
1595  are no more cases left.
1596  For example, to search for files with several possible endings:
1597 \layout LyX-Code
1599 '*.gif', '*.htm', '*.html'
1600 \layout Standard
1602 Further, each of the cases is actually a list of conditions.
1603  The case only matches if all of its conditions are met.
1604  So, to find a directory called 
1605 \family typewriter 
1607 \family default 
1608  or a regular file ending in 
1609 \family typewriter 
1611 \family default 
1613 \layout LyX-Code
1615 IsDir 'lib', IsReg '*.so'
1616 \layout Standard
1618 You can negate a condition by putting a 
1619 \family typewriter 
1621 \family default 
1622  in front of it and you can use a sub-expression as a condition by bracketing
1623  it, like this:
1624 \layout LyX-Code
1626 ! (IsDir, IsReg)
1627 \layout LyX-Code
1629 !IsDir !IsReg
1630 \layout LyX-Code
1632 Not isdir and not isreg
1633 \layout Standard
1635 All three do the same thing.
1636 \layout Subsubsection
1638 Comparisons
1639 \layout Standard
1641 You can also compare various values using the operators 
1642 \family typewriter 
1643 <, <=, =, !=, >, >=
1644 \family default 
1645  (for less-than, less-than-or-equal-to, equal-to, not-equal-to, greater-than
1646  and greater-than-or-equal-to).
1647  When comparing times, you may find it helpful to use 
1648 \family typewriter 
1649 after 
1650 \family default 
1651 and 
1652 \family typewriter 
1653 before
1654 \family default 
1655  instead of 
1656 \family typewriter 
1658 \family default 
1659  and 
1660 \family typewriter 
1662 \family default 
1663  to make things clearer.
1664 \layout Standard
1666 The following are read from the file being checked and may be used for the
1667  values being compared:
1668 \layout Description
1670 atime The time that the file was last accessed.
1671 \layout Description
1673 ctime The time that the file's status was last changed.
1674 \layout Description
1676 mtime The time that the file's contents were last modified.
1677 \layout Description
1679 size The size of the file.
1680 \layout Description
1682 inode The file's inode (index) number
1683 \layout Description
1685 nlinks The number of links to this file (that is, the number of directory
1686  entries which refer to this file.
1687  Note that symlinks don't count as references).
1688 \layout Description
1690 uid The User ID of the file.
1691 \layout Description
1693 gid The Group ID of the file.
1694 \layout Description
1696 blocks The number of disk blocks being used by the file.
1697 \layout Standard
1699 Times are measured as seconds since the Unix Epoch (00:00:00 UTC, January
1700  1, 1970).
1701  Sizes are in bytes.
1702  When specifying constants to compare these values with you may use various
1703  keywords to scale the value:
1704 \layout Description
1706 Byte(s) has no effect, but looks better.
1707 \layout Description
1709 Kb multiplies by 1024, so 2Kb is the same as 2048.
1710 \layout Description
1712 Mb multiplies by 
1713 \begin_inset Formula \( 1024^{2} \)
1714 \end_inset 
1716 , ie 1024 Kb.
1717 \layout Description
1719 Sec(s) has no effect, but looks nice.
1720 \layout Description
1722 Min(s) multiplies by 60 to get minutes.
1723 \layout Description
1725 Hour(s),
1726 \protected_separator 
1727 Day(s),
1728 \protected_separator 
1729 Week(s),
1730 \protected_separator 
1731 Year(s) likewise convert to the relevant unit.
1732 \layout Description
1734 Ago makes the time in the past relative to when the check is done.
1735 \layout Description
1737 Hence makes the time in the future.
1738 \layout Description
1740 Now is short for `
1741 \family typewriter 
1742 0 Secs Hence
1743 \family default 
1745 \layout Standard
1747 Some examples should make this all a bit clearer!
1748 \layout LyX-Code
1750 mtime after 1 day ago
1751 \layout LyX-Code
1753 size > 10 Mb
1754 \layout LyX-Code
1756 IsReg and nlinks > 1
1757 \layout Standard
1759 The first finds files modified within the last 24 hours.
1760  You could use 
1761 \family typewriter 
1763 \family default 
1764  instead of 
1765 \family typewriter 
1766 after,
1767 \family default 
1768 but it's not so clear what is meant.
1769  The second finds files larger than 10 Mb and the last finds regular files
1770  with more than one directory entry.
1771 \layout Standard
1773 Be careful though --- the filer doesn't check the context of the modifiers,
1774  so 
1775 \family typewriter 
1776 size > 1 day ago
1777 \family default 
1778  is allowed, although it doesn't make much sense! Also, forgetting to use
1780 \family typewriter 
1782 \family default 
1783  or 
1784 \family typewriter 
1785 hence
1786 \family default 
1787  will cause odd effects (the time will be measured relative to the Epoch
1788  rather than the current time).
1789  Finally, don't use = with times --- 
1790 \family typewriter 
1791 atime = 1 day ago
1792 \family default 
1793  looks for a file accessed 
1794 \emph on 
1795 exactly
1796 \emph toggle 
1797  86400 seconds ago...
1798 \layout Subsection
1800 Specials
1801 \layout Description
1803 System(Command) executes `Command' on the file.
1804  The test succeeds if the command returns an exit status of zero.
1805  A `%' character in `Command' is replaced by the full path of the file being
1806  checked.
1807  System is a very slow test to perform, so do it last if possible.
1808  For example, if you're looking for a .c file containing the word `main',
1809  do
1810 \begin_deeper 
1811 \layout LyX-Code
1813 '*.c' system(grep -q main
1814 \latex latex 
1816 \backslash 
1817 thinspace{}
1818 \latex default 
1820 \latex latex 
1822 \backslash 
1823 thinspace{}"
1824 \latex default 
1826 \layout Standard
1828 so that the grep is only performed for files ending in .c (as opposed to
1829  only checking that the file ends in .c if it contains the word `main').
1830 \end_deeper 
1831 \layout Description
1833 Prune Always fails!
1834 \begin_float footnote 
1835 \layout Standard
1837 Note that this is the opposite of the 
1838 \noun on 
1839 find(1)
1840 \noun toggle 
1841  command.
1842 \end_float 
1843  However, if it gets evaluated at all then it prevents the filer from checking
1844  inside the current directory.
1845  Remember the order in which the filer checks the expression!
1846 \layout Standard
1848 Examples:
1849 \layout LyX-Code
1851 '*.old' system(echo rm %)
1852 \layout LyX-Code
1854 'src' prune, '*.c'
1855 \layout Standard
1857 The first displays a command to delete each file ending in 
1858 \family typewriter 
1859 .old
1860 \family default 
1861 ; you can either paste the results into an xterm to execute them or run
1862  the search again without the 
1863 \family typewriter 
1864 echo
1865 \family default 
1867  It's always a good idea to use 
1868 \family typewriter 
1869 echo
1870 \family default 
1871  first with dangerous commands! The second looks for 
1872 \family typewriter 
1874 \family default 
1875  files, but does not bother checking inside directories called 
1876 \family typewriter 
1878 \family default 
1880  The expression is evaluated like this:
1881 \layout Standard
1882 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
1884 \begin_inset Figure size 216 180
1885 file Prune.eps
1886 height 2 2.5
1887 flags 9
1889 \end_inset 
1892 \layout Subsection
1894 Options
1895 \layout Standard
1897 You can configure various aspects of ROX-Filer from the Options box.
1898  Choose `Options...' from a filer window menu to open it.
1900 \layout Standard
1902 At the bottom of the window are four buttons:
1903 \layout Description
1905 Save puts all your choices into effect, and also saves them into your Choices
1906  directory for next time ROX-Filer is loaded.
1907  ROX-Filer will never save any preferences to disk unless you click on the
1908  `Save' button in the options window.
1909 \layout Description
1911 OK puts your choices into effect without writing anything to disk.
1912 \layout Description
1914 Apply works like OK, but without closing the Options window.
1915 \layout Description
1917 Cancel closes the options box and forgets any changes you made.
1918 \layout Subsubsection
1920 Action window options
1921 \layout Standard
1923 You can choose to start some operations automatically, without waiting for
1924  you to click on Quiet.
1925  Select each operation that you want to auto-start here.
1926 \layout Subsubsection
1928 Filer window options
1929 \layout Itemize
1931 `New window on button 1' swaps the actions of the two non-menu buttons when
1932  opening directories.
1933  This is provided for people who are used to the RISC OS mouse bindings.
1934 \layout Itemize
1936 `Menu on button 2' swaps the actions of buttons 2 and 3 so that the middle
1937  button brings up the menus.
1938  This is provided for people who are used to the RISC OS mouse bindings.
1939 \layout Itemize
1941 `Single-click navigation' treats a single click over an item as if it was
1942  a double click.
1943  This allows you to move around, run applications and open files without
1944  double clicking.
1945  To select a file 
1946 \emph on 
1947 without
1948 \emph toggle 
1949  opening it you must hold down CTRL while you click.
1950 \layout Itemize
1952 `Unique windows' prevents you from having two windows showing the same directory.
1953  Opening a second view onto a directory closes the first.
1954 \layout Itemize
1956 `Toolbar type for new windows' allows you to choose what kind of toolbar
1957  will be used for future filer windows (the currently open windows are not
1958  affected).
1959  None means that new windows will not have a toolbar, Normal provides a
1960  small bar of icons, and GNOME displays larger icons with textual labels
1961  and allows the bar to be detached from the window by dragging it.
1962  See section 
1963 \begin_inset LatexCommand \ref{sec: Toolbar}
1965 \end_inset 
1967  for details.
1968 \layout Standard
1970 The last display style and sort type you chose will also be saved as the
1971  defaults for next time.
1972 \layout Subsubsection
1974 Drag and Drop options
1975 \layout Standard
1977 ROX-Filer uses the standard XDND protocol for drag-and-drop.
1978  This protocol recommends that URIs should contain the hostname of the computer
1979  that the resource is on so that the program receiving the data can determine
1980  whether it can get the data directly or whether it must go via the X-server.
1981  However, many older programs (particularly GNOME applications) get confused
1982  by the hostname and fail to load the data correctly.
1983  If `Don't use hostnames' is on then the hostname part is omitted and ROX-Filer
1984  will work with these applications BUT you can't drag data to a program
1985  running on a different machine.
1986 \layout Standard
1988 `Allow dragging to icons in filer windows' controls what happens when you
1989  drop files onto icons in filer windows.
1990  If on then drops onto directories will save the data inside the directory
1991  while dropping onto programs will invoke the program on that data.
1992  If off then drops anywhere inside a filer window act like drops onto the
1993  window background --- that is, the data will be saved into the directory
1994  being displayed.
1995 \layout Subsubsection
1997 Menu options
1998 \layout Standard
2000 The `Xterm here' program is the one used when you choose `Xterm here' from
2001  the menu.
2002  You can replace it with another program such as `gnome-terminal' if you
2003  like.
2004  In fact, any program will do, but note that you cannot pass any options
2005  to the program at present.
2006 \layout Section
2008 Filetypes
2009 \layout Standard
2011 ROX-Filer uses three sub-directories in your Choices directory for filetypes:
2012 \layout Description
2014 MIME-info contains files which specify what the MIME type for a file should
2015  be, based on its extention.
2016  All the files in all the MIME-info directories are scanned when the filer
2017  loads.
2018  In addition, ROX-Filer is now supplied with a file called `MIME-info' (inside
2019  its application directory), which is also scanned --- this allows new users
2020  to get started more easily.
2021  Many applications now come with a file called `something.mime'; copy these
2022  files into your MIME-info directory to make ROX-Filer automatically recognise
2023  the new extensions.
2024 \layout Description
2026 MIME-types contains symlinks, one for each MIME type, which point to programs
2027  that can handle files of that type.
2028  For example, to make opening an HTML file load it into Netscape:
2029 \begin_deeper 
2030 \layout Enumerate
2032 Find the Netscape application and go to `Link...' on the menu.
2033 \layout Enumerate
2035 Enter `text_html' as the name for the link and drag the icon from the Link
2036  box into the MIME-types directory.
2037 \layout Standard
2039 You can also put actual programs in here as well as links if you want to.
2040 \end_deeper 
2041 \layout Description
2043 MIME-icons contains the images used to display each type of file.
2044  So the filer will try to display an HTML file using the icon `MIME-icons/text_h
2045 tml.xpm'.
2046 \layout Standard
2048 Many sample files are supplied as part of the ROX desktop
2049 \begin_inset LatexCommand \cite{ROX}
2051 \end_inset 
2054 \layout Standard
2056 In both MIME-types and MIME-icons directories you can also provide default
2057  actions/images for each media type.
2058  For example, if `text_html' isn't found then the filer will try simply
2059  using `text'.
2060 \layout Section
2062 Application directories
2063 \layout Standard
2065 An application directory is a directory which can be run as an application.
2066  It contains all the resources of an application - source code, binaries,
2067  documentation and so on.
2068  Keeping everything in one place make installation and uninstallation much
2069  easier for users.
2070  You can also keep multiple versions of a program by simply having several
2071  application directories.
2072  You may move and rename them as you please.
2073  Application directories are easier to use and install and are more secure
2074  too
2075 \begin_float footnote 
2076 \layout Standard
2078 Because you can compile an application as a user and then simply copy it
2079  as root rather than having to run an install script you are free from the
2080  danger of running untrusted code as root.
2081  All you have to watch out for is setuid binaries.
2082 \end_float 
2084 \layout Standard
2086 To make a directory executable all you need to do is create a executable
2087  file called `AppRun' inside it.
2088  This file is run when the user double-clicks on the application.
2089  You should also provide `AppIcon.xpm' (which will be used as the image for
2090  the application) and `Help' (which is a directory that is opened when the
2091  user asks for help).
2092  Have a look at the ROX-Filer application directory for a full example.
2093 \layout Section
2095 Hacking
2096 \layout Standard
2098 This is a quick start guide for people who want to modify the source code.
2099  If you make useful changes or fix bugs, please send patches to me or to
2100  the mailing list.
2101  Tell me which version you're using!
2102 \layout Subsection
2104 Compiling
2105 \layout Standard
2107 The first time you compile the program you need to do `AppRun --compile',
2108  but in future you only need to run `make' in the `src' directory when you
2109  change the .c and .h files.
2110  You might want to run `make depend' too.
2111 \layout Subsection
2113 Creating and applying patches
2114 \layout Standard
2116 When people make small modifications to the sources they will often distribute
2117  them as 
2118 \emph on 
2119 patch files
2120 \emph toggle 
2121  --- usually on the mailing list.
2122  To apply a patch, go into the 'src' directory and run patch with the patch
2123  file.
2124  Then recompile, like this:
2125 \layout LyX-Code
2127 $ cd ROX-Filer/src
2128 \layout LyX-Code
2130 $ patch < patchfile
2131 \layout LyX-Code
2133 $ ../AppRun --compile
2134 \layout Standard
2136 You can remove the patch by simply repeating the above sequence - patch
2137  will detect that the patch is already applied and offer to remove it.
2138  To create a patch you need to take a copy of the old 'src' directory before
2139  you modify it (before you compile, even):
2140 \layout LyX-Code
2142 $ cd ROX-Filer
2143 \layout LyX-Code
2145 $ cp -r src old_src
2146 \layout Standard
2148 Now, modify and compile until it works they way you want it to.
2149  To make the patch:
2150 \layout LyX-Code
2152 $ cd ROX-Filer
2153 \layout LyX-Code
2155 $ diff -cr old_src src > my_patch
2156 \layout Standard
2158 This creates a human- and machine-readable patch file.
2159  Submit this to the mailing list.
2160  The are many reasons for posting patches rather that the modified files:
2161 \layout Itemize
2163 They are smaller, and hence shouldn't bounce.
2164  They are also quicker to download for people with slow connections.
2165 \layout Itemize
2167 People can see what they're getting into before applying them!
2168 \layout Itemize
2170 Patches can (usually) be applied to slightly modified versions of the sources.
2171  This means that people can apply several patches without each new one overwriti
2172 ng the others.
2173 \layout Subsection
2175 Autoconf
2176 \layout Standard
2178 Here's a quick explanation of the autoconf system in case you haven't used
2179  it before.
2180  See `info autoconf' for full details.
2181 \layout Standard
2183 There's a file called 'configure.in' which contains various tests (`info
2184  autoconf').
2185  You run `autoconf' and it reads through the file and generates a shell
2186  script to perform the tests, saving it as `configure'.
2187  `configure' is normally distributed with the program because not everyone
2188  has autoconf.
2189 \layout Standard
2191 You then run `configure' (in fact, let the `AppRun' script do it because
2192  it passes it some arguments), which performs all the tests.
2193  It reads in `Makefile.in' and `config.h.in' and fills in the missing values
2194  with the test results to produce `Makefile' and `config.h'.
2195 \layout Standard
2197 You run `make', which creates .o files from the .c files and links to produce
2198  ROX-Filer.
2199 \layout Subsection
2201 Data-structures
2202 \layout Standard
2204 The diagram below shows some of the major structures found in the filer
2205  along with their most important attributes and methods.
2206  Exactly which attributes have been included is a little hit-and-miss but
2207  it might help you get the overall picture.
2208  If you find it useful, please let me know and I'll try to keep it up-to-date
2209  (or even extend it!).
2210 \layout Standard
2212 To summarise, each window (or panel) has its own 
2213 \series bold 
2214 FilerWindow
2215 \series default 
2216  structure.
2217  This structure has pointers to a 
2218 \series bold 
2219 Collection
2220 \series default 
2221  (which is the widget which actually displays the files) and to a 
2222 \series bold 
2223 Directory
2224 \series default 
2225 , which is used to cache the directory contents.
2226  Both 
2227 \series bold 
2228 Collection
2229 \series default 
2230  and 
2231 \series bold 
2232 Directory
2233 \series default 
2234  have pointers to (the same) 
2235 \series bold 
2236 DirItem
2237 \series default 
2238 s, each of which corresponds to one filesystem object.
2239  Several 
2240 \series bold 
2241 FilerWindow
2242 \series default 
2243 s may share the same 
2244 \series bold 
2245 Directory
2246 \series default 
2248  While scanning is in progress the 
2249 \series bold 
2250 Directory
2251 \series default 
2252  keeps a list of the new items it has found (
2253 \emph on 
2254 new_items
2255 \emph toggle 
2256 ) and the items which have changed in some way (
2257 \emph on 
2258 up_items
2259 \emph toggle 
2261  It periodically notifies the filer window of the changes-so-far by calling
2262  all the functions in the 
2263 \emph on 
2264 users
2265 \emph toggle 
2266  list (use 
2267 \emph on 
2268 attach()
2269 \emph toggle 
2270  and 
2271 \emph on 
2272 detach()
2273 \emph toggle 
2274  to add and remove functions to or from the list).
2275 \layout Standard
2276 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
2278 \begin_inset Figure size 595 585
2279 file Structs.eps
2280 width 3 100
2281 flags 9
2283 \end_inset 
2286 \layout Bibliography
2287 \bibitem {ROX}
2290 \emph on 
2291 The ROX desktop
2292 \emph toggle 
2293 , <http://www.ecs.soton.ac.uk/~tal197/rox.php3>
2294 \layout Bibliography
2295 \bibitem {GTK+}
2298 \emph on 
2299 GTK+ Toolkit
2300 \emph toggle 
2301 , <http://www.gtk.org>
2302 \layout Bibliography
2303 \bibitem {GNOME}
2306 \emph on 
2307 The GNOME desktop
2308 \emph toggle 
2309 , <http://www.gnome.org>
2310 \layout Bibliography
2311 \bibitem {DND}
2314 \emph on 
2315 The Drag and Drop protocol
2316 \emph toggle 
2317 , <http://www.its.caltech.edu/~jafl/xdnd/>
2318 \layout Bibliography
2319 \bibitem {XDS}
2322 \emph on 
2323 The X Direct Save protocol
2324 \emph toggle 
2325 , <http://www.its.caltech.edu/~jafl/xds/>
2326 \layout Bibliography
2327 \bibitem {Choices}
2330 \emph on 
2331 The ROX Choices system
2332 \emph toggle 
2333 , <http://www.ecs.soton.ac.uk/~tal197/choices.php3>
2334 \layout Bibliography
2335 \bibitem {enlightenment}
2338 \emph on 
2339 Enlightenment,
2340 \emph toggle 
2341  <http://www.enlightenment.org> 
2342 \layout Bibliography
2343 \bibitem {PODFUK}
2346 \emph on 
2347 POrtable Dodgy Filesystems in Userland (hacK), 
2348 \emph toggle 
2349 <http://atrey.karlin.mff.cuni.cz/~pavel/podfuk/podfuk.html>
2350 \the_end