r267: Running a second copy of the filer passes the request to the first.
[rox-filer/dt.git] / ROX-Filer / src / Docs / Manual.lyx
blob7d071a80200aa8d5aa32365d2d9e45a2beb21025
1 #This file was created by <tal197> Mon Apr 24 16:52:36 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 Standard
264 Note that if the same version of the filer is already running on this machine
265  then, by default, it will be used to open the directories and the new copy
266  will exit immediately.
267  You can override this (perhaps because the old copy has stopped responding
268  for some reason) using the `
269 \family typewriter 
270 --new
271 \family default 
272 ' option.
273 \layout Subsection
275 Mouse button and key bindings
276 \layout Standard
278 By default, the mouse button bindings are designed to fit in with X conventions.
279  You can get the old RISC OS bindings by opening the Options window and
280  clicking on a few toggle buttons.
281  By default, the mouse buttons and key bindings for filer windows are as
282  follows:
283 \latex latex 
285 \backslash 
286 medskip
287 \layout Standard
288 \LyXTable
289 multicol5
290 23 2 0 0 -1 -1 -1 -1
291 1 1 0 0
292 1 1 0 0
293 0 1 0 0
294 0 1 0 0
295 0 1 1 0
296 0 1 0 0
297 0 1 1 0
298 0 1 0 0
299 0 1 1 0
300 0 1 0 0
301 0 1 1 0
302 0 1 1 0
303 0 1 0 0
304 0 1 1 0
305 0 1 1 0
306 0 1 0 0
307 0 1 1 0
308 0 1 0 0
309 0 1 0 0
310 0 1 0 0
311 0 1 0 0
312 0 1 0 0
313 0 1 0 0
314 2 1 0 "3.5cm" ""
315 2 1 1 "9.5cm" ""
316 0 2 0 1 0 0 0 "" ""
317 0 2 0 1 0 0 0 "" ""
318 0 8 0 1 0 0 0 "" ""
319 0 8 0 1 0 0 0 "" ""
320 0 2 0 1 0 0 0 "" ""
321 0 8 0 1 0 0 0 "" ""
322 0 8 0 1 0 0 0 "" ""
323 0 8 0 1 1 0 0 "" ""
324 0 8 0 1 0 0 0 "" ""
325 0 8 0 1 0 0 0 "" ""
326 0 8 0 1 1 0 0 "" ""
327 0 8 0 1 1 0 0 "" ""
328 0 8 0 1 0 0 0 "" ""
329 0 2 0 1 0 0 0 "" ""
330 0 8 0 1 1 0 0 "" ""
331 0 8 0 1 0 0 0 "" ""
332 0 2 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 1 0 0 "" ""
336 0 8 0 1 0 0 0 "" ""
337 0 8 0 1 1 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 2 0 1 1 0 0 "" ""
342 0 8 0 1 0 0 0 "" ""
343 0 8 0 1 1 0 0 "" ""
344 0 8 0 1 0 0 0 "" ""
345 0 8 0 1 0 0 0 "" ""
346 0 8 0 1 0 0 0 "" ""
347 0 8 0 1 1 0 0 "" ""
348 0 8 0 1 0 0 0 "" ""
349 0 8 0 1 0 0 0 "" ""
350 0 8 0 1 0 0 0 "" ""
351 0 8 0 1 0 0 0 "" ""
352 0 8 0 1 0 0 0 "" ""
353 0 8 0 1 0 0 0 "" ""
354 0 8 0 1 0 0 0 "" ""
355 0 8 0 1 0 0 0 "" ""
356 0 8 0 1 0 0 0 "" ""
357 0 8 0 1 0 0 0 "" ""
358 0 8 0 1 0 0 0 "" ""
359 0 8 0 1 0 0 0 "" ""
360 0 8 0 1 0 0 0 "" ""
361 0 8 0 1 0 0 0 "" ""
363 Key or mouse button
364 \newline 
365 Action
366 \newline 
367 Left button click
368 \newline 
369 Select (only) the item clicked on, or clear the selection.
370 \newline 
371 Middle button click
372 \newline 
373 Toggle the item between being selected and unselected.
374 \newline 
375 Right button click
376 \newline 
377 Open the main menu.
378  Hold down Ctrl while clicking to go directly to
379 \newline 
381 \newline 
382 the Selection submenu.
383 \newline 
384 Drag an item 
385 \newline 
386 Copy the file(s) to the destination (an application or another filer window).
387 \newline 
388 (left mouse button)
389 \newline 
390 Hold down Shift to move the file, or Ctrl+Shift to create a symbolic link.
391 \newline 
392 Drag an item
393 \newline 
394 As above, but always moves rather than copying or symlinking.
395 \newline 
396 (middle mouse button)
397 \newline 
399 \newline 
400 Drag (not over an item)
401 \newline 
402 Select a group of items by dragging a box around them.
403 \newline 
405 \newline 
406 If you use the left button then the boxed items only are selected, otherwise
407 \newline 
409 \newline 
410 the boxes items are toggled between selected and unselected.
411 \newline 
412 Double click left button
413 \newline 
414 Open the file or directory or run the application.
415 \newline 
417 \newline 
418 Holding down Shift while clicking does the same thing as choosing
419 \newline 
421 \newline 
422 `Shift Open' from the menu.
423 \newline 
424 Double click middle button
425 \newline 
426 Open the file and close the directory viewer,
427 \newline 
429 \newline 
430 or open the directory in a new window.
431 \newline 
432 Backspace
433 \newline 
434 Change to viewing the parent directory.
435 \newline 
436 Cursor keys
437 \newline 
438 Move the cursor around.
439 \newline 
440 Page Up, Page Down
441 \newline 
442 Move up and down in steps of ten rows at a time.
443 \newline 
444 Home, End
445 \newline 
446 Move to the first/last entry in the directory.
447 \newline 
448 Return
449 \newline 
450 Open the item under the cursor.
451  With Shift held down this acts like choosing 'Shift Open' from the menu.
452 \newline 
453 Spacebar
454 \newline 
455 Toggles the item under the cursor between being selected and unselected.
456 \layout Standard
459 \latex latex 
461 \backslash 
462 medskip
463 \backslash 
464 noindent 
465 \latex default 
466 You can simulate a click of the middle mouse button by clicking with Ctrl
467  held down.
468  Other keys can easily be defined by opening the menu, moving the pointer
469  over the item you want to use and pressing a key.
470  The key will appear in the menu and can be used from then on.
471  To make the new key bindings permanent, open the Options box from the menu
472  and click on Save.
473 \layout Subsection
475 The selection
476 \layout Standard
478 While items are selected in a ROX-Filer window the filer has the global
479  selection.
480  You can then paste into another window to get the pathnames of the selected
481  files.
482  For example, to extract the files from a .tgz archive on a floppy disk into
483  your home directory:
484 \layout Enumerate
486 Choose `Xterm here' from the menu in your home directory.
487 \layout Enumerate
489 Type `tar xzf ' (but don't press Return)
490 \layout Enumerate
492 Click on the .tgz file to select it.
493 \layout Enumerate
495 Click the middle button in the xterm window to paste the name of the file
496  into the command.
497 \layout Enumerate
499 Press Return in the xterm to execute the command.
500 \layout Subsection
503 \begin_inset LatexCommand \label{sec: Toolbar}
505 \end_inset 
507 The toolbar
508 \layout Standard
510 By default, each window has a toolbar along the top.
511  You can disable this from the Options window.
512  The three buttons on the toolbar are:
513 \layout Standard
514 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
515 multicol5
516 4 3 0 0 -1 -1 -1 -1
517 1 1 0 0
518 1 1 0 0
519 0 1 0 0
520 0 1 0 0
521 8 1 0 "" ""
522 2 1 1 "4.5cm" ""
523 2 0 1 "4.5cm" ""
524 0 8 0 1 0 0 0 "" ""
525 0 2 0 1 0 0 0 "" ""
526 0 2 0 1 0 0 0 "" ""
527 0 8 0 1 0 0 0 "" ""
528 0 2 0 1 0 0 0 "" ""
529 0 8 0 1 0 0 0 "" ""
530 0 8 0 1 0 0 0 "" ""
531 0 2 0 1 0 0 0 "" ""
532 0 2 0 1 0 0 0 "" ""
533 0 8 0 1 0 0 0 "" ""
534 0 8 0 1 0 0 0 "" ""
535 0 8 0 1 0 0 0 "" ""
537 Icon
538 \newline 
539 Action
540 \newline 
541 Other action
542 \newline 
543 Up arrow
544 \newline 
545 Change to parent directory
546 \newline 
547 Show parent in a new window
548 \newline 
549 House
550 \newline 
551 Change to home directory
552 \newline 
553 Show home in a new window
554 \newline 
555 Looping arrows
556 \newline 
557 Reread the directory contents
558 \newline 
559 Open a new window
560 \layout Standard
563 \latex latex 
565 \backslash 
566 noindent 
567 \latex default 
568 If the toolbar is in Normal mode (ie, not GNOME mode) then you may also
569  use button 3 (usually the right-most button) to perform the `Other action'.
570 \layout Subsection
572 The menus
573 \layout Standard
575 You can open a menu by right clicking
576 \begin_float footnote 
577 \layout Standard
579 If the Use `RISC OS mouse bindings' option is on then use the middle button
580  instead.
581 \end_float 
582  over a panel or filer window.
583  Here is a full description of each choice and what it does:
584 \layout Standard
585 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
586 multicol5
587 6 2 0 0 -1 -1 -1 -1
588 1 1 0 0
589 1 1 0 0
590 0 1 0 0
591 0 1 0 0
592 0 1 0 0
593 0 1 0 0
594 8 1 0 "" ""
595 2 1 1 "8cm" ""
596 0 8 0 1 0 0 0 "" ""
597 0 8 0 1 0 0 0 "" ""
598 0 8 0 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 2 0 1 0 0 0 "" ""
604 0 8 0 1 0 0 0 "" ""
605 0 8 0 1 0 0 0 "" ""
606 0 8 0 1 0 0 0 "" ""
607 0 8 0 1 0 0 0 "" ""
609 Entry
610 \newline 
611 Action
612 \newline 
613 Select All
614 \newline 
615 Select every item in this window.
616 \newline 
617 Clear Selection
618 \newline 
619 Unselect every item in this window.
620 \newline 
621 Options...
622 \newline 
623 Configure ROX-Filer.
624 \newline 
625 New Directory...
626 \newline 
627 Create a new directory in this one.
628 \newline 
629 Xterm Here
630 \newline 
631 Open an xterm with its current directory set to this directory.
632 \layout Subsubsection
634 The display menu
635 \layout Standard
636 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
637 multicol5
638 11 2 0 0 -1 -1 -1 -1
639 1 1 0 0
640 1 1 0 0
641 0 1 0 0
642 0 1 0 0
643 0 1 0 0
644 0 1 0 0
645 0 1 0 0
646 0 1 0 0
647 0 1 0 0
648 0 1 0 0
649 0 1 1 0
650 8 1 0 "" ""
651 2 1 1 "8cm" ""
652 0 8 0 1 0 0 0 "" ""
653 0 8 0 1 0 0 0 "" ""
654 0 8 0 1 0 0 0 "" ""
655 0 2 1 1 0 0 0 "" ""
656 0 8 0 1 0 0 0 "" ""
657 0 8 0 1 0 0 0 "" ""
658 0 8 0 1 0 0 0 "" ""
659 0 8 0 1 0 0 0 "" ""
660 0 8 0 1 0 0 0 "" ""
661 0 8 0 1 0 0 0 "" ""
662 0 8 0 1 0 0 0 "" ""
663 0 2 0 1 0 0 0 "" ""
664 0 8 0 1 0 0 0 "" ""
665 0 8 0 1 0 0 0 "" ""
666 0 8 0 1 0 0 0 "" ""
667 0 8 0 1 0 0 0 "" ""
668 0 8 0 1 0 0 0 "" ""
669 0 8 0 1 0 0 0 "" ""
670 0 8 0 1 0 0 0 "" ""
671 0 8 0 1 1 0 0 "" ""
672 0 8 0 1 0 0 0 "" ""
673 0 8 0 1 0 0 0 "" ""
675 Entry
676 \newline 
677 Action
678 \newline 
679 Large Icons
680 \newline 
681 Each object in the directory is shown as a large icon with its name below.
682 \newline 
683 Small Icons
684 \newline 
685 Items are drawn smaller that usual, allowing you to see more files at once.
686 \latex latex 
688 \backslash 
690 \latex default 
692 \newline 
693 Full Info
694 \newline 
695 Entries are displayed with their icon, name, type, permissions, owner and
696  size.
697 \newline 
698 Sort by Name
699 \newline 
700 Items are arranged in ASCII order.
701  Note that `Z' is considered to come before `a'.
702 \newline 
703 Sort by Type
704 \newline 
705 Items are grouped by their MIME-types and sorted by name within the groups.
706 \newline 
707 Sort by Date
708 \newline 
709 Most recently modified first.
710 \newline 
711 Sort by Size
712 \newline 
713 Largest first.
714 \newline 
715 Show Hidden
716 \newline 
717 If on, files beginning with a dot are shown, otherwise they are hidden.
718 \newline 
719 Refresh
720 \newline 
721 Rereads the contents of the directory and details of all the files in it.
722 \newline 
724 \newline 
725 Use this if the display becomes out-of-date.
726 \layout Standard
729 \latex latex 
731 \backslash 
732 noindent
733 \backslash 
735 \backslash 
736 thinspace{}
737 \latex default 
738 If ROX-Filer was unable to find ImLib
739 \begin_inset LatexCommand \cite{ImLib}
741 \end_inset 
743  when it was compiled then the icons are shown cropped rather than scaled.
744  Get ImLib and recompile if you want it to look nice.
745 \layout Subsubsection
748 \begin_inset LatexCommand \label{sec: Permissions}
750 \end_inset 
752 Permissions
753 \layout Standard
755 The permissions display is made up of four groups of three flags.
756  Each flag is displayed as a letter if it is on and a dash (-) if not.
757  The first three characters show the permissions for the owner of the file,
758  the second for other members of the file's group and the third for everyone
759  else.
760  Whichever group applies to the ROX-Filer process itself is shown underlined.
761  The fourth group shows any special flags.
762 \layout Standard
764 The meanings of the characters are:
765 \layout Description
767 r Permission to read the contents of a file, or the names of files in a
768  directory.
769 \layout Description
771 w Permission to alter the contents of a file, or change which names appear
772  in a directory.
773 \layout Description
775 x Permission to run the file as a program, or refer to the files listed
776  within the directory.
777 \layout Description
779 U This program executes with the 
780 \emph on 
781 effective user ID
782 \emph toggle 
783  of its owner rather than the person who ran it.
784 \layout Description
786 G This program executes with the 
787 \emph on 
788 effective group ID
789 \emph toggle 
790  of its group, regardless of who ran it.
791 \layout Description
793 T Entries in this directory can only be altered or removed by the people
794  who own the files even if they have write permission on the directory itself.
795 \layout Standard
797 For example, `
798 \family typewriter 
799 \bar under 
801 \bar default 
802 ,rwx,r-x/---
803 \family default 
804 ' means that the owner of the file is the same as the effective user of
805  ROX-Filer (basically, you own the file), you and members of the file's
806  group have read, write and execute permission and other people have only
807  read and execute permission.
808  There are no special flags set.
809 \layout Standard
811 The rules which determine which permissions apply may vary slightly between
812  operating systems, but a rough guide is:
813 \layout Itemize
815 If the
816 \emph on 
817  effective user ID
818 \emph toggle 
819  of the process is equal to the file's owner, then the owner permissions
820  apply.
821 \layout Itemize
823 Otherwise, if the 
824 \emph on 
825 effective group ID
826 \emph toggle 
827  of the process is equal to the file's group OR the file's group is one
828  of the process's 
829 \emph on 
830 supplemental groups
831 \emph toggle 
832  then the group permissions apply.
833 \layout Itemize
835 Otherwise, the 'other' permissions apply.
836  The 
837 \emph on 
838 real user ID
839 \emph toggle 
840  and 
841 \emph on 
842 real group ID
843 \emph toggle 
844  have no effect (except that a process may set its real IDs to its effective
845  IDs).
846 \layout Subsubsection
848 The selection menu
849 \layout Standard
851 All of these work in the same way - if you open the menu with some items
852  selected then the operation applies to those items.
853  If you open then menu over an item while there is no selection then that
854  item is temporarily selected.
855  If you choose one of these while there is no selection at all then the
856  window goes into `target mode' - the operation happens to the next item
857  you click on.
858  Click on the window background, press Escape, or click with the right mouse
859  button to cancel target mode.
860  Target mode is mainly useful with the `Single click navigation' option
861  and keys bound to the various menu entries.
862 \layout Standard
863 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
864 multicol5
865 20 2 0 0 -1 -1 -1 -1
866 1 1 0 0
867 1 1 0 0
868 0 1 0 0
869 0 1 0 0
870 0 1 0 0
871 0 1 1 0
872 0 1 1 0
873 0 1 1 0
874 0 1 0 0
875 0 1 1 0
876 0 1 0 0
877 0 1 0 0
878 0 1 0 0
879 0 1 0 0
880 0 1 1 0
881 0 1 1 0
882 0 1 0 0
883 0 1 1 0
884 0 1 0 0
885 0 1 0 0
886 8 1 0 "" ""
887 2 1 1 "10cm" ""
888 0 8 0 1 0 0 0 "" ""
889 0 8 0 1 0 0 0 "" ""
890 0 8 0 1 0 0 0 "" ""
891 0 8 0 1 0 0 0 "" ""
892 0 8 0 1 0 0 0 "" ""
893 0 2 0 1 0 0 0 "" ""
894 0 8 0 1 0 0 0 "" ""
895 0 8 0 1 0 0 0 "" ""
896 0 8 0 1 0 0 0 "" ""
897 0 2 0 1 1 0 0 "" ""
898 0 8 0 1 0 0 0 "" ""
899 0 2 0 1 1 0 0 "" ""
900 0 8 0 1 0 0 0 "" ""
901 0 2 0 1 1 0 0 "" ""
902 0 8 0 1 0 0 0 "" ""
903 0 8 0 1 0 0 0 "" ""
904 0 8 0 1 0 0 0 "" ""
905 0 8 0 1 1 0 0 "" ""
906 0 8 0 1 0 0 0 "" ""
907 0 8 0 1 0 0 0 "" ""
908 0 8 0 1 0 0 0 "" ""
909 0 8 0 1 0 0 0 "" ""
910 0 8 0 1 0 0 0 "" ""
911 0 8 0 1 0 0 0 "" ""
912 0 8 0 1 0 0 0 "" ""
913 0 8 0 1 0 0 0 "" ""
914 0 8 0 1 0 0 0 "" ""
915 0 8 0 1 1 0 0 "" ""
916 0 8 0 1 0 0 0 "" ""
917 0 8 0 1 1 0 0 "" ""
918 0 8 0 1 0 0 0 "" ""
919 0 8 0 1 0 0 0 "" ""
920 0 8 0 1 0 0 0 "" ""
921 0 8 0 1 1 0 0 "" ""
922 0 8 0 1 0 0 0 "" ""
923 0 8 0 1 0 0 0 "" ""
924 0 8 0 1 0 0 0 "" ""
925 0 8 0 1 0 0 0 "" ""
926 0 8 0 1 0 0 0 "" ""
927 0 8 0 1 0 0 0 "" ""
929 Entry
930 \newline 
931 Action
932 \newline 
933 Copy...
934 \newline 
935 Make a copy of this object in the same directory.
936 \newline 
937 Rename...
938 \newline 
939 Change the name used for this object.
940 \newline 
941 Link...
942 \newline 
943 Create a symbolic link to this name in the same directory.
944 \newline 
945 Shift Open
946 \newline 
947 Opens applications as directories, files as text/plain, mount points
948 \newline 
950 \newline 
951 by mounting or unmounting them and symlinks by opening the directory
952 \newline 
954 \newline 
955 containing the thing they point to.
956 \newline 
958 \newline 
959 This is the same as double-clicking with Shift held down.
960 \newline 
961 Help
962 \newline 
963 Explain what kind of thing is selected.
964  For applications,
965 \newline 
967 \newline 
968 display the help files.
969 \newline 
970 Info
971 \newline 
972 Display extra information about this object.
973 \newline 
974 Open VFS
975 \newline 
976 Open the file as if it was a directory --- see section 
977 \begin_inset LatexCommand \ref{sec: vfs}
979 \end_inset 
982 \newline 
983 Mount
984 \newline 
985 Mount or unmount each mount point selected.
986 \newline 
987 Delete
988 \newline 
989 Remove all the selected entries from the directory.
990 \newline 
992 \newline 
993 Subdirectories will have their contents deleted first.
994 \newline 
996 \newline 
997 Deleting symlinks only removes the link, not the thing it points to.
998 \newline 
999 Disk Usage
1000 \newline 
1001 Count the sizes of all the selected items.
1002  Directories also have their
1003 \newline 
1005 \newline 
1006 contents counted.
1007  Symlinks count themselves, not the things they point to.
1008 \newline 
1009 Permissions
1010 \newline 
1011 Allows you to change the permissions for the selected files.
1012 \newline 
1013 Find
1014 \newline 
1015 Search for files by specifying various conditions --- see section 
1016 \begin_inset LatexCommand \ref{sec: Searching}
1018 \end_inset 
1021 \layout Subsubsection
1023 The window menu
1024 \layout Standard
1025 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1026 multicol5
1027 8 2 0 0 -1 -1 -1 -1
1028 1 1 0 0
1029 1 1 0 0
1030 0 1 0 0
1031 0 1 0 0
1032 0 1 0 0
1033 0 1 0 0
1034 0 1 0 0
1035 0 1 0 0
1036 8 1 0 "" ""
1037 2 1 1 "8cm" ""
1038 0 8 0 1 0 0 0 "" ""
1039 0 8 0 1 0 0 0 "" ""
1040 0 8 0 1 0 0 0 "" ""
1041 0 2 0 1 0 0 0 "" ""
1042 0 8 0 1 0 0 0 "" ""
1043 0 8 0 1 0 0 0 "" ""
1044 0 8 0 1 0 0 0 "" ""
1045 0 8 0 1 0 0 0 "" ""
1046 0 8 0 1 0 0 0 "" ""
1047 0 8 0 1 0 0 0 "" ""
1048 0 8 0 1 0 0 0 "" ""
1049 0 8 0 1 0 0 0 "" ""
1050 0 8 0 1 0 0 0 "" ""
1051 0 8 0 1 0 0 0 "" ""
1052 0 8 0 1 0 0 0 "" ""
1053 0 8 0 1 0 0 0 "" ""
1055 Entry
1056 \newline 
1057 Action
1058 \newline 
1059 Parent, New Window
1060 \newline 
1061 Open a new window displaying this window's parent.
1062 \newline 
1063 Parent, Same Window
1064 \newline 
1065 As above, but reuse this window.
1066 \newline 
1067 New Window
1068 \newline 
1069 Open another window onto this directory.
1070 \newline 
1071 Close Window
1072 \newline 
1073 Close this window.
1074 \newline 
1075 Enter Path
1076 \newline 
1077 Open the path-entry box (see section 
1078 \begin_inset LatexCommand \ref{sec: mini}
1080 \end_inset 
1083 \newline 
1084 Shell Command
1085 \newline 
1086 Open the shell command box (see section 
1087 \begin_inset LatexCommand \ref{sec: mini}
1089 \end_inset 
1092 \newline 
1093 Show ROX-Filer help
1094 \newline 
1095 Same as selecting ROX-Filer and choosing `Help' from the menu.
1096 \layout Subsubsection
1098 The panel menu
1099 \layout Standard
1101 This is just a cut-down version of the window menu.
1102  The only new entry is `Open Panel as Directory', which displays the panel
1103  in a new, non-panel, window.
1104  `Remove Item' is a cut-down version of `Delete'; it only works for symbolic
1105  links and never asks for confirmation.
1106  Since dragging applications and directories to the panel creates symlinks
1107  it is very easy to change the panel contents to suit your needs.
1108 \layout Subsection
1111 \begin_inset LatexCommand \label{sec: vfs}
1113 \end_inset 
1115 Virtual file systems
1116 \layout Standard
1118 Some types of file can be represented as a directory.
1119  A typical example is a zip file, which contains an entire directory structure
1120  in compressed form.
1121  It is often useful to be able to open up such a file as if it was a real
1122  directory, and the VFS system allows you to do this.
1123 \layout Standard
1125 To use this feature you must have one or both of the following:
1126 \layout Itemize
1128 A system (such as PODFUK
1129 \begin_inset LatexCommand \cite{PODFUK}
1131 \end_inset 
1133 ) which causes the kernel to support various Virtual File Systems directly.
1134  This is the best option since all programs will be able to access the contents
1135  of the VFS.
1136  You will require root access to install such a system, however, and it
1137  is not available on all platforms.
1138 \layout Itemize
1140 Support for the Midnight Commander VFS library compiled into ROX-Filer.
1141  This happens automatically when you compile ROX-Filer if it can find the
1142  VFS library --- this means having 
1143 \family typewriter 
1144 libvfs.so
1145 \family default 
1146  (or 
1147 \family typewriter 
1148 libvfs.a
1149 \family default 
1150 ) in a system library directory or in the directory in the environment variable
1152 \family typewriter 
1153 LD_LIBRARY_PATH
1154 \family default 
1156  In this case, you will be able to view the directory structure but not
1157  change it or access individual files.
1158  Support for this may be added later.
1159  Midnight Commander is part of the GNOME project.
1160 \layout Standard
1162 Note that using the `Open VFS' menu is simply a short-cut for using the
1163  path-entry box (explained below), so if you want to use a VFS not listed
1164  on the menu you can type in the path directly, eg:
1165 \layout Standard
1168 \family typewriter 
1169 /home/fred/archive.zip#uzip/
1170 \layout Standard
1173 \latex latex 
1175 \backslash 
1176 noindent 
1177 \latex default 
1178 Don't forget the final slash!
1179 \layout Subsubsection
1181 Step by step example of adding VFS support
1182 \layout Standard
1184 This assumes that you have the Midnight Commander source in a directory
1185  called `mc'.
1186  You might need to replace 
1187 \family typewriter 
1188 libvfs.so 
1189 \family default 
1190 with 
1191 \family typewriter 
1192 libvfs.a
1193 \family default 
1195 \layout LyX-Code
1197 $ cd mc
1198 \layout LyX-Code
1200 $ ./configure
1201 \layout LyX-Code
1203 $ cd vfs
1204 \layout LyX-Code
1206 $ make libvfs.so
1207 \layout Itemize
1209 If you have the root password then install the library in a system library
1210  directory as normal.
1211 \layout Itemize
1213 If not,
1214 \begin_deeper 
1215 \layout LyX-Code
1217 $ mkdir ~/lib
1218 \layout LyX-Code
1220 $ cp libvfs.so ~/lib
1221 \layout LyX-Code
1223 $ cd ~/Apps/ROX-Filer
1224 \layout Standard
1226 Edit the 
1227 \family typewriter 
1228 AppRun
1229 \family default 
1230  file to include this as the 
1231 \emph on 
1232 second
1233 \emph toggle 
1234  line:
1235 \layout LyX-Code
1237 LD_LIBRARY_PATH=${HOME}/lib; export LD_LIBRARY_PATH
1238 \layout Standard
1240 This will ensure that ROX-Filer will look for the library in the new 
1241 \family typewriter 
1242 ~/lib
1243 \family default 
1244  directory.
1245  Finally, recompile:
1246 \layout LyX-Code
1248 $ ./AppRun --compile
1249 \layout LyX-Code
1252 \layout LyX-Code
1254 checking for mc_stat in -lvfs...
1255  yes
1256 \layout Standard
1258 If you saw that line then it's worked! Well done!
1259 \end_deeper 
1260 \layout Subsection
1263 \begin_inset LatexCommand \label{sec: mini}
1265 \end_inset 
1267 The mini-buffer
1268 \layout Standard
1270 The mini-buffer is a white bar that appears along the bottom of the window
1271  and allows you to enter some text.
1272  Press Escape to get rid of it again.
1273  It behaves in different ways depending on how you invoked it:
1274 \layout Subsubsection
1276 The path-entry box
1277 \layout Standard
1279 This allows you to type in a path directly.
1280  As you type the display is updated to show the item entered visually.
1281  The main use is to find a file in a large directory quickly, but you can
1282  also use it for navigating between directories, or for selecting a full
1283  pathname from somewhere else and pasting it directly into the path-entry
1284  box.
1285 \layout Standard
1286 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1287 multicol5
1288 4 2 0 0 -1 -1 -1 -1
1289 1 1 0 0
1290 0 1 0 0
1291 0 1 0 0
1292 0 1 0 0
1293 8 1 0 "" ""
1294 2 1 1 "8cm" ""
1295 0 8 0 1 0 0 0 "" ""
1296 0 8 0 1 0 0 0 "" ""
1297 0 8 0 1 0 0 0 "" ""
1298 0 8 0 1 0 0 0 "" ""
1299 0 8 0 1 0 0 0 "" ""
1300 0 8 0 1 0 0 0 "" ""
1301 0 8 0 1 0 0 0 "" ""
1302 0 8 0 1 0 0 0 "" ""
1305 \newline 
1306 Action
1307 \newline 
1308 Return
1309 \newline 
1310 Open the currently selected item.
1311 \newline 
1313 \newline 
1314 Shell-style tab completion.
1315 \newline 
1316 Up, Down
1317 \newline 
1318 Select the previous/next matching entry.
1319 \layout Standard
1321 Tab completion tries to fill in as many characters for you as it can.
1322  For example, if there are two files in a directory called `save-mail-nov-1999'
1323  and `save-mail-dec-1999' then typing 'save' and pressing Tab will expand
1324  `save' to `save-mail-' and beep to indicate that the match is not complete.
1325  If you use tab completion on a directory and it is unique then the filer
1326  will automatically change into the directory.
1327  This behavior should be familiar to shell users.
1328 \layout Subsubsection*
1330 Example
1331 \layout Standard
1333 Let's say you want to locate the documentation for Wine in the directory
1334  /usr/doc (which is usually very large).
1335  Here's how you could do it:
1336 \layout Enumerate
1338 Open the minibuffer by choosing 'Enter Path' from the Window menu.
1339  I usually bind this function to the slash (`/') key.
1340 \layout Enumerate
1342 Press CTRL-U to delete the existing contents --- this moves you to the root
1343  directory.
1344 \layout Enumerate
1346 Type `u
1347 \latex latex 
1349 \backslash 
1350 Tab{}
1351 \latex default 
1353 \latex latex 
1355 \backslash 
1356 Tab{}
1357 \latex default 
1359 \latex latex 
1361 \backslash 
1362 Tab{}
1363 \latex default 
1365  As you type, the cursor will move to the correct subdirectory.
1366  If it beeps when you press Tab then you need to supply more letters.
1367 \layout Subsubsection
1369 The shell command box
1370 \layout Standard
1372 This provides a quick way of entering shell commands if you don't want to
1373  open an xterm.
1374  If you don't know what shell commands are, skip this section!
1375 \layout Standard
1377 Just type in the command and press Return to execute it.
1378  Up and Down arrows move through previously entered commands.
1379  Tab does shell-style completion.
1380  Clicking on an item inserts its name into the minibuffer.
1381  If some items are selected then they are assigned to the positional parameters
1383 \family typewriter 
1385 \family default 
1387 \family typewriter 
1389 \family default 
1390 , etc.
1391 \layout Subsubsection*
1393 Examples
1394 \layout Standard
1396 To untar a 
1397 \family typewriter 
1398 .tgz
1399 \family default 
1400  archive:
1401 \layout Enumerate
1403 Open the minibuffer by choosing `Shell Command' from the Window menu.
1404  I usually bind this to the bang (`!') key.
1405 \layout Enumerate
1407 Type `
1408 \family typewriter 
1409 tar xzf
1410 \family default 
1411 ' and click on the file.
1412  The leading space is automatically inserted.
1413 \layout Enumerate
1415 Press Return to execute it.
1416 \layout Standard
1418 To print all the selected files:
1419 \layout Enumerate
1421 Open the shell command minibuffer.
1422 \layout Enumerate
1424 Type 
1425 \family typewriter 
1426 `lpr $*
1427 \family default 
1428 ' and press Return.
1429 \layout Subsubsection*
1431 Notes
1432 \layout Itemize
1434 Be careful; you will not be asked to confirm! If in doubt, start the command
1435  with `
1436 \family typewriter 
1437 echo
1438 \family default 
1439 ' so that it will be displayed rather than executed.
1440 \layout Itemize
1442 The above command won't work if some of the files contain spaces --- use
1444 \family typewriter 
1445 lpr 
1446 \latex latex 
1448 \latex default 
1450 \latex latex 
1452 \family default 
1453 \latex default 
1454 ' instead to be safe.
1455 \layout Itemize
1457 `sh' is always used as the name of the shell to run (mainly because bash
1458  and csh treat positional parameters differently).
1459  However, PATH is searched to find it so you can still use another shell
1460  if you want by naming it sh and putting it in your path.
1461 \layout Itemize
1463 Commands execute in the background, so you can say:
1464 \begin_deeper 
1465 \layout LyX-Code
1467 sleep 240; xmessage Time to go!
1468 \end_deeper 
1469 \layout Subsection
1471 Action windows
1472 \layout Standard
1474 Action windows are those boxes that appear while you're doing a Copy/Move/Link/e
1475 tc operation.
1476  The status line at the top of the window shows the current directory or
1477  object that the window is processing.
1478  The scrolling area below is the log area - it shows what has been done
1479  and may display questions here.
1480 \layout Standard
1482 At the bottom are four buttons and, sometimes, some options.
1483  The buttons work as follows:
1484 \layout Description
1486 Quiet will do simple operations without asking you to confirm each one.
1487  By turning this on and off during an operation you can use it like a pause
1488  button.
1489 \layout Description
1491 Yes answers yes to the question displayed in the log area.
1492 \layout Description
1494 No answers no to the question displayed in the log area.
1495 \layout Description
1497 Abort kills the current operation (if any) and closes the action window.
1498 \layout Standard
1500 You can control which actions get started automatically (without you having
1501  to click on Quiet at the start) from the Options window.
1502 \layout Subsubsection
1504 Action window options
1505 \layout Standard
1507 Some actions have options, which appear as option boxes at the bottom of
1508  the window.
1509  They are:
1510 \layout Itemize
1512 `Force' means that the filer won't treat non-writeable files as special.
1513  Normally, it confirms the deletion even if Quiet is pressed.
1514  Note that you still can't remove files from non-writeable directories because
1515  in that case you really don't have permission.
1516 \layout Itemize
1518 `Brief' prevents the filer logging a message every time it does something.
1519  Use this to speed things up if large numbers of messages are being logged.
1520 \layout Itemize
1522 `Recurse' means that doing something to a directory will also do the same
1523  thing to all its contents, and the contents of any subdirectories, and
1524  so on.
1525 \layout Subsection
1528 \begin_inset LatexCommand \label{sec: Searching}
1530 \end_inset 
1532 Searching
1533 \layout Standard
1535 The Find feature looks through all the selected files and directories and
1536  any subdirectories (recursively) looking for items that match a particular
1537  expression.
1538 \layout Standard
1540 If you know the name of a file then just enter it in the `Expression:' box,
1541  enclosed in single quotes.
1542  For example, to find a file called `log' you would enter:
1543 \layout LyX-Code
1545 'log'
1546 \layout Standard
1548 Remember to use normal quotes, not double quotes (
1549 \family typewriter 
1551 \begin_inset Quotes eld
1552 \end_inset 
1555 \family default 
1556 ) or back-quotes (
1557 \family typewriter 
1559 \family default 
1561 \layout Standard
1563 As the filer finds matching files they are added to the results list.
1564  Clicking on an entry in the list opens a viewer showing the file you clicked
1565  on.
1566  The filer will use the same window to view other results (so, if you want
1567  the results shown in separate windows you must explicitly create a new
1568  window from the Window menu).
1569 \layout Subsubsection
1571 Wildcards
1572 \layout Standard
1574 You can also put shell-style wildcard characters inside the quotes, for
1575  example:
1576 \layout LyX-Code
1578 '*.html'
1579 \layout LyX-Code
1581 'Report.*'
1582 \layout LyX-Code
1584 'Draft[1-5]'
1585 \layout LyX-Code
1587 'main.[ch]'
1588 \layout Standard
1590 Look at the 
1591 \family typewriter 
1592 glob(7)
1593 \family default 
1594  manpage if you want to know more about shell wildcards.
1595 \layout Standard
1597 If the pattern you enter contains a slash ('/') character then the pattern
1598  is matched against the file's full path, otherwise only the leafname is
1599  used.
1600  That is, 
1601 \family typewriter 
1602 '*tmp*'
1603 \family default 
1604  will find 'tmp' and 'tmpfile' but not '/tmp/file' --- 
1605 \family typewriter 
1606 '/*tmp*'
1607 \family default 
1608  will find all three.
1609 \layout Subsubsection
1611 Simple tests
1612 \layout Standard
1614 As well as finding files by their names you can also find them by various
1615  other attributes.
1616  Note that `file' is used here to mean anything that can appear in the filesyste
1617 m --- including directories, devices and so on.
1618 \layout Standard
1621 \latex latex 
1623 \backslash 
1624 smallskip
1625 \backslash 
1626 noindent 
1627 \latex default 
1628 These look at the type of the item being checked:
1629 \layout Description
1631 IsReg matches any regular (ie, normal) file.
1632 \layout Description
1634 IsLink matches symlinks.
1635 \layout Description
1637 IsDir matches directories.
1638 \layout Description
1640 IsChar matches character device files.
1641 \layout Description
1643 IsBlock matches block device files.
1644 \layout Description
1646 IsDev matches block or character device files.
1647 \layout Description
1649 IsPipe matches pipes.
1650 \layout Description
1652 IsSocket matches sockets.
1653 \layout Standard
1655 These look at the permissions set on the file - see section 
1656 \begin_inset LatexCommand \ref{sec: Permissions}
1658 \end_inset 
1661 \layout Description
1663 IsSUID matches files which have the Set-UID bit set.
1664 \layout Description
1666 IsSGID matches files which have the Set-GID bit set.
1667 \layout Description
1669 IsSticky matches files with the sticky bit set,
1670 \layout Description
1672 IsReadable matches files which you can read from.
1673 \layout Description
1675 IsWriteable matches files which you can write to.
1676 \layout Description
1678 IsExecutable matches files which you can execute.
1679 \layout Standard
1681 And a couple of other useful ones:
1682 \layout Description
1684 IsEmpty finds empty files (ie, those whose length is 0 bytes).
1685 \layout Description
1687 IsMine finds files which you own.
1688 \layout Subsubsection
1690 Logic operators
1691 \layout Standard
1693 You can combine the above tests in various ways to perform more advanced
1694  searches.
1695  An expression is actually made up of a list of 
1696 \emph on 
1697 cases
1698 \emph toggle 
1699 , separated by commas.
1700  The filer will try to match each case in turn until one matches or there
1701  are no more cases left.
1702  For example, to search for files with several possible endings:
1703 \layout LyX-Code
1705 '*.gif', '*.htm', '*.html'
1706 \layout Standard
1708 Further, each of the cases is actually a list of conditions.
1709  The case only matches if all of its conditions are met.
1710  So, to find a directory called 
1711 \family typewriter 
1713 \family default 
1714  or a regular file ending in 
1715 \family typewriter 
1717 \family default 
1719 \layout LyX-Code
1721 IsDir 'lib', IsReg '*.so'
1722 \layout Standard
1724 You can negate a condition by putting a 
1725 \family typewriter 
1727 \family default 
1728  in front of it and you can use a sub-expression as a condition by bracketing
1729  it, like this:
1730 \layout LyX-Code
1732 ! (IsDir, IsReg)
1733 \layout LyX-Code
1735 !IsDir !IsReg
1736 \layout LyX-Code
1738 Not isdir and not isreg
1739 \layout Standard
1741 All three do the same thing.
1742 \layout Subsubsection
1744 Comparisons
1745 \layout Standard
1747 You can also compare various values using the operators 
1748 \family typewriter 
1749 <, <=, =, !=, >, >=
1750 \family default 
1751  (for less-than, less-than-or-equal-to, equal-to, not-equal-to, greater-than
1752  and greater-than-or-equal-to).
1753  When comparing times, you may find it helpful to use 
1754 \family typewriter 
1755 after 
1756 \family default 
1757 and 
1758 \family typewriter 
1759 before
1760 \family default 
1761  instead of 
1762 \family typewriter 
1764 \family default 
1765  and 
1766 \family typewriter 
1768 \family default 
1769  to make things clearer.
1770 \layout Standard
1772 The following are read from the file being checked and may be used for the
1773  values being compared:
1774 \layout Description
1776 atime The time that the file was last accessed.
1777 \layout Description
1779 ctime The time that the file's status was last changed.
1780 \layout Description
1782 mtime The time that the file's contents were last modified.
1783 \layout Description
1785 size The size of the file.
1786 \layout Description
1788 inode The file's inode (index) number
1789 \layout Description
1791 nlinks The number of links to this file (that is, the number of directory
1792  entries which refer to this file.
1793  Note that symlinks don't count as references).
1794 \layout Description
1796 uid The User ID of the file.
1797 \layout Description
1799 gid The Group ID of the file.
1800 \layout Description
1802 blocks The number of disk blocks being used by the file.
1803 \layout Standard
1805 Times are measured as seconds since the Unix Epoch (00:00:00 UTC, January
1806  1, 1970).
1807  Sizes are in bytes.
1808  When specifying constants to compare these values with you may use various
1809  keywords to scale the value:
1810 \layout Description
1812 Byte(s) has no effect, but looks better.
1813 \layout Description
1815 Kb multiplies by 1024, so 2Kb is the same as 2048.
1816 \layout Description
1818 Mb multiplies by 
1819 \begin_inset Formula \( 1024^{2} \)
1820 \end_inset 
1822 , ie 1024 Kb.
1823 \layout Description
1825 Sec(s) has no effect, but looks nice.
1826 \layout Description
1828 Min(s) multiplies by 60 to get minutes.
1829 \layout Description
1831 Hour(s),
1832 \protected_separator 
1833 Day(s),
1834 \protected_separator 
1835 Week(s),
1836 \protected_separator 
1837 Year(s) likewise convert to the relevant unit.
1838 \layout Description
1840 Ago makes the time in the past relative to when the check is done.
1841 \layout Description
1843 Hence makes the time in the future.
1844 \layout Description
1846 Now is short for `
1847 \family typewriter 
1848 0 Secs Hence
1849 \family default 
1851 \layout Standard
1853 Some examples should make this all a bit clearer!
1854 \layout LyX-Code
1856 mtime after 1 day ago
1857 \layout LyX-Code
1859 size > 10 Mb
1860 \layout LyX-Code
1862 IsReg and nlinks > 1
1863 \layout Standard
1865 The first finds files modified within the last 24 hours.
1866  You could use 
1867 \family typewriter 
1869 \family default 
1870  instead of 
1871 \family typewriter 
1872 after,
1873 \family default 
1874 but it's not so clear what is meant.
1875  The second finds files larger than 10 Mb and the last finds regular files
1876  with more than one directory entry.
1877 \layout Standard
1879 Be careful though --- the filer doesn't check the context of the modifiers,
1880  so 
1881 \family typewriter 
1882 size > 1 day ago
1883 \family default 
1884  is allowed, although it doesn't make much sense! Also, forgetting to use
1886 \family typewriter 
1888 \family default 
1889  or 
1890 \family typewriter 
1891 hence
1892 \family default 
1893  will cause odd effects (the time will be measured relative to the Epoch
1894  rather than the current time).
1895  Finally, don't use = with times --- 
1896 \family typewriter 
1897 atime = 1 day ago
1898 \family default 
1899  looks for a file accessed 
1900 \emph on 
1901 exactly
1902 \emph toggle 
1903  86400 seconds ago...
1904 \layout Subsubsection
1906 Specials
1907 \layout Description
1909 System(Command) executes `Command' on the file.
1910  The test succeeds if the command returns an exit status of zero.
1911  A `%' character in `Command' is replaced by the full path of the file being
1912  checked.
1913  System is a very slow test to perform, so do it last if possible.
1914  For example, if you're looking for a .c file containing the word `main',
1915  do
1916 \begin_deeper 
1917 \layout LyX-Code
1919 '*.c' system(grep -q main
1920 \latex latex 
1922 \backslash 
1923 thinspace{}
1924 \latex default 
1926 \latex latex 
1928 \backslash 
1929 thinspace{}"
1930 \latex default 
1932 \layout Standard
1934 so that the grep is only performed for files ending in .c (as opposed to
1935  only checking that the file ends in .c if it contains the word `main').
1936 \end_deeper 
1937 \layout Description
1939 Prune Always fails!
1940 \begin_float footnote 
1941 \layout Standard
1943 Note that this is the opposite of the 
1944 \noun on 
1945 find(1)
1946 \noun toggle 
1947  command.
1948 \end_float 
1949  However, if it gets evaluated at all then it prevents the filer from checking
1950  inside the current directory.
1951  Remember the order in which the filer checks the expression!
1952 \layout Standard
1954 Examples:
1955 \layout LyX-Code
1957 '*.old' system(echo rm %)
1958 \layout LyX-Code
1960 'src' prune, '*.c'
1961 \layout Standard
1963 The first displays a command to delete each file ending in 
1964 \family typewriter 
1965 .old
1966 \family default 
1967 ; you can either paste the results into an xterm to execute them or run
1968  the search again without the 
1969 \family typewriter 
1970 echo
1971 \family default 
1973  It's always a good idea to use 
1974 \family typewriter 
1975 echo
1976 \family default 
1977  first with dangerous commands! The second looks for 
1978 \family typewriter 
1980 \family default 
1981  files, but does not bother checking inside directories called 
1982 \family typewriter 
1984 \family default 
1986  The expression is evaluated like this:
1987 \layout Standard
1988 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
1990 \begin_inset Figure size 216 180
1991 file Prune.eps
1992 height 2 2.5
1993 flags 9
1995 \end_inset 
1998 \layout Subsection
2000 Options
2001 \layout Standard
2003 You can configure various aspects of ROX-Filer from the Options box.
2004  Choose `Options...' from a filer window menu to open it.
2006 \layout Standard
2008 At the bottom of the window are four buttons:
2009 \layout Description
2011 Save puts all your choices into effect, and also saves them into your Choices
2012  directory for next time ROX-Filer is loaded.
2013  ROX-Filer will never save any preferences to disk unless you click on the
2014  `Save' button in the options window.
2015  Exactly where choices are loaded from and saved to is controlled by the
2017 \family typewriter 
2018 CHOICESPATH
2019 \family default 
2020  environment variable --- see 
2021 \begin_inset LatexCommand \cite{Choices}
2023 \end_inset 
2025  for details.
2026 \layout Description
2028 OK puts your choices into effect without writing anything to disk.
2029 \layout Description
2031 Apply works like OK, but without closing the Options window.
2032 \layout Description
2034 Cancel closes the options box and forgets any changes you made.
2035 \layout Subsubsection
2037 Action window options
2038 \layout Standard
2040 You can choose to start some operations automatically, without waiting for
2041  you to click on Quiet.
2042  Select each operation that you want to auto-start here.
2043 \layout Subsubsection
2045 Filer window options
2046 \layout Itemize
2048 `Ignore case when sorting' treats upper and lower case letters as equivalent
2049  when sorting.
2050  If this is off then `Zoo' comes before `animal', for example.
2051 \layout Itemize
2053 `New window on button 1' swaps the actions of the two non-menu buttons when
2054  opening directories.
2055  This is provided for people who are used to the RISC OS mouse bindings.
2056 \layout Itemize
2058 `Menu on button 2' swaps the actions of buttons 2 and 3 so that the middle
2059  button brings up the menus.
2060  This is provided for people who are used to the RISC OS mouse bindings.
2061 \layout Itemize
2063 `Single-click navigation' treats a single click over an item as if it was
2064  a double click.
2065  This allows you to move around, run applications and open files without
2066  double clicking.
2067  To select a file 
2068 \emph on 
2069 without
2070 \emph toggle 
2071  opening it you must hold down CTRL while you click.
2072 \layout Itemize
2074 `Unique windows' prevents you from having two windows showing the same directory.
2075  Opening a second view onto a directory closes the first.
2076 \layout Itemize
2078 `Toolbar type for new windows' allows you to choose what kind of toolbar
2079  will be used for future filer windows (the currently open windows are not
2080  affected).
2081  None means that new windows will not have a toolbar, Normal provides a
2082  small bar of icons, and GNOME displays larger icons with textual labels
2083  and allows the bar to be detached from the window by dragging it.
2084  See section 
2085 \begin_inset LatexCommand \ref{sec: Toolbar}
2087 \end_inset 
2089  for details.
2090 \layout Standard
2092 The last display style and sort type you chose will also be saved as the
2093  defaults for next time.
2094 \layout Subsubsection
2096 Drag-And-Drop options
2097 \layout Standard
2099 ROX-Filer uses the standard XDND protocol for drag-and-drop.
2100  This protocol recommends that URIs should contain the hostname of the computer
2101  that the resource is on so that the program receiving the data can determine
2102  whether it can get the data directly or whether it must go via the X-server.
2103  However, many older programs (particularly GNOME applications) get confused
2104  by the hostname and fail to load the data correctly.
2105  If `Don't use hostnames' is on then the hostname part is omitted and ROX-Filer
2106  will work with these applications BUT you can't drag data to a program
2107  running on a different machine.
2108 \layout Standard
2110 `Allow dragging to icons in filer windows' controls what happens when you
2111  drop files onto icons in filer windows.
2112  If on then drops onto directories will save the data inside the directory
2113  while dropping onto programs will invoke the program on that data.
2114  If off then drops anywhere inside a filer window act like drops onto the
2115  window background --- that is, the data will be saved into the directory
2116  being displayed.
2117 \layout Subsubsection
2119 Menu options
2120 \layout Standard
2122 The `Xterm here' program is the one used when you choose `Xterm here' from
2123  the menu.
2124  You can replace it with another program such as `gnome-terminal' if you
2125  like.
2126  In fact, any program will do, but note that you cannot pass any options
2127  to the program at present.
2128 \layout Section
2130 Filetypes
2131 \layout Standard
2133 ROX-Filer uses three sub-directories in your Choices directory for filetypes:
2134 \layout Description
2136 MIME-info contains files which specify what the MIME type for a file should
2137  be, based on its extention.
2138  All the files in all the MIME-info directories are scanned when the filer
2139  loads.
2140  In addition, ROX-Filer is now supplied with a file called `MIME-info' (inside
2141  its application directory), which is also scanned --- this allows new users
2142  to get started more easily.
2143  Many applications now come with a file called `something.mime'; copy these
2144  files into your MIME-info directory to make ROX-Filer automatically recognise
2145  the new extensions.
2146 \layout Description
2148 MIME-types contains symlinks, one for each MIME type, which point to programs
2149  that can handle files of that type.
2150  For example, to make opening an HTML file load it into Netscape:
2151 \begin_deeper 
2152 \layout Enumerate
2154 Find the Netscape application and go to `Link...' on the menu.
2155 \layout Enumerate
2157 Enter `text_html' as the name for the link and drag the icon from the Link
2158  box into the MIME-types directory.
2159 \layout Standard
2161 You can also put actual programs in here as well as links if you want to.
2162 \end_deeper 
2163 \layout Description
2165 MIME-icons contains the images used to display each type of file.
2166  So the filer will try to display an HTML file using the icon `MIME-icons/text_h
2167 tml.xpm'.
2168 \layout Standard
2170 Many sample files are supplied as part of the ROX desktop
2171 \begin_inset LatexCommand \cite{ROX}
2173 \end_inset 
2176 \layout Standard
2178 In both MIME-types and MIME-icons directories you can also provide default
2179  actions/images for each media type.
2180  For example, if `text_html' isn't found then the filer will try simply
2181  using `text'.
2182 \layout Section
2184 Application directories
2185 \layout Standard
2187 An application directory is a directory which can be run as an application.
2188  It contains all the resources of an application - source code, binaries,
2189  documentation and so on.
2190  Keeping everything in one place make installation and uninstallation much
2191  easier for users.
2192  You can also keep multiple versions of a program by simply having several
2193  application directories.
2194  You may move and rename them as you please.
2195  Application directories are easier to use and install and are more secure
2196  too
2197 \begin_float footnote 
2198 \layout Standard
2200 Because you can compile an application as a user and then simply copy it
2201  as root rather than having to run an install script you are free from the
2202  danger of running untrusted code as root.
2203  All you have to watch out for is setuid binaries.
2204 \end_float 
2206 \layout Standard
2208 To make a directory executable all you need to do is create a executable
2209  file called `AppRun' inside it.
2210  This file is run when the user double-clicks on the application.
2211  You should also provide `AppIcon.xpm' (which will be used as the image for
2212  the application) and `Help' (which is a directory that is opened when the
2213  user asks for help).
2214  Have a look at the ROX-Filer application directory for a full example.
2215 \layout Section
2217 Internationalisation
2218 \layout Subsection
2221 \begin_inset LatexCommand \label{sec: LANG}
2223 \end_inset 
2225 Selecting a translation
2226 \layout Standard
2228 ROX-Filer is able to translate many of its messages, provided suitable translati
2229 on files are provided.
2230  If you know that your language is supported then simply set the 
2231 \family typewriter 
2232 LANG
2233 \family default 
2234  environment variable to the appropriate code for your country before starting
2235  the filer, eg:
2236 \layout LyX-Code
2238 LANG=fr; export LANG
2239 \layout LyX-Code
2241 ROX-Filer/AppRun
2242 \layout Standard
2244 To see which translations are currently provided, open the ROX-Filer application
2245  directory (hold down Shift and double-click) and look inside the `
2246 \family typewriter 
2247 Messages
2248 \family default 
2249 ' subdirectory.
2250 \layout Subsection
2252 Creating a new translation
2253 \layout Enumerate
2255 Go into the 
2256 \family typewriter 
2258 \family default 
2259  directory and create the file `
2260 \family typewriter 
2261 messages.pot
2262 \family default 
2264 \begin_deeper 
2265 \layout LyX-Code
2267 $ cd ROX-Filer/src
2268 \layout LyX-Code
2270 $ make messages.pot
2271 \end_deeper 
2272 \layout Enumerate
2274 Copy the file into the `
2275 \family typewriter 
2277 \family default 
2278 ' subdirectory under 
2279 \family typewriter 
2281 \family default 
2282  (not the other one!) as 
2283 \begin_inset Formula \( \langle \hbox {name}\rangle \hbox {\tt .po} \)
2284 \end_inset 
2287  Eg, if your language is referred to as `ml' (`my language'):
2288 \begin_deeper 
2289 \layout LyX-Code
2291 $ cp messages.pot po/ml.po
2292 \end_deeper 
2293 \layout Enumerate
2295 Load the copy into a text editor.
2296 \layout Enumerate
2298 Fill in the translations, which are all blank to start with.
2299 \layout Enumerate
2301 Run the `
2302 \family typewriter 
2303 make-mo
2304 \family default 
2305 ' script to create the binary file which ROX-Filer can use.
2306  You will need the GNU gettext package for this.
2307  If you don't have it then just send me the 
2308 \family typewriter 
2310 \family default 
2311  file and I'll convert it for you.
2312 \begin_deeper 
2313 \layout LyX-Code
2315 $ cd ROX-Filer/src/po
2316 \layout LyX-Code
2318 $ ./make-mo ml
2319 \layout LyX-Code
2321 Created file ../../Messages/ml.gmo OK
2322 \end_deeper 
2323 \layout Enumerate
2325 Set the LANG variable to `
2326 \family typewriter 
2328 \family default 
2329 ' and restart the filer (see section 
2330 \begin_inset LatexCommand \ref{sec: LANG}
2332 \end_inset 
2335 \layout Enumerate
2337 Submit the 
2338 \family typewriter 
2340 \family default 
2341  file to me so that I can include it in future releases of the filer.
2342 \layout Subsection
2344 Updating an existing translation
2345 \layout Enumerate
2347 Go into the directory containing the 
2348 \family typewriter 
2350 \family default 
2351  files and run the 
2352 \family typewriter 
2353 update-po
2354 \family default 
2355  script.
2356  This checks the source code for new and changed strings and updates all
2357  the translation files.
2358 \begin_deeper 
2359 \layout LyX-Code
2361 $ cd ROX-Filer/src/po
2362 \layout LyX-Code
2364 $ ./update-po
2365 \end_deeper 
2366 \layout Enumerate
2368 Edit the file by hand as before, filling in the new blanks and updating
2369  out-of-date translations.
2370  Look out for `fuzzy' entries where 
2371 \family typewriter 
2372 update-po
2373 \family default 
2374  has made a guess; check it's correct and remove the `fuzzy' line.
2375 \layout Enumerate
2377 Run 
2378 \family typewriter 
2379 make-mo
2380 \family default 
2381  as before.
2382 \layout Enumerate
2384 Submit the updated file to me.
2385 \layout Standard
2387 See the 
2388 \family typewriter 
2389 gettext
2390 \family default 
2391  info page for more instructions on creating a translation.
2392 \layout Section
2394 Hacking
2395 \layout Standard
2397 This is a quick start guide for people who want to modify the source code.
2398  If you make useful changes or fix bugs, please send patches to me or to
2399  the mailing list.
2400  Tell me which version you're using!
2401 \layout Subsection
2403 Compiling
2404 \layout Standard
2406 The first time you compile the program you need to do `
2407 \family typewriter 
2408 AppRun --compile
2409 \family default 
2410 ', but in future you only need to run `
2411 \family typewriter 
2412 make
2413 \family default 
2414 ' in the `
2415 \family typewriter 
2417 \family default 
2418 ' directory when you change the 
2419 \family typewriter 
2421 \family default 
2422  and 
2423 \family typewriter 
2425 \family default 
2426  files.
2427  You might want to run `
2428 \family typewriter 
2429 make depend
2430 \family default 
2431 ' too.
2432 \layout Subsection
2434 Creating and applying patches
2435 \layout Standard
2437 When people make small modifications to the sources they will often distribute
2438  them as 
2439 \emph on 
2440 patch files
2441 \emph toggle 
2442  --- usually on the mailing list.
2443  To apply a patch, go into the 'src' directory and run patch with the patch
2444  file.
2445  Then recompile, like this:
2446 \layout LyX-Code
2448 $ cd ROX-Filer/src
2449 \layout LyX-Code
2451 $ patch < patchfile
2452 \layout LyX-Code
2454 $ ../AppRun --compile
2455 \layout Standard
2457 You can remove the patch by simply repeating the above sequence - patch
2458  will detect that the patch is already applied and offer to remove it.
2459  To create a patch you need to take a copy of the old 'src' directory before
2460  you modify it (before you compile, even):
2461 \layout LyX-Code
2463 $ cd ROX-Filer
2464 \layout LyX-Code
2466 $ cp -r src old_src
2467 \layout Standard
2469 Now, modify and compile until it works they way you want it to.
2470  To make the patch:
2471 \layout LyX-Code
2473 $ cd ROX-Filer
2474 \layout LyX-Code
2476 $ diff -cr old_src src > my_patch
2477 \layout Standard
2479 This creates a human- and machine-readable patch file.
2480  Submit this to the mailing list.
2481  The are many reasons for posting patches rather that the modified files:
2482 \layout Itemize
2484 They are smaller, and hence shouldn't bounce.
2485  They are also quicker to download for people with slow connections.
2486 \layout Itemize
2488 People can see what they're getting into before applying them!
2489 \layout Itemize
2491 Patches can (usually) be applied to slightly modified versions of the sources.
2492  This means that people can apply several patches without each new one overwriti
2493 ng the others.
2494 \layout Subsection
2496 Autoconf
2497 \layout Standard
2499 Here's a quick explanation of the autoconf system in case you haven't used
2500  it before.
2501  See `info autoconf' for full details.
2502 \layout Standard
2504 There's a file called 'configure.in' which contains various tests (`info
2505  autoconf').
2506  You run `autoconf' and it reads through the file and generates a shell
2507  script to perform the tests, saving it as `configure'.
2508  `configure' is normally distributed with the program because not everyone
2509  has autoconf.
2510 \layout Standard
2512 You then run `configure' (in fact, let the `AppRun' script do it because
2513  it passes it some arguments), which performs all the tests.
2514  It reads in `Makefile.in' and `config.h.in' and fills in the missing values
2515  with the test results to produce `Makefile' and `config.h'.
2516 \layout Standard
2518 You run `make', which creates .o files from the .c files and links to produce
2519  ROX-Filer.
2520 \layout Subsection
2522 Data-structures
2523 \layout Standard
2525 The diagram below shows some of the major structures found in the filer
2526  along with their most important attributes and methods.
2527  Exactly which attributes have been included is a little hit-and-miss but
2528  it might help you get the overall picture.
2529  If you find it useful, please let me know and I'll try to keep it up-to-date
2530  (or even extend it!).
2531 \layout Standard
2533 To summarise, each window (or panel) has its own 
2534 \series bold 
2535 FilerWindow
2536 \series default 
2537  structure.
2538  This structure has pointers to a 
2539 \series bold 
2540 Collection
2541 \series default 
2542  (which is the widget which actually displays the files) and to a 
2543 \series bold 
2544 Directory
2545 \series default 
2546 , which is used to cache the directory contents.
2547  Both 
2548 \series bold 
2549 Collection
2550 \series default 
2551  and 
2552 \series bold 
2553 Directory
2554 \series default 
2555  have pointers to (the same) 
2556 \series bold 
2557 DirItem
2558 \series default 
2559 s, each of which corresponds to one filesystem object.
2560  Several 
2561 \series bold 
2562 FilerWindow
2563 \series default 
2564 s may share the same 
2565 \series bold 
2566 Directory
2567 \series default 
2569  While scanning is in progress the 
2570 \series bold 
2571 Directory
2572 \series default 
2573  keeps a list of the new items it has found (
2574 \emph on 
2575 new_items
2576 \emph toggle 
2577 ) and the items which have changed in some way (
2578 \emph on 
2579 up_items
2580 \emph toggle 
2582  It periodically notifies the filer window of the changes-so-far by calling
2583  all the functions in the 
2584 \emph on 
2585 users
2586 \emph toggle 
2587  list (use 
2588 \emph on 
2589 attach()
2590 \emph toggle 
2591  and 
2592 \emph on 
2593 detach()
2594 \emph toggle 
2595  to add and remove functions to or from the list).
2596 \layout Standard
2597 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
2599 \begin_inset Figure size 595 604
2600 file Structs.eps
2601 width 3 100
2602 flags 9
2604 \end_inset 
2607 \layout Bibliography
2608 \bibitem {ROX}
2611 \emph on 
2612 The ROX desktop
2613 \emph toggle 
2614 , <http://www.ecs.soton.ac.uk/~tal197/rox.php3>
2615 \layout Bibliography
2616 \bibitem {GTK+}
2619 \emph on 
2620 GTK+ Toolkit
2621 \emph toggle 
2622 , <http://www.gtk.org>
2623 \layout Bibliography
2624 \bibitem {GNOME}
2627 \emph on 
2628 The GNOME desktop
2629 \emph toggle 
2630 , <http://www.gnome.org>
2631 \layout Bibliography
2632 \bibitem {DND}
2635 \emph on 
2636 The Drag and Drop protocol
2637 \emph toggle 
2638 , <http://www.its.caltech.edu/~jafl/xdnd/>
2639 \layout Bibliography
2640 \bibitem {XDS}
2643 \emph on 
2644 The X Direct Save protocol
2645 \emph toggle 
2646 , <http://www.its.caltech.edu/~jafl/xds/>
2647 \layout Bibliography
2648 \bibitem {Choices}
2651 \emph on 
2652 The ROX Choices system
2653 \emph toggle 
2654 , <http://www.ecs.soton.ac.uk/~tal197/choices.php3>
2655 \layout Bibliography
2656 \bibitem {enlightenment}
2659 \emph on 
2660 Enlightenment,
2661 \emph toggle 
2662  <http://www.enlightenment.org>
2663 \layout Bibliography
2664 \bibitem {PODFUK}
2667 \emph on 
2668 POrtable Dodgy Filesystems in Userland (hacK), 
2669 \emph toggle 
2670 <http://atrey.karlin.mff.cuni.cz/~pavel/podfuk/podfuk.html>
2671 \layout Bibliography
2672 \bibitem {ImLib}
2675 \emph on 
2676 ImLib
2677 \emph toggle 
2678 , <http://www.gnome.org>
2679 \the_end