r367: Running a second copy of the filer as another user will start a new copy
[rox-filer.git] / ROX-Filer / src / Docs / Manual.lyx
blob5038dafd1b01981cb250714e8b170b72b0df5b88
1 #LyX 1.1 created this file. For more info see http://www.lyx.org/
2 \lyxformat 2.16
3 \textclass article
4 \begin_preamble
5 \def \Tab {\thinspace$\langle\hbox{Tab}\rangle$\thinspace}
6 \end_preamble
7 \language default
8 \inputencoding latin1
9 \fontscheme default
10 \graphics default
11 \paperfontsize default
12 \spacing single 
13 \papersize Default
14 \paperpackage widemarginsa4
15 \use_geometry 0
16 \use_amsmath 0
17 \paperorientation portrait
18 \secnumdepth 3
19 \tocdepth 3
20 \paragraph_separation indent
21 \defskip medskip
22 \quotes_language english
23 \quotes_times 2
24 \papercolumns 1
25 \papersides 1
26 \paperpagestyle default
28 \layout Title
30 ROX-Filer User Manual
31 \newline 
33 \latex latex 
35 \backslash 
36 medskip
37 \backslash 
38 large{<http://rox.sourceforge.net>}
39 \layout Author
41 Thomas Leonard,
42 \newline 
43 tal197@users.sourceforge.net
44 \layout Date
47 \latex latex 
49 \backslash 
50 today
51 \layout Abstract
53 ROX-Filer is a graphical file manger for the X Window System.
54  Its user interface is based on the RISC OS filer and it supports similar
55  features such as application directories and drag-and-drop loading and
56  saving of files.
57  The filer can also act as a pinboard, allowing you to pin frequently used
58  files onto the desktop background.
59 \layout Standard
62 \begin_inset LatexCommand \tableofcontents{}
64 \end_inset 
67 \layout Section
69 Introduction
70 \layout Standard
72 ROX-Filer is a simple and easy to use graphical file manager for X11, the
73  windowing system used on Unix and Unix-like operating systems.
74  It is also the core component of the ROX Desktop
75 \begin_inset LatexCommand \cite{ROX}
77 \end_inset 
80 \layout Subsection
82 Features
83 \layout Description
85 XDND A common drag-and-drop protocol used, for example, by the GNOME desktop
86 \begin_inset LatexCommand \cite{GNOME}
88 \end_inset 
91  This allows data to be loaded into an application by dragging it from a
92  filer window to a program.
93  The full specification is given in 
94 \begin_inset LatexCommand \cite{DND}
96 \end_inset 
99 \layout Description
101 XDS An extension to XDND that allows applications to save data by dragging
102  an icon back to a filer window.
103  The full specification is given in 
104 \begin_inset LatexCommand \cite{XDS}
106 \end_inset 
109 \layout Description
111 ROX\SpecialChar ~
112 Choices A simple, but flexible, system for managing user choices.
113  See 
114 \begin_inset LatexCommand \cite{Choices}
116 \end_inset 
118  for details.
119 \layout Description
121 Application\SpecialChar ~
122 directories Self contained relocatable applications, where installati
123 on is as simple as copying it to where you want it and uninstalling it is
124  just a matter of deleting a directory.
125  Described later in this documentation.
126 \layout Section
128 Conditions
129 \layout Standard
131 This program is free software; you can redistribute it and/or modify it
132  under the terms of the GNU General Public License as published by the Free
133  Software Foundation; either version 2 of the License, or (at your option)
134  any later version.
135 \layout Standard
137 This program is distributed in the hope that it will be useful, but WITHOUT
138  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
139  FOR A PARTICULAR PURPOSE.
140  See the GNU General Public License for more details.
141 \layout Standard
143 You should have received a copy of the GNU General Public License along
144  with this program; if not, write to the Free Software Foundation, Inc.,
145  59 Temple Place, Suite 330, Boston, MA, 02111-1307, USA.
146 \layout Section
148 Instructions
149 \layout Subsection
151 Compiling
152 \layout Standard
154 ROX-Filer is usually supplied in source-only form.
155  To compile and run it, you will require
156 \layout Itemize
158 Unix or Linux (root access is not required),
159 \layout Itemize
161 The X Window system (supplied as standard on all modern systems),
162 \layout Itemize
164 GTK+ 1.2.0 or later (libraries and headers) --- get the latest version from
166 \begin_inset LatexCommand \cite{GTK+}
168 \end_inset 
171 \layout Itemize
173 A C compiler (standard on most systems).
174 \layout Standard
176 All of the above are standard on most modern Linux distributions.
177  To check which version of GTK+ you have installed, run the 
178 \family typewriter 
179 gtk-config
180 \family default 
181  command, like this (
182 \family typewriter 
184 \family default 
185  is the shell prompt):
186 \layout LyX-Code
188 $ gtk-config --version
189 \layout LyX-Code
191 1.2.8
192 \layout Standard
194 Due to bugs in earlier versions, GTK+ 1.2.8 is strongly recommended.
195 \layout Standard
198 \latex latex 
200 \backslash 
201 noindent
202 \latex default 
203  To compile:
204 \layout Enumerate
206 Change to the directory containing the ROX-Filer subdirectory.
207 \layout Enumerate
209 Run the AppRun script with the 
210 \family typewriter 
211 --compile
212 \family default 
213  option, like this:
214 \begin_deeper 
215 \layout LyX-Code
217 $ ROX-Filer/AppRun --compile
218 \end_deeper 
219 \layout Enumerate
221 ROX-Filer will perform various checks to find out what kind of system it
222  is being run on and will then compile.
223  If it doesn't work then please e-mail me and complain! Tell me what kind
224  of system you have and what errors were reported.
225  If you manage to fix the problem yourself then please e-mail me the fix.
226 \begin_deeper 
227 \layout Standard
229 The executables files are stored inside the ROX-Filer directory in a different
230  subdirectory for each platform.
231  Therefore, you can compile the same application on several different types
232  of machine and then run it from any of them using the AppRun script.
233  This is particularly useful in a network environment.
234 \end_deeper 
235 \layout Enumerate
237 The filer needs some shared files to work --- icons for the various file
238  types, rules for determining file types and default run actions.
239  These are installed, along with the filer itself, by the '
240 \family typewriter 
241 install.sh
242 \family default 
243 ' script supplied with the filer.
244  Run it like this:
245 \begin_deeper 
246 \layout LyX-Code
248 $ su
249 \layout LyX-Code
251 [ enter root password ]
252 \layout LyX-Code
254 $ ./install.sh
255 \layout Standard
257 If you don't have the root password then don't worry --- skip the '
258 \family typewriter 
260 \family default 
261 ' step and follow the instructions for installing into your home directory.
263 \end_deeper 
264 \layout Standard
266 You can now run the filer by running the AppRun script without any options,
267  like this:
268 \layout LyX-Code
270 $ ROX-Filer/AppRun
271 \layout Standard
273 A window should appear and display the contents of the current directory.
274  If you opted to install the `rox' script then you can simply do this instead:
275 \layout LyX-Code
277 $ rox
278 \layout Standard
280 If you installed the script into your home directory then you may need to
281  set your PATH environment variable so that the shell can find it.
282  For example, if you installed it into a directory called `
283 \family typewriter 
285 \family default 
286 ' in your home directory, use this:
287 \layout LyX-Code
289 $ PATH=${HOME}/bin:${PATH}; export PATH
290 \layout Standard
292 or (if you are using the 
293 \noun on 
294 csh(1)
295 \noun default 
296  shell):
297 \layout LyX-Code
299 $ setenv PATH ${HOME}/bin:${PATH}
300 \layout LyX-Code
302 $ rehash
303 \layout Subsection
305 Invoking
306 \layout Standard
308 By default, ROX-Filer will start by displaying the current directory.
309  You can get it to display other directories instead by listing them after
310  the command:
311 \layout LyX-Code
313 $ rox /home /usr /usr/local
314 \layout Standard
316 You can also use it to open files, like this:
317 \layout LyX-Code
319 $ rox ~/.xsession
320 \layout Standard
322 The filer supports various options, use `
323 \family typewriter 
325 \family default 
326 ' for a list.
327  All options have long and short forms (eg `
328 \family typewriter 
330 \family default 
331 ' and `
332 \family typewriter 
333 --help
334 \family default 
335 ') --- although on some systems you can only use the short versions.
336 \layout Standard
338 Note that if the same version of the filer is already running on this machine
339  then, by default, it will be used to open the directories and the new copy
340  will exit immediately.
341  You can override this (perhaps because the old copy has stopped responding
342  for some reason) using the `
343 \family typewriter 
344 --new
345 \family default 
346 ' option.
347 \layout Subsubsection
350 \begin_inset LatexCommand \label{run_pin}
352 \end_inset 
354 Pinboard support
355 \layout Standard
357 If you want the filer to manage your desktop background then you use the
359 \family typewriter 
360 --pinboard
361 \family default 
362  option and supply a name for the pinboard, eg:
363 \layout LyX-Code
365 $ rox --pinboard=MyPinboard
366 \layout Standard
368 The pinboard configuration is saved in `
369 \emph on 
370 <Choices>/ROX-Filer/pb_MyPinboard
371 \emph default 
372 ' as soon as you change it in some way (for example, by dropping a file
373  onto the background).
374  You can have as many pinboards as you like and switch between them by running
375  rox again, eg:
376 \layout LyX-Code
378 $ rox --pinboard=MyOtherPinboard
379 \layout Standard
381 To turn off the pinboard again, set the name to an empty string:
382 \layout LyX-Code
384 $ rox --pinboard=
385 \layout Standard
387 See section 
388 \begin_inset LatexCommand \ref{winman}
390 \end_inset 
392  if you have trouble getting the icons to display correctly.
393 \layout Subsubsection
396 \begin_inset LatexCommand \label{run_pan}
398 \end_inset 
400 Panels
401 \layout Standard
403 Panels work just like the pinboard.
404  You can create a panel on any side of the screen by using the options 
405 \family typewriter 
406 --left
407 \family default 
409 \family typewriter 
410 --right,
411 \family default 
413 \family typewriter 
414 --top
415 \family default 
416  and 
417 \family typewriter 
418 --bottom
419 \family default 
420 , depending on which side of the screen the panel should appear on.
421  On some systems, the short (one letter) form of the options must be used.
422  For example, to create a panel along the bottom edge of the screen:
423 \layout LyX-Code
425 $ rox -b=MyPanel
426 \layout Standard
428 The panel should be displayed in a window without a title bar.
429  If this does not work then see section 
430 \begin_inset LatexCommand \ref{winman}
432 \end_inset 
434  for some ideas.
435  You can drag files onto either side of the panel to add them.
436  Icons can be repositioned by dragging them with the middle mouse button.
437  Changes to the panel are automatically saved to '
438 \emph on 
439 <Choices>/ROX-Filer/pan_MyPanel
440 \emph default 
442  As with the pinboard, you can switch between panel configurations simply
443  by running rox again with a different panel name.
444  Specify a blank name to remove the panel.
445 \layout LyX-Code
447 $ rox --bottom=MyOtherPanel
448 \layout LyX-Code
450 $ rox --bottom=
451 \layout Subsubsection
454 \begin_inset LatexCommand \label{winman}
456 \end_inset 
458 Window manager notes
459 \layout Standard
461 You may have to play around with your window manager a bit to get the pinboard
462  icons and panels to display correctly (eg, without borders and underneath
463  all other windows).
464  In particular, try setting the stacking level / depth to low (or a negative
465  value).
466  Make sure any 'Keep transients above other windows' type options are turned
467  off!
468 \layout Standard
470 In order for the filer to receive mouse clicks on the background (used for
471  the pinboard support) you need a GNOME-compliant window manager.
472  To see if your window manager supports this, try clicking the right mouse
473  button on an unused area of the background.
474  If you get the pinboard menu, all is well.
475 \layout Standard
477 Note for sawfish users: sawfish trys to guess whether you are using GNOME
478  at start-up and only provides support if so.
479  You need to add the line `
480 \family typewriter 
481 (require 'gnome)
482 \family default 
483 ' to your 
484 \family typewriter 
485 .sawfishrc
486 \family default 
487  file (see the sawfish manual for more details).
488 \layout Standard
490 If all else fails, try running rox with the `
491 \family typewriter 
493 \family default 
494 ' options; this overrides window manager control of the icons altogether.
495 \layout Subsubsection
497 Running as root
498 \layout Standard
500 If you pass the `
501 \family typewriter 
503 \family default 
504 ' option to rox then the filer will display a message at the top of each
505  window saying which user the filer is running as.
506  This also disables the normal warning box you get when you try to run the
507  filer as root.
508  The idea here is that you create a simple script which runs the filer as
509  root --- something like:
510 \layout LyX-Code
512 #!/bin/sh
513 \layout LyX-Code
515 su -m -c "rox -u $*"
516 \layout Standard
518 Then, you can get a root filer window by simply running the script and entering
519  the root password.
520  Remember, any file operations you perform and any programs you run from
521  these windows will run as root too! Be careful!
522 \layout Standard
524 You may find that the X server won't allow root (or other users) to connect.
525  Reading the manual pages for `
526 \family typewriter 
527 xauth
528 \family default 
529 ' and `
530 \family typewriter 
531 xhost
532 \family default 
533 ' may give you some hints, but it varies between systems (which is why this
534  isn't built in to the filer!).
535 \layout Subsection
537 Mouse button and key bindings
538 \layout Standard
540 Quick start:
541 \layout Itemize
543 Click the left
544 \begin_float footnote 
545 \layout Standard
547 This documentation assumes that button--1 is the left button, button--2
548  is the middle button and button--3 is the right button.
549  This is not always the case --- for example, in a left-handed setup.
550 \end_float 
551  mouse button to open files and directories.
552 \layout Itemize
554 Click the right button to get a menu.
555  Click over a file to perform an action on that file.
556 \layout Itemize
558 Drag files between windows to copy (left button) or move (middle button)
559  them.
560 \layout Standard
563 \latex latex 
565 \backslash 
566 noindent 
567 \latex default 
568 By default, the mouse button bindings are designed to fit in with X conventions.
569  However, the behaviour is highly configurable --- have a play in the Options
570  window if you don't like the normal settings.
571  The normal settings behave as follows:
572 \layout Standard
575 \latex latex 
577 \backslash 
578 medskip
579 \layout Standard
580 \LyXTable
581 multicol5
582 20 2 0 0 -1 -1 -1 -1
583 1 1 0 0
584 1 1 0 0
585 0 1 1 0
586 0 1 1 0
587 0 1 0 0
588 0 1 0 0
589 0 1 0 0
590 0 1 1 0
591 0 1 0 0
592 0 1 1 0
593 0 1 0 0
594 0 1 1 0
595 0 1 1 0
596 0 1 0 0
597 0 1 0 0
598 0 1 0 0
599 0 1 0 0
600 0 1 0 0
601 0 1 0 0
602 0 1 0 0
603 2 1 0 "3.5cm" ""
604 2 1 1 "9.5cm" ""
605 0 2 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 1 0 0 "" ""
609 0 8 0 1 0 0 0 "" ""
610 0 8 0 1 1 0 0 "" ""
611 0 8 0 1 0 0 0 "" ""
612 0 8 0 1 0 0 0 "" ""
613 0 2 0 1 0 0 0 "" ""
614 0 8 0 1 0 0 0 "" ""
615 0 8 0 1 0 0 0 "" ""
616 0 8 0 1 0 0 0 "" ""
617 0 8 0 1 1 0 0 "" ""
618 0 8 0 1 1 0 0 "" ""
619 0 8 0 1 0 0 0 "" ""
620 0 2 0 1 0 0 0 "" ""
621 0 8 0 1 1 0 0 "" ""
622 0 8 0 1 0 0 0 "" ""
623 0 2 0 1 0 0 0 "" ""
624 0 8 0 1 0 0 0 "" ""
625 0 8 0 1 0 0 0 "" ""
626 0 8 0 1 1 0 0 "" ""
627 0 8 0 1 0 0 0 "" ""
628 0 8 0 1 1 0 0 "" ""
629 0 8 0 1 0 0 0 "" ""
630 0 8 0 1 0 0 0 "" ""
631 0 8 0 1 0 0 0 "" ""
632 0 8 0 1 0 0 0 "" ""
633 0 8 0 1 0 0 0 "" ""
634 0 8 0 1 0 0 0 "" ""
635 0 8 0 1 0 0 0 "" ""
636 0 8 0 1 0 0 0 "" ""
637 0 8 0 1 0 0 0 "" ""
638 0 8 0 1 0 0 0 "" ""
639 0 8 0 1 0 0 0 "" ""
640 0 8 0 1 0 0 0 "" ""
641 0 8 0 1 0 0 0 "" ""
642 0 8 0 1 0 0 0 "" ""
643 0 8 0 1 0 0 0 "" ""
644 0 8 0 1 0 0 0 "" ""
646 Key or mouse button
647 \newline 
648 Action
649 \newline 
650 Left button click
651 \newline 
652 Open the file or directory clicked on.
653 \newline 
655 \newline 
656 Hold down Ctrl to select things instead of opening them.
657 \newline 
659 \newline 
660 Hold down Shift to look inside applications, treat files as text, follow
661  symlinks or mount devices.
662 \newline 
663 Middle button click
664 \newline 
665 Same as left click, but open a directory in a new window or close the viewer
666  when opening a file.
667 \newline 
668 Right button click
669 \newline 
670 Open the main menu.
671  Hold down Ctrl while clicking to go directly to the Selection submenu.
672 \newline 
673 Drag an item 
674 \newline 
675 Copy the file(s) to the destination (an application or another filer window).
676 \newline 
677 (left mouse button)
678 \newline 
679 Hold down Shift to move the file, or Ctrl+Shift to create a symbolic link.
680 \newline 
681 Drag an item
682 \newline 
683 As above, but always moves rather than copying or symlinking.
684 \newline 
685 (middle mouse button)
686 \newline 
688 \newline 
689 Drag (not over an item)
690 \newline 
691 Select a group of items by dragging a box around them.
692  With the left mouse button, only the files
693 \newline 
695 \newline 
696 in the box will be selected.
697  If you hold down Ctrl then the boxed items are added to the selection.
698 \newline 
700 \newline 
701 If the other mouse button is used then the boxed items are toggled between
702  selected and unselected.
703 \newline 
704 Backspace
705 \newline 
706 Change to viewing the parent directory.
707 \newline 
708 Cursor keys
709 \newline 
710 Move the cursor around.
711 \newline 
712 Page Up, Page Down
713 \newline 
714 Move up and down in steps of ten rows at a time.
715 \newline 
716 Home, End
717 \newline 
718 Move to the first/last entry in the directory.
719 \newline 
720 Return
721 \newline 
722 Open the item under the cursor.
723  With Shift held down this acts like choosing 'Shift Open' from the menu.
724 \newline 
725 Spacebar
726 \newline 
727 Toggles the item under the cursor between being selected and unselected.
728 \newline 
729 Tab, Shift+Tab
730 \newline 
731 Moves the cursor to the next/previous selected item.
732 \layout Standard
735 \latex latex 
737 \backslash 
738 medskip
739 \backslash 
740 noindent 
741 \latex default 
742 Other keys can easily be defined by opening the menu, moving the pointer
743  over the item you want to use and pressing a key.
744  The key will appear in the menu and can be used from then on.
745  Key bindings are automatically saved when the filer quits.
746 \layout Subsection
748 The selection
749 \layout Standard
751 While items are selected in a ROX-Filer window the filer has the global
752  selection.
753  You can then paste into another window to get the pathnames of the selected
754  files.
755  For example, to extract the files from a .tgz archive on a floppy disk into
756  your home directory:
757 \layout Enumerate
759 Choose `Xterm here' from the menu in your home directory.
760 \layout Enumerate
762 Type `tar xzf ' (but don't press Return)
763 \layout Enumerate
765 Ctrl-click on the .tgz file to select it.
766 \layout Enumerate
768 Click the middle button in the xterm window to paste the name of the file
769  into the command.
770 \layout Enumerate
772 Press Return in the xterm to execute the command.
773 \layout Subsection
776 \begin_inset LatexCommand \label{sec: Toolbar}
778 \end_inset 
780 The toolbar
781 \layout Standard
783 By default, each window has a toolbar along the top.
784  You can disable this (or make it larger) from the Options window.
785  The four buttons on the toolbar are:
786 \layout Standard
787 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
788 multicol5
789 5 3 0 0 -1 -1 -1 -1
790 1 1 0 0
791 1 1 0 0
792 0 1 0 0
793 0 1 0 0
794 0 1 0 0
795 8 1 0 "" ""
796 2 1 1 "4.5cm" ""
797 2 0 1 "4.5cm" ""
798 0 8 0 1 0 0 0 "" ""
799 0 2 0 1 0 0 0 "" ""
800 0 2 0 1 0 0 0 "" ""
801 0 8 0 1 0 0 0 "" ""
802 0 2 0 1 0 0 0 "" ""
803 0 8 0 1 0 0 0 "" ""
804 0 8 0 1 0 0 0 "" ""
805 0 2 0 1 0 0 0 "" ""
806 0 2 0 1 0 0 0 "" ""
807 0 8 0 1 0 0 0 "" ""
808 0 8 0 1 0 0 0 "" ""
809 0 8 0 1 0 0 0 "" ""
810 0 8 0 1 0 0 0 "" ""
811 0 8 0 1 0 0 0 "" ""
812 0 8 0 1 0 0 0 "" ""
814 Icon
815 \newline 
816 Action
817 \newline 
818 Other action
819 \newline 
820 Up arrow
821 \newline 
822 Change to parent directory
823 \newline 
824 Show parent in a new window
825 \newline 
826 House
827 \newline 
828 Change to home directory
829 \newline 
830 Show home in a new window
831 \newline 
832 Looping arrows
833 \newline 
834 Reread the directory contents
835 \newline 
836 Open a new window
837 \newline 
838 Information
839 \newline 
840 Show ROX-Filer's help files
841 \newline 
842 Same
843 \layout Standard
846 \latex latex 
848 \backslash 
849 noindent 
850 \latex default 
851 You may also use either of the other buttons to perform the `Other action'.
852  If the 'New window on button 1' option is turned on then the `Action' and
853  `Other action' of the first two are swapped.
854 \layout Standard
856 Dragging files to the Up or Home icons acts just like dragging them into
857  the directory which the button leads to.
858 \layout Subsection
860 The menus
861 \layout Standard
863 You can open a menu by right clicking
864 \begin_float footnote 
865 \layout Standard
867 If the Use `RISC OS mouse bindings' option is on then use the middle button
868  instead.
869 \end_float 
870  over a panel or filer window.
871  Here is a full description of each choice and what it does:
872 \layout Standard
873 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
874 multicol5
875 6 2 0 0 -1 -1 -1 -1
876 1 1 0 0
877 1 1 0 0
878 0 1 0 0
879 0 1 0 0
880 0 1 0 0
881 0 1 0 0
882 8 1 0 "" ""
883 2 1 1 "8cm" ""
884 0 8 0 1 0 0 0 "" ""
885 0 8 0 1 0 0 0 "" ""
886 0 8 0 1 0 0 0 "" ""
887 0 8 0 1 0 0 0 "" ""
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 2 0 1 0 0 0 "" ""
892 0 8 0 1 0 0 0 "" ""
893 0 8 0 1 0 0 0 "" ""
894 0 8 0 1 0 0 0 "" ""
895 0 8 0 1 0 0 0 "" ""
897 Entry
898 \newline 
899 Action
900 \newline 
901 Select All
902 \newline 
903 Select every item in this window.
904 \newline 
905 Clear Selection
906 \newline 
907 Unselect every item in this window.
908 \newline 
909 Options...
910 \newline 
911 Configure ROX-Filer.
912 \newline 
913 New Directory...
914 \newline 
915 Create a new directory in this one.
916 \newline 
917 Xterm Here
918 \newline 
919 Open an xterm with its current directory set to this directory.
920 \layout Subsubsection
922 The display menu
923 \layout Standard
924 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
925 multicol5
926 15 2 0 0 -1 -1 -1 -1
927 1 1 0 0
928 1 1 0 0
929 0 1 0 0
930 0 1 0 0
931 0 1 1 0
932 0 1 1 0
933 0 1 1 0
934 0 1 0 0
935 0 1 0 0
936 0 1 0 0
937 0 1 0 0
938 0 1 0 0
939 0 1 0 0
940 0 1 0 0
941 0 1 1 0
942 8 1 0 "" ""
943 2 1 1 "10cm" ""
944 0 8 0 1 0 0 0 "" ""
945 0 2 0 1 0 0 0 "" ""
946 0 8 0 1 0 0 0 "" ""
947 0 2 1 1 0 0 0 "" ""
948 0 8 0 1 0 0 0 "" ""
949 0 8 0 1 0 0 0 "" ""
950 0 8 0 1 0 0 0 "" ""
951 0 8 0 1 1 0 0 "" ""
952 0 8 0 1 0 0 0 "" ""
953 0 8 0 1 1 0 0 "" ""
954 0 8 0 1 0 0 0 "" ""
955 0 8 0 1 1 0 0 "" ""
956 0 8 0 1 0 0 0 "" ""
957 0 8 0 1 0 0 0 "" ""
958 0 8 0 1 0 0 0 "" ""
959 0 8 0 1 0 0 0 "" ""
960 0 8 0 1 0 0 0 "" ""
961 0 8 0 1 0 0 0 "" ""
962 0 8 0 1 0 0 0 "" ""
963 0 2 0 1 0 0 0 "" ""
964 0 8 0 1 0 0 0 "" ""
965 0 8 0 1 0 0 0 "" ""
966 0 8 0 1 0 0 0 "" ""
967 0 8 0 1 0 0 0 "" ""
968 0 8 0 1 0 0 0 "" ""
969 0 8 0 1 0 0 0 "" ""
970 0 8 0 1 0 0 0 "" ""
971 0 8 0 1 1 0 0 "" ""
972 0 8 0 1 0 0 0 "" ""
973 0 8 0 1 0 0 0 "" ""
975 Entry
976 \newline 
977 Action
978 \newline 
979 Large Icons
980 \newline 
981 Each object in the directory is shown as a large icon with its name below.
982 \newline 
983 Small Icons
984 \newline 
985 Items are drawn smaller than usual, allowing you to see more files at once.
986 \latex latex 
988 \backslash 
990 \latex default 
992 \newline 
993 Large, With...
994 \newline 
995 Entries are displayed along with some extra details:
996 \newline 
998 \newline 
1000 \series bold 
1001 Summary
1002 \series default 
1003  shows the file permissions, owner, group, size and modification time.
1004 \newline 
1006 \newline 
1008 \series bold 
1009 Sizes
1010 \series default 
1011  shows just the size of each file (not directories).
1012 \newline 
1014 \newline 
1016 \series bold 
1017 Size Bars
1018 \series default 
1019  displays a bar indicating the size of each file.
1020  This is on a log scale.
1021 \newline 
1022 Small, With...
1023 \newline 
1024 As above, but with a smaller icon and all on one line.
1025 \newline 
1026 Sort by Name
1027 \newline 
1028 Items are arranged by name.
1029  There is an option to make this case-sensitive.
1030 \newline 
1031 Sort by Type
1032 \newline 
1033 Items are grouped by their types and then sorted by name within the groups.
1034 \newline 
1035 Sort by Date
1036 \newline 
1037 Most recently modified first.
1038 \newline 
1039 Sort by Size
1040 \newline 
1041 Largest first.
1042 \newline 
1043 Show Hidden
1044 \newline 
1045 If on, files beginning with a dot are shown, otherwise they are hidden.
1046 \newline 
1047 Refresh
1048 \newline 
1049 Rereads the contents of the directory and details of all the files in it.
1050 \newline 
1052 \newline 
1053 Use this if the display becomes out-of-date.
1054 \layout Standard
1057 \latex latex 
1059 \backslash 
1060 noindent
1061 \backslash 
1063 \backslash 
1064 thinspace{}
1065 \latex default 
1066 If ROX-Filer was unable to find ImLib
1067 \begin_inset LatexCommand \cite{ImLib}
1069 \end_inset 
1071  when it was compiled then the icons are shown cropped rather than scaled.
1072  Get ImLib and recompile if you want it to look nice.
1073 \layout Subsubsection
1076 \begin_inset LatexCommand \label{sec: Permissions}
1078 \end_inset 
1080 Permissions
1081 \layout Standard
1083 The permissions display, shown in Full Info mode, is made up of four groups
1084  of three flags.
1085  Each flag is displayed as a letter if it is on and a dash (--) if not.
1086  The first three characters show the permissions for the owner of the file,
1087  the second for other members of the file's group and the third for everyone
1088  else.
1089  Whichever group applies to the ROX-Filer process itself is shown underlined.
1090  The fourth group shows any special flags.
1091 \layout Standard
1093 The meanings of the characters are:
1094 \layout Description
1096 r Permission to read the contents of a file, or the names of files in a
1097  directory.
1098 \layout Description
1100 w Permission to alter the contents of a file, or change which names appear
1101  in a directory.
1102 \layout Description
1104 x Permission to run the file as a program, or refer to the files listed
1105  within the directory.
1106 \layout Description
1108 U This program executes with the 
1109 \emph on 
1110 effective user ID
1111 \emph toggle 
1112  of its owner rather than the person who ran it.
1113 \layout Description
1115 G This program executes with the 
1116 \emph on 
1117 effective group ID
1118 \emph toggle 
1119  of its group, regardless of who ran it.
1120 \layout Description
1122 T Entries in this directory can only be altered or removed by the people
1123  who own the files even if they have write permission on the directory itself.
1124 \layout Standard
1126 For example, `
1127 \family typewriter 
1128 \bar under 
1130 \bar default 
1131 ,rwx,r-x/---
1132 \family default 
1133 ' means that the owner of the file is the same as the effective user of
1134  ROX-Filer (basically, you own the file), you and members of the file's
1135  group have read, write and execute permission and other people have only
1136  read and execute permission.
1137  There are no special flags set.
1138 \layout Standard
1140 The rules which determine which permissions apply may vary slightly between
1141  operating systems, but a rough guide is:
1142 \layout Itemize
1144 If the
1145 \emph on 
1146  effective user ID
1147 \emph toggle 
1148  of the process is equal to the file's owner, then the owner permissions
1149  apply.
1150 \layout Itemize
1152 Otherwise, if the 
1153 \emph on 
1154 effective group ID
1155 \emph toggle 
1156  of the process is equal to the file's group OR the file's group is one
1157  of the process's 
1158 \emph on 
1159 supplemental groups
1160 \emph toggle 
1161  then the group permissions apply.
1162 \layout Itemize
1164 Otherwise, the `other' permissions apply.
1165  The 
1166 \emph on 
1167 real user ID
1168 \emph toggle 
1169  and 
1170 \emph on 
1171 real group ID
1172 \emph toggle 
1173  have no effect (except that a process may set its real IDs to its effective
1174  IDs).
1175 \layout Subsubsection
1177 The selection menu
1178 \layout Standard
1180 All of these work in the same way --- if you open the menu with some items
1181  selected then the operation applies to those items.
1182  If you open then menu over an item while there is no selection then that
1183  item is temporarily selected.
1184  If you choose one of these while there is no selection at all then the
1185  window goes into `target mode'; the operation happens to the next item
1186  you click on.
1187  Click on the window background, press Escape, or click with the right mouse
1188  button to cancel target mode.
1189  Target mode is mainly useful with the `Single click navigation' option
1190  and keys bound to the various menu entries.
1191 \layout Standard
1192 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1193 multicol5
1194 21 2 0 0 -1 -1 -1 -1
1195 1 1 0 0
1196 1 1 0 0
1197 0 1 0 0
1198 0 1 0 0
1199 0 1 0 0
1200 0 1 1 0
1201 0 1 1 0
1202 0 1 1 0
1203 0 1 0 0
1204 0 1 0 0
1205 0 0 0 0
1206 0 1 1 0
1207 0 1 0 0
1208 0 1 0 0
1209 0 1 0 0
1210 0 1 1 0
1211 0 1 1 0
1212 0 1 0 0
1213 0 1 1 0
1214 0 1 0 0
1215 0 1 0 0
1216 8 1 0 "" ""
1217 2 1 1 "10cm" ""
1218 0 8 0 1 0 0 0 "" ""
1219 0 8 0 1 0 0 0 "" ""
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 2 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 2 0 1 1 0 0 "" ""
1228 0 8 0 1 0 0 0 "" ""
1229 0 2 0 1 1 0 0 "" ""
1230 0 8 0 1 0 0 0 "" ""
1231 0 2 0 1 1 0 0 "" ""
1232 0 8 0 1 0 0 0 "" ""
1233 0 8 0 1 0 0 0 "" ""
1234 0 8 0 1 0 0 0 "" ""
1235 0 8 0 1 0 0 0 "" ""
1236 0 8 0 1 0 0 0 "" ""
1237 0 8 0 1 0 0 0 "" ""
1238 0 8 0 1 0 0 0 "" ""
1239 0 8 0 1 1 0 0 "" ""
1240 0 8 0 1 0 0 0 "" ""
1241 0 8 0 1 0 0 0 "" ""
1242 0 8 0 1 0 0 0 "" ""
1243 0 8 0 1 0 0 0 "" ""
1244 0 8 0 1 0 0 0 "" ""
1245 0 8 0 1 0 0 0 "" ""
1246 0 8 0 1 0 0 0 "" ""
1247 0 8 0 1 1 0 0 "" ""
1248 0 8 0 1 0 0 0 "" ""
1249 0 8 0 1 1 0 0 "" ""
1250 0 8 0 1 0 0 0 "" ""
1251 0 8 0 1 0 0 0 "" ""
1252 0 8 0 1 0 0 0 "" ""
1253 0 8 0 1 1 0 0 "" ""
1254 0 8 0 1 0 0 0 "" ""
1255 0 8 0 1 0 0 0 "" ""
1256 0 8 0 1 0 0 0 "" ""
1257 0 8 0 1 0 0 0 "" ""
1258 0 8 0 1 0 0 0 "" ""
1259 0 8 0 1 0 0 0 "" ""
1261 Entry
1262 \newline 
1263 Action
1264 \newline 
1265 Copy...
1266 \newline 
1267 Make a copy of this object.
1268 \newline 
1269 Rename...
1270 \newline 
1271 Change the name used for this object, or move it between directories.
1272 \newline 
1273 Link...
1274 \newline 
1275 Create a symbolic link to this name.
1276 \newline 
1277 Shift Open
1278 \newline 
1279 Opens applications as directories, files as text/plain, mount points
1280 \newline 
1282 \newline 
1283 by mounting or unmounting them and symlinks by opening the directory
1284 \newline 
1286 \newline 
1287 containing the thing they point to.
1288 \newline 
1290 \newline 
1291 This is the same effect as clicking with Shift held down.
1292 \newline 
1293 Help
1294 \newline 
1295 Explain what kind of thing is selected.
1296  For applications, display the help files.
1297 \newline 
1298 Info
1299 \newline 
1300 Display extra information about this object.
1301 \newline 
1302 Set Run Action...
1303 \newline 
1304 Allows you to set the default program to use when opening files of this
1305  type.
1306 \newline 
1308 \newline 
1309 See section 
1310 \begin_inset LatexCommand \ref{sec: RunAction}
1312 \end_inset 
1314  for details.
1315 \newline 
1316 Open VFS
1317 \newline 
1318 Open the file as if it was a directory --- see section 
1319 \begin_inset LatexCommand \ref{sec: vfs}
1321 \end_inset 
1324 \newline 
1325 Mount
1326 \newline 
1327 Mount or unmount each mount point selected.
1328 \newline 
1329 Delete
1330 \newline 
1331 Remove all the selected entries from the directory.
1332 \newline 
1334 \newline 
1335 Subdirectories will have their contents deleted first.
1336 \newline 
1338 \newline 
1339 Deleting symlinks only removes the link, not the thing it points to.
1340 \newline 
1341 Disk Usage
1342 \newline 
1343 Count the sizes of all the selected items.
1344  Directories also have their
1345 \newline 
1347 \newline 
1348 contents counted.
1349  Symlinks count themselves, not the things they point to.
1350 \newline 
1351 Permissions
1352 \newline 
1353 Allows you to change the permissions for the selected files.
1354 \newline 
1355 Find
1356 \newline 
1357 Search for files by specifying various conditions --- see section 
1358 \begin_inset LatexCommand \ref{sec: Searching}
1360 \end_inset 
1363 \layout Subsubsection
1365 The window menu
1366 \layout Standard
1367 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1368 multicol5
1369 11 2 0 0 -1 -1 -1 -1
1370 1 1 0 0
1371 1 1 0 0
1372 0 1 0 0
1373 0 1 0 0
1374 0 1 0 0
1375 0 1 0 0
1376 0 1 0 0
1377 0 1 0 0
1378 0 1 1 0
1379 0 1 0 0
1380 0 1 0 0
1381 8 1 0 "" ""
1382 2 1 1 "8cm" ""
1383 0 8 0 1 0 0 0 "" ""
1384 0 8 0 1 0 0 0 "" ""
1385 0 8 0 1 0 0 0 "" ""
1386 0 2 0 1 0 0 0 "" ""
1387 0 8 0 1 0 0 0 "" ""
1388 0 8 0 1 0 0 0 "" ""
1389 0 8 0 1 0 0 0 "" ""
1390 0 8 0 1 0 0 0 "" ""
1391 0 8 0 1 0 0 0 "" ""
1392 0 8 0 1 0 0 0 "" ""
1393 0 8 0 1 0 0 0 "" ""
1394 0 8 0 1 0 0 0 "" ""
1395 0 8 0 1 0 0 0 "" ""
1396 0 8 0 1 0 0 0 "" ""
1397 0 8 0 1 0 0 0 "" ""
1398 0 8 0 1 1 0 0 "" ""
1399 0 8 0 1 0 0 0 "" ""
1400 0 8 0 1 0 0 0 "" ""
1401 0 8 0 1 0 0 0 "" ""
1402 0 8 0 1 0 0 0 "" ""
1403 0 8 0 1 0 0 0 "" ""
1404 0 8 0 1 0 0 0 "" ""
1406 Entry
1407 \newline 
1408 Action
1409 \newline 
1410 Parent, New Window
1411 \newline 
1412 Open a new window displaying this window's parent.
1413 \newline 
1414 Parent, Same Window
1415 \newline 
1416 As above, but reuse this window.
1417 \newline 
1418 New Window
1419 \newline 
1420 Open another window onto this directory.
1421 \newline 
1422 Close Window
1423 \newline 
1424 Close this window.
1425 \newline 
1426 Enter Path...
1427 \newline 
1428 Open the path-entry box (see section 
1429 \begin_inset LatexCommand \ref{sec: mini}
1431 \end_inset 
1434 \newline 
1435 Shell Command...
1436 \newline 
1437 Open the shell command box (see section 
1438 \begin_inset LatexCommand \ref{sec: mini}
1440 \end_inset 
1443 \newline 
1445 \newline 
1447 \newline 
1449 \newline 
1451 \newline 
1452 Select If...
1453 \newline 
1454 Select just those files that match the given pattern --- see section 
1455 \begin_inset LatexCommand \ref{sec: SelectIf}
1457 \end_inset 
1460 \newline 
1461 Show ROX-Filer help
1462 \newline 
1463 Same as selecting ROX-Filer and choosing `Help' from the menu.
1464 \layout Subsection
1466 The pinboard and panels
1467 \layout Standard
1469 Sections 
1470 \begin_inset LatexCommand \ref{run_pin}
1472 \end_inset 
1474  and 
1475 \begin_inset LatexCommand \ref{run_pan}
1477 \end_inset 
1479  explain how to turn the pinboard and panels on.
1480  Once on, you may drop icons from filer windows onto the them to pin them
1481  up.
1482  Clicking on a pinned file acts just like clicking on it in a filer window.
1483  You can drag pinned icons just like normal icons and you can right-click
1484  on one to see the popup menu.
1485 \layout Standard
1487 Drag pinned icons with the middle mouse button to move them around (they
1488  snap to a grid on the pinboard).
1489  Changes to the pinboard and panel layouts are automatically saved.
1490  Clicking on pinned icons with Control held down selects and unselects them.
1491  Click on the background to unselect them all.
1492 \layout Standard
1494 If the panel has so many icons that they can't all be shown at once then
1495  you can scroll it by dragging the blank area in the middle.
1496 \layout Standard
1499 \series bold 
1500 IMPORTANT: 
1501 \series default 
1502 Pinning a file does 
1503 \series bold 
1505 \series default 
1506  copy it, it merely creates a shortcut to the original file.
1507  If you delete the file, then you've lost it! Removing a pinned file from
1508  its pinboard or panel only removes the link.
1509  This is different to most other filers...
1510 \layout Subsubsection
1512 The panel and pinboard menus
1513 \layout Standard
1515 These menus are both the same, and very simple:
1516 \layout Standard
1517 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1518 multicol5
1519 6 2 0 0 -1 -1 -1 -1
1520 1 1 0 0
1521 1 0 0 0
1522 1 0 0 0
1523 1 0 0 0
1524 1 0 0 0
1525 1 1 0 0
1526 8 1 0 "" ""
1527 2 1 1 "8cm" ""
1528 0 8 1 0 0 0 0 "" ""
1529 0 8 1 0 0 0 0 "" ""
1530 0 8 1 0 0 0 0 "" ""
1531 0 8 1 0 0 0 0 "" ""
1532 0 8 1 0 0 0 0 "" ""
1533 0 2 1 0 0 0 0 "" ""
1534 0 8 1 0 0 0 0 "" ""
1535 0 8 1 0 0 0 0 "" ""
1536 0 8 1 0 0 0 0 "" ""
1537 0 8 1 0 0 0 0 "" ""
1538 0 8 1 0 0 0 0 "" ""
1539 0 8 1 0 0 0 0 "" ""
1541 Entry
1542 \newline 
1543 Action
1544 \newline 
1545 ROX-Filer Help
1546 \newline 
1547 Open the directory containing ROX-Filer's documentation.
1548 \newline 
1549 ROX-Filer Options...
1550 \newline 
1551 Show the configuration options for ROX-Filer.
1552 \newline 
1553 Open Home Directory
1554 \newline 
1555 Show your home directory.
1556 \newline 
1557 Show Help
1558 \newline 
1559 Show the documentation for the selected application.
1560 \newline 
1561 Remove Item(s)
1562 \newline 
1563 Remove the selected items from the panel.
1564 \layout Subsection
1567 \begin_inset LatexCommand \label{sec: vfs}
1569 \end_inset 
1571 Virtual file systems
1572 \layout Standard
1574 Some types of file can be represented as a directory.
1575  A typical example is a zip file, which contains an entire directory structure
1576  in compressed form.
1577  It is often useful to be able to open up such a file as if it was a real
1578  directory, and the VFS system allows you to do this.
1579 \layout Standard
1581 To use this feature you must have one or both of the following:
1582 \layout Itemize
1584 A system (such as PODFUK
1585 \begin_inset LatexCommand \cite{PODFUK}
1587 \end_inset 
1589 ) which causes the kernel to support various Virtual File Systems directly.
1590  This is the best option since all programs will be able to access the contents
1591  of the VFS.
1592  You will require root access to install such a system, however, and it
1593  is not available on all platforms.
1594 \layout Itemize
1596 Support for the Midnight Commander VFS library compiled into ROX-Filer.
1597  This happens automatically when you compile ROX-Filer if it can find the
1598  VFS library --- this means having 
1599 \family typewriter 
1600 libvfs.so
1601 \family default 
1602  (or 
1603 \family typewriter 
1604 libvfs.a
1605 \family default 
1606 ) in a system library directory or in the directory in the environment variable
1608 \family typewriter 
1609 LD_LIBRARY_PATH
1610 \family default 
1612  In this case, you will be able to view the directory structure and copy
1613  files out of it, but not change it.
1614  Support for this may be added later.
1615  Midnight Commander is part of the GNOME project.
1616 \layout Standard
1618 Note that using the `Open VFS' menu is simply a short-cut for using the
1619  path-entry box (explained below), so if you want to use a VFS not listed
1620  on the menu you can type in the path directly, eg:
1621 \layout Standard
1624 \family typewriter 
1625 /home/fred/archive.zip#uzip/
1626 \layout Standard
1629 \latex latex 
1631 \backslash 
1632 noindent 
1633 \latex default 
1634 Don't forget the final slash!
1635 \layout Subsubsection
1637 Step by step example of adding VFS support
1638 \layout Standard
1640 This assumes that you have the Midnight Commander source in a directory
1641  called `mc'.
1642  You might need to replace 
1643 \family typewriter 
1644 libvfs.so 
1645 \family default 
1646 with 
1647 \family typewriter 
1648 libvfs.a
1649 \family default 
1651 \layout LyX-Code
1653 $ cd mc
1654 \layout LyX-Code
1656 $ ./configure
1657 \layout LyX-Code
1659 $ cd vfs
1660 \layout LyX-Code
1662 $ make libvfs.so
1663 \layout Itemize
1665 If you have the root password then install the library in a system library
1666  directory as normal.
1667 \layout Itemize
1669 If not,
1670 \begin_deeper 
1671 \layout LyX-Code
1673 $ mkdir ~/lib
1674 \layout LyX-Code
1676 $ cp libvfs.so ~/lib
1677 \layout LyX-Code
1679 $ cd ~/Apps/ROX-Filer
1680 \layout Standard
1682 Edit the 
1683 \family typewriter 
1684 AppRun
1685 \family default 
1686  file to include this as the 
1687 \emph on 
1688 second
1689 \emph toggle 
1690  line:
1691 \layout LyX-Code
1693 LD_LIBRARY_PATH=${HOME}/lib; export LD_LIBRARY_PATH
1694 \layout Standard
1696 This will ensure that ROX-Filer will look for the library in the new 
1697 \family typewriter 
1698 ~/lib
1699 \family default 
1700  directory.
1701  Finally, recompile:
1702 \layout LyX-Code
1704 $ ./AppRun --compile
1705 \layout LyX-Code
1708 \layout LyX-Code
1710 checking for mc_stat in -lvfs...
1711  yes
1712 \layout Standard
1714 If you saw that line then it's worked! Well done!
1715 \end_deeper 
1716 \layout Subsection
1719 \begin_inset LatexCommand \label{sec: mini}
1721 \end_inset 
1723 The mini-buffer
1724 \layout Standard
1726 The mini-buffer is a white bar that appears along the bottom of the window
1727  and allows you to enter some text.
1728  Press Escape to get rid of it again.
1729  It behaves in different ways depending on how you invoked it:
1730 \layout Subsubsection
1732 The path-entry box
1733 \layout Standard
1735 This allows you to type in a path directly.
1736  As you type the display is updated to show the item entered visually.
1737  The main use is to find a file in a large directory quickly, but you can
1738  also use it for navigating between directories, or for selecting a full
1739  pathname from somewhere else and pasting it directly into the path-entry
1740  box.
1741 \layout Standard
1742 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1743 multicol5
1744 4 2 0 0 -1 -1 -1 -1
1745 1 1 0 0
1746 0 1 0 0
1747 0 1 0 0
1748 0 1 0 0
1749 8 1 0 "" ""
1750 2 1 1 "8cm" ""
1751 0 8 0 1 0 0 0 "" ""
1752 0 8 0 1 0 0 0 "" ""
1753 0 8 0 1 0 0 0 "" ""
1754 0 8 0 1 0 0 0 "" ""
1755 0 8 0 1 0 0 0 "" ""
1756 0 8 0 1 0 0 0 "" ""
1757 0 8 0 1 0 0 0 "" ""
1758 0 8 0 1 0 0 0 "" ""
1761 \newline 
1762 Action
1763 \newline 
1764 Return
1765 \newline 
1766 Open the currently selected item.
1767 \newline 
1769 \newline 
1770 Shell-style tab completion.
1771 \newline 
1772 Up, Down
1773 \newline 
1774 Select the previous/next matching entry.
1775 \layout Standard
1777 If you start entering a name beginning with a `.' then the `Show Hidden'
1778  feature is temporarily turned on so that the file can be shown.
1779 \layout Standard
1781 Tab completion tries to fill in as many characters for you as it can.
1782  For example, if there are two files in a directory called `save-mail-nov-1999'
1783  and `save-mail-dec-1999' then typing 'save' and pressing Tab will expand
1784  `save' to `save-mail-' and beep to indicate that the match is not complete.
1785  If you use tab completion on a directory and it is unique then the filer
1786  will automatically change into the directory.
1787  This behavior should be familiar to shell users.
1788 \layout Subsubsection*
1790 Example
1791 \layout Standard
1793 Let's say you want to locate the documentation for Wine in the directory
1794  /usr/doc (which is usually very large).
1795  Here's how you could do it:
1796 \layout Enumerate
1798 Open the minibuffer by choosing 'Enter Path' from the Window menu.
1799  I usually bind this function to the slash (`/') key.
1800 \layout Enumerate
1802 Press CTRL-U to delete the existing contents --- this moves you to the root
1803  directory.
1804 \layout Enumerate
1806 Type `u
1807 \latex latex 
1809 \backslash 
1810 Tab{}
1811 \latex default 
1813 \latex latex 
1815 \backslash 
1816 Tab{}
1817 \latex default 
1819 \latex latex 
1821 \backslash 
1822 Tab{}
1823 \latex default 
1825  As you type, the cursor will move to the correct subdirectory.
1826  If it beeps when you press Tab then you need to supply more letters.
1827 \layout Subsubsection
1829 The shell command box
1830 \layout Standard
1832 This provides a quick way of entering shell commands if you don't want to
1833  open an xterm.
1834  If you don't know what shell commands are, skip this section!
1835 \layout Standard
1837 Just type in the command and press Return to execute it.
1838  Up and Down arrows move through previously entered commands.
1839  Tab does shell-style completion.
1840  Clicking on an item inserts its name into the minibuffer.
1841  If some items are selected then they are assigned to the positional parameters
1843 \family typewriter 
1845 \family default 
1847 \family typewriter 
1849 \family default 
1850 , etc.
1851 \layout Subsubsection*
1853 Examples
1854 \layout Standard
1856 To untar a 
1857 \family typewriter 
1858 .tgz
1859 \family default 
1860  archive:
1861 \layout Enumerate
1863 Open the minibuffer by choosing `Shell Command' from the Window menu.
1864  I usually bind this to the bang (`!') key.
1865 \layout Enumerate
1867 Type `
1868 \family typewriter 
1869 tar xzf
1870 \family default 
1871 ' and click on the file.
1872  The leading space is automatically inserted.
1873 \layout Enumerate
1875 Press Return to execute it.
1876 \layout Standard
1878 To print all the selected files:
1879 \layout Enumerate
1881 Open the shell command minibuffer.
1882 \layout Enumerate
1884 Type 
1885 \family typewriter 
1886 `lpr $*
1887 \family default 
1888 ' and press Return.
1889 \layout Subsubsection*
1891 Notes
1892 \layout Itemize
1894 Be careful; you will not be asked to confirm! If in doubt, start the command
1895  with `
1896 \family typewriter 
1897 echo
1898 \family default 
1899 ' so that it will be displayed rather than executed.
1900 \layout Itemize
1902 The above command won't work if some of the files contain spaces --- use
1904 \family typewriter 
1905 lpr 
1906 \latex latex 
1908 \latex default 
1910 \latex latex 
1912 \family default 
1913 \latex default 
1914 ' instead to be safe.
1915 \layout Itemize
1917 `sh' is always used as the name of the shell to run (mainly because bash
1918  and csh treat positional parameters differently).
1919  However, PATH is searched to find it so you can still use another shell
1920  if you want by naming it sh and putting it in your path.
1921 \layout Itemize
1923 Commands execute in the background, so you can say:
1924 \begin_deeper 
1925 \layout LyX-Code
1927 sleep 240; xmessage Time to go!
1928 \end_deeper 
1929 \layout Subsubsection
1932 \begin_inset LatexCommand \label{sec: SelectIf}
1934 \end_inset 
1936 The conditional selection box
1937 \layout Standard
1939 Use this if you want to automatically select all files in the directory
1940  which match a condition.
1941  The syntax for the conditions is given in section 
1942 \begin_inset LatexCommand \ref{sec: Searching}
1944 \end_inset 
1947  For example, to select all files larger than 5Mb:
1948 \layout Enumerate
1950 Open the Select If minibuffer.
1951 \layout Enumerate
1953 Type `
1954 \family typewriter 
1955 Size > 5Mb
1956 \family default 
1957 ' and press Return.
1958 \layout Standard
1960 Just those files over 5 Mb in size will be selected.
1961  The expressions you can enter are in the same form as described in section
1963 \begin_inset LatexCommand \ref{sec: Searching}
1965 \end_inset 
1967 , except that `
1968 \family typewriter 
1969 prune
1970 \family default 
1971 ' has no effect since the contents of directories are never checked anyway.
1972 \layout Subsection
1974 Action windows
1975 \layout Standard
1977 Action windows are those boxes that appear while you're doing a Copy/Move/Link/e
1978 tc operation.
1979  The status line at the top of the window shows the current directory or
1980  object that the window is processing.
1981  The scrolling area below is the log area --- it shows what has been done
1982  and may display questions here.
1983 \layout Standard
1985 At the bottom are four buttons and, sometimes, some options.
1986  The buttons work as follows:
1987 \layout Description
1989 Quiet will do simple operations without asking you to confirm each one.
1990  By turning this on and off during an operation you can use it like a pause
1991  button.
1992 \layout Description
1994 Yes answers yes to the question displayed in the log area.
1995 \layout Description
1997 No answers no to the question displayed in the log area.
1998 \layout Description
2000 Abort kills the current operation (if any) and closes the action window.
2001 \layout Standard
2003 You can control which actions get started automatically (without you having
2004  to click on Quiet at the start) from the Options window.
2005 \layout Subsubsection
2007 Action window options
2008 \layout Standard
2010 Some actions have options, which appear as option boxes at the bottom of
2011  the window.
2012  They are:
2013 \layout Itemize
2015 `Force' means that the filer won't treat non-writeable files as special.
2016  Normally, it confirms the deletion even if Quiet is pressed.
2017  Note that you still can't remove files from non-writeable directories because
2018  in that case you really don't have permission.
2019 \layout Itemize
2021 `Brief' prevents the filer logging a message every time it does something.
2022  Use this to speed things up if large numbers of messages are being logged.
2023 \layout Itemize
2025 `Recurse' means that doing something to a directory will also do the same
2026  thing to all its contents, and the contents of any subdirectories, and
2027  so on.
2028 \layout Subsection
2031 \begin_inset LatexCommand \label{sec: Searching}
2033 \end_inset 
2035 Searching
2036 \layout Standard
2038 The Find feature looks through all the selected files and directories and
2039  any subdirectories (recursively) looking for items that match a particular
2040  expression.
2041 \layout Standard
2043 If you know the name of a file then just enter it in the `Expression:' box,
2044  enclosed in single quotes.
2045  For example, to find a file called `log' you would enter:
2046 \layout LyX-Code
2048 'log'
2049 \layout Standard
2051 Remember to use normal quotes, not double quotes (
2052 \family typewriter 
2054 \begin_inset Quotes eld
2055 \end_inset 
2058 \family default 
2059 ) or back-quotes (
2060 \family typewriter 
2062 \family default 
2064 \layout Standard
2066 As the filer finds matching files they are added to the results list.
2067  Clicking on an entry in the list opens a viewer showing the file you clicked
2068  on.
2069  The filer will use the same window to view other results (so, if you want
2070  the results shown in separate windows you must explicitly create a new
2071  window from the Window menu).
2072 \layout Subsubsection
2074 Wildcards
2075 \layout Standard
2077 You can also put shell-style wildcard characters inside the quotes, for
2078  example:
2079 \layout LyX-Code
2081 '*.html'
2082 \layout LyX-Code
2084 'Report.*'
2085 \layout LyX-Code
2087 'Draft[1-5]'
2088 \layout LyX-Code
2090 'main.[ch]'
2091 \layout Standard
2093 Look at the 
2094 \family typewriter 
2095 glob(7)
2096 \family default 
2097  manpage if you want to know more about shell wildcards.
2098 \layout Standard
2100 If the pattern you enter contains a slash ('/') character then the pattern
2101  is matched against the file's full path, otherwise only the leafname is
2102  used.
2103  That is, 
2104 \family typewriter 
2105 '*tmp*'
2106 \family default 
2107  will find 'tmp' and 'tmpfile' but not '/tmp/file' --- 
2108 \family typewriter 
2109 '/*tmp*'
2110 \family default 
2111  will find all three.
2112 \layout Subsubsection
2114 Simple tests
2115 \layout Standard
2117 As well as finding files by their names you can also find them by various
2118  other attributes.
2119  Note that `file' is used here to mean anything that can appear in the filesyste
2120 m --- including directories, devices and so on.
2121 \layout Standard
2124 \latex latex 
2126 \backslash 
2127 smallskip
2128 \backslash 
2129 noindent 
2130 \latex default 
2131 These look at the type of the item being checked:
2132 \layout Description
2134 IsReg matches any regular (ie, normal) file.
2135 \layout Description
2137 IsLink matches symlinks.
2138 \layout Description
2140 IsDir matches directories.
2141 \layout Description
2143 IsChar matches character device files.
2144 \layout Description
2146 IsBlock matches block device files.
2147 \layout Description
2149 IsDev matches block or character device files.
2150 \layout Description
2152 IsPipe matches pipes.
2153 \layout Description
2155 IsSocket matches sockets.
2156 \layout Standard
2158 These look at the permissions set on the file --- see section 
2159 \begin_inset LatexCommand \ref{sec: Permissions}
2161 \end_inset 
2164 \layout Description
2166 IsSUID matches files which have the Set-UID bit set.
2167 \layout Description
2169 IsSGID matches files which have the Set-GID bit set.
2170 \layout Description
2172 IsSticky matches files with the sticky bit set,
2173 \layout Description
2175 IsReadable matches files which you can read from.
2176 \layout Description
2178 IsWriteable matches files which you can write to.
2179 \layout Description
2181 IsExecutable matches files which you can execute.
2182 \layout Standard
2184 And a couple of other useful ones:
2185 \layout Description
2187 IsEmpty finds empty files (ie, those whose length is 0 bytes).
2188 \layout Description
2190 IsMine finds files which you own.
2191 \layout Subsubsection
2193 Logic operators
2194 \layout Standard
2196 You can combine the above tests in various ways to perform more advanced
2197  searches.
2198  An expression is actually made up of a list of 
2199 \emph on 
2200 cases
2201 \emph toggle 
2202 , separated by commas.
2203  The filer will try to match each case in turn until one matches or there
2204  are no more cases left.
2205  For example, to search for files with several possible endings:
2206 \layout LyX-Code
2208 '*.gif', '*.htm', '*.html'
2209 \layout Standard
2211 Further, each of the cases is actually a list of conditions.
2212  The case only matches if all of its conditions are met.
2213  So, to find a directory called 
2214 \family typewriter 
2216 \family default 
2217  or a regular file ending in 
2218 \family typewriter 
2220 \family default 
2222 \layout LyX-Code
2224 IsDir 'lib', IsReg '*.so'
2225 \layout Standard
2227 You can negate a condition by putting a 
2228 \family typewriter 
2230 \family default 
2231  in front of it and you can use a sub-expression as a condition by bracketing
2232  it, like this:
2233 \layout LyX-Code
2235 ! (IsDir, IsReg)
2236 \layout LyX-Code
2238 !IsDir !IsReg
2239 \layout LyX-Code
2241 Not isdir and not isreg
2242 \layout Standard
2244 All three do the same thing.
2245 \layout Subsubsection
2247 Comparisons
2248 \layout Standard
2250 You can also compare various values using the operators 
2251 \family typewriter 
2252 <, <=, =, !=, >, >=
2253 \family default 
2254  (for less-than, less-than-or-equal-to, equal-to, not-equal-to, greater-than
2255  and greater-than-or-equal-to).
2256  When comparing times, you may find it helpful to use 
2257 \family typewriter 
2258 after 
2259 \family default 
2260 and 
2261 \family typewriter 
2262 before
2263 \family default 
2264  instead of 
2265 \family typewriter 
2267 \family default 
2268  and 
2269 \family typewriter 
2271 \family default 
2272  to make things clearer.
2273 \layout Standard
2275 The following are read from the file being checked and may be used for the
2276  values being compared:
2277 \layout Description
2279 atime The time that the file was last accessed.
2280 \layout Description
2282 ctime The time that the file's status was last changed.
2283 \layout Description
2285 mtime The time that the file's contents were last modified.
2286 \layout Description
2288 size The size of the file.
2289 \layout Description
2291 inode The file's inode (index) number.
2292 \layout Description
2294 nlinks The number of links to this file.
2295  That is, the number of directory entries which refer to this file.
2296  Note that symlinks don't count as references.
2297 \layout Description
2299 uid The User ID of the file.
2300 \layout Description
2302 gid The Group ID of the file.
2303 \layout Description
2305 blocks The number of disk blocks being used by the file.
2306 \layout Standard
2308 Times are measured as seconds since the Unix Epoch (00:00:00 UTC, January
2309  1, 1970).
2310  Sizes are in bytes.
2311  When specifying constants to compare these values with you may use various
2312  keywords to scale the value:
2313 \layout Description
2315 Byte(s) has no effect, but looks better.
2316 \layout Description
2318 Kb multiplies by 1024, so 2Kb is the same as 2048.
2319 \layout Description
2321 Mb multiplies by 
2322 \begin_inset Formula \( 1024^{2} \)
2323 \end_inset 
2325 , ie 1024 Kb.
2326 \layout Description
2328 Sec(s) has no effect, but looks nice.
2329 \layout Description
2331 Min(s) multiplies by 60 to get minutes.
2332 \layout Description
2334 Hour(s),\SpecialChar ~
2335 Day(s),\SpecialChar ~
2336 Week(s),\SpecialChar ~
2337 Year(s) likewise convert to the relevant unit.
2338 \layout Description
2340 Ago makes the time in the past relative to when the check is done.
2341 \layout Description
2343 Hence makes the time in the future.
2344 \layout Description
2346 Now is short for `
2347 \family typewriter 
2348 0 Secs Hence
2349 \family default 
2351 \layout Standard
2353 Some examples should make this all a bit clearer!
2354 \layout LyX-Code
2356 mtime after 1 day ago
2357 \layout LyX-Code
2359 size > 10 Mb
2360 \layout LyX-Code
2362 IsReg and nlinks > 1
2363 \layout Standard
2365 The first finds files modified within the last 24 hours.
2366  You could use 
2367 \family typewriter 
2369 \family default 
2370  instead of 
2371 \family typewriter 
2372 after,
2373 \family default 
2374 but it's not so clear what is meant.
2375  The second finds files larger than 10 Mb and the last finds regular files
2376  with more than one directory entry.
2377 \layout Standard
2379 Be careful though --- the filer doesn't check the context of the modifiers,
2380  so 
2381 \family typewriter 
2382 size > 1 day ago
2383 \family default 
2384  is allowed, although it doesn't make much sense! Also, forgetting to use
2386 \family typewriter 
2388 \family default 
2389  or 
2390 \family typewriter 
2391 hence
2392 \family default 
2393  will cause odd effects (the time will be measured relative to the Epoch
2394  rather than the current time).
2395  Finally, don't use = with times --- 
2396 \family typewriter 
2397 atime = 1 day ago
2398 \family default 
2399  looks for a file accessed 
2400 \emph on 
2401 exactly
2402 \emph toggle 
2403  86400 seconds ago...
2404 \layout Subsubsection
2406 Specials
2407 \layout Description
2409 System(Command) executes `Command' on the file.
2410  The test succeeds if the command returns an exit status of zero.
2411  A `%' character in `Command' is replaced by the full path of the file being
2412  checked.
2413  System is a very slow test to perform, so do it last if possible.
2414  For example, if you're looking for a .c file containing the word `main',
2415  do
2416 \begin_deeper 
2417 \layout LyX-Code
2419 '*.c' system(grep -q main
2420 \latex latex 
2422 \backslash 
2423 thinspace{}
2424 \latex default 
2426 \latex latex 
2428 \backslash 
2429 thinspace{}"
2430 \latex default 
2432 \layout Standard
2434 so that the grep is only performed for files ending in .c (as opposed to
2435  only checking that the file ends in .c if it contains the word `main').
2436 \end_deeper 
2437 \layout Description
2439 Prune Always fails!
2440 \begin_float footnote 
2441 \layout Standard
2443 Note that this is the opposite of the 
2444 \noun on 
2445 find(1)
2446 \noun toggle 
2447  command.
2448 \end_float 
2449  However, if it gets evaluated at all then it prevents the filer from checking
2450  inside the current directory.
2451  Remember the order in which the filer checks the expression!
2452 \layout Standard
2454 Examples:
2455 \layout LyX-Code
2457 '*.old' system(echo rm %)
2458 \layout LyX-Code
2460 'src' prune, '*.c'
2461 \layout Standard
2463 The first displays a command to delete each file ending in 
2464 \family typewriter 
2465 .old
2466 \family default 
2467 ; you can either paste the results into an xterm to execute them or run
2468  the search again without the 
2469 \family typewriter 
2470 echo
2471 \family default 
2473  It's always a good idea to use 
2474 \family typewriter 
2475 echo
2476 \family default 
2477  first with dangerous commands! The second looks for 
2478 \family typewriter 
2480 \family default 
2481  files, but does not bother checking inside directories called 
2482 \family typewriter 
2484 \family default 
2486  The expression is evaluated like this:
2487 \layout Standard
2488 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
2490 \begin_inset Figure size 216 180
2491 file Prune.eps
2492 height 2 2.50
2493 flags 9
2495 \end_inset 
2498 \layout Subsection
2500 Options
2501 \layout Standard
2503 You can configure various aspects of ROX-Filer from the Options box.
2504  Choose `Options...' from a filer window menu to open it.
2506 \layout Standard
2508 At the bottom of the window are four buttons:
2509 \layout Description
2511 Save puts all your choices into effect, and also saves them into your Choices
2512  directory for next time ROX-Filer is loaded.
2513  ROX-Filer will never save any preferences to disk unless you click on the
2514  `Save' button in the options window.
2515  Exactly where choices are loaded from and saved to is controlled by the
2517 \family typewriter 
2518 CHOICESPATH
2519 \family default 
2520  environment variable --- see 
2521 \begin_inset LatexCommand \cite{Choices}
2523 \end_inset 
2525  for details.
2526 \layout Description
2528 OK puts your choices into effect without writing anything to disk.
2529 \layout Description
2531 Apply works like OK, but without closing the Options window.
2532 \layout Description
2534 Cancel closes the options box and forgets any changes you made.
2535 \layout Standard
2537 Many of the options in the Options window have tooltips --- hold the mouse
2538  pointer over the option to find out what it does.
2539 \layout Subsubsection
2541 Pinboard options
2542 \layout Standard
2544 If you are using the pinboard features (see section 
2545 \begin_inset LatexCommand \ref{run_pin}
2547 \end_inset 
2549 ) then you can choose how the text under each icon is displayed.
2550  If you have a fairly uniform background then you may like to choose `No
2551  background', which simply draws the text directly over the desktop background.
2552  However, users with more `noisy' backdrops may find such text hard to read;
2553  selecting `Rectangular background slab' will draw a solid rectangle behind
2554  the text to make it easier to read.
2555 \layout Standard
2557 You may also change the foreground and background colours used for the text
2558  by clicking on the colour slabs in the Options window.
2559 \layout Subsubsection
2561 Action window options
2562 \layout Standard
2564 You can choose to start some operations automatically, without waiting for
2565  you to click on Quiet.
2566  Select each operation that you want to auto-start here.
2567 \layout Subsubsection
2569 Display options
2570 \layout Itemize
2572 `Ignore case when sorting' treats upper and lower case letters as equivalent
2573  when sorting.
2574  If this is off then `Zoo' comes before `animal', for example.
2575 \layout Itemize
2577 `Max Large Icons width' sets the maximum width for a file's name in `Large
2578  Icons' display mode.
2579  Text wider than this will be truncated (a small red vertical bar indicates
2580  when text has been truncated).
2581 \layout Itemize
2583 `Max Small Icons width' --- as above, but applies when the display is in
2584  `Small Icons' display mode.
2585 \layout Standard
2587 The last display style and sort type you chose will also be saved as the
2588  defaults for next time if you click on Save.
2589 \layout Subsubsection
2591 Toolbar options
2592 \layout Standard
2594 `Toolbar type for new windows' allows you to choose what kind of toolbar
2595  will be used for future filer windows (the currently open windows are not
2596  affected).
2598 \series bold 
2599 None
2600 \series default 
2601  means that new windows will not have a toolbar, 
2602 \series bold 
2603 Normal
2604 \series default 
2605  provides a small bar of icons, and 
2606 \series bold 
2607 Large
2608 \series default 
2609  displays larger icons with textual labels.
2610  See section 
2611 \begin_inset LatexCommand \ref{sec: Toolbar}
2613 \end_inset 
2615  for details.
2616 \layout Subsubsection
2618 Filer window options
2619 \layout Itemize
2621 `Unique windows' prevents you from having two windows showing the same directory.
2622  Opening a second view onto a directory closes the first.
2623 \layout Itemize
2625 `Initial window height' determines how large newly opened filer windows
2626  will be.
2627  The height is given as the number of rows at Large Icons size.
2628 \layout Subsubsection
2630 Drag-And-Drop options
2631 \layout Itemize
2633 ROX-Filer uses the standard XDND protocol for drag-and-drop.
2634  This protocol recommends that URIs should contain the hostname of the computer
2635  that the resource is on so that the program receiving the data can determine
2636  whether it can get the data directly or whether it must go via the X-server.
2637  However, many older programs (particularly GNOME applications) get confused
2638  by the hostname and fail to load the data correctly.
2639  If `Don't use hostnames' is on then the hostname part is omitted and ROX-Filer
2640  will work with these applications BUT you can't drag data to a program
2641  running on a different machine.
2642 \layout Itemize
2644 `Allow dragging to icons in filer windows' controls what happens when you
2645  drop files onto icons in filer windows.
2646  If on then drops onto directories will save the data inside the directory,
2647  while dropping onto programs will invoke the program on that data.
2648  If off then drops anywhere inside a filer window act like drops onto the
2649  window background --- that is, the data will be saved into the directory
2650  being displayed.
2651 \layout Itemize
2653 `Directories spring open' controls what happens when you hold a file over
2654  a directory in a filer window or on the pinboard.
2655  If on, the directory will `spring open' after a short pause, allowing you
2656  to navigate to any directory during a drag.
2657  You can also hold the pointer over the Home and Up buttons on the toolbar
2658  for a similar effect.
2659  You need to have the previous option enabled for this to have any effect
2660  on files displayed in a directory.
2661 \layout Itemize
2663 `Spring delay' sets how long, in thousanths of a second, the filer will
2664  wait before spring opening a directory as described above.
2665  If the above option is turned off, then this has no effect.
2666 \layout Subsubsection
2668 Menu options
2669 \layout Standard
2671 The `Xterm here' program is the one used when you choose `Xterm here' from
2672  the menu.
2673  You can replace it with another program such as `gnome-terminal' or `konsole'
2674  if you like.
2675  In fact, any program will do, but note that you cannot pass any options
2676  to the program at present.
2677 \layout Subsubsection
2679 Mouse bindings
2680 \layout Itemize
2682 `New window on button 1' swaps the actions of the two non-menu buttons when
2683  opening directories.
2684  This is provided for people who are used to the RISC OS mouse bindings.
2685 \layout Itemize
2687 `Menu on button 2' swaps the actions of buttons 2 and 3 so that the middle
2688  button brings up the menus.
2689  This is provided for people who are used to the RISC OS mouse bindings.
2690 \layout Itemize
2692 `Single-click navigation' treats a single click over an item as if it was
2693  a double click.
2694  This allows you to move around, run applications and open files without
2695  double clicking.
2696  To select a file 
2697 \emph on 
2698 without
2699 \emph toggle 
2700  opening it you must hold down CTRL while you click.
2701 \layout Section
2703 Filetypes
2704 \layout Standard
2706 All files have a MIME type in the form `
2707 \family typewriter 
2708 text/plain
2709 \family default 
2711  Here, `
2712 \family typewriter 
2713 text
2714 \family default 
2715 ' is the 
2716 \emph on 
2717 media type
2718 \emph toggle 
2719  and `
2720 \family typewriter 
2721 plain
2722 \family default 
2723 ' is the 
2724 \emph on 
2725 sub-type
2726 \emph toggle 
2728  ROX-Filer uses a file's name to decide what its MIME type is, and then
2729  uses the MIME type to decide what icon to give it and what program to use
2730  when you open the file.
2731 \layout Subsection
2734 \begin_inset LatexCommand \label{sec: RunAction}
2736 \end_inset 
2738 The run action box
2739 \layout Standard
2741 This box appears when you choose `Set Run Action...' from the File menu, and
2742  is used to set which application is loaded when you click on a file.
2743 \layout Standard
2745 For example, let's say you want to set things up so that opening a `.gif'
2746  file loads it into the Gimp.
2747  First, right-click over a gif image to open the menu and choose `Set Run
2748  Action...' from the File submenu.
2749  Then, you have a choice of two methods to set the run action:
2750 \layout Subsubsection*
2752 Setting the run action by drag-and-drop
2753 \layout Standard
2755 Drag the Gimp (from a filer window, a panel or the pinboard) onto the area
2756  marked `Drop a suitable application here'.
2757  From now on, clicking on a GIF file will load it into the Gimp.
2758 \layout Subsubsection*
2760 Setting the run action by entering a shell command
2761 \layout Standard
2763 Type:
2764 \layout LyX-Code
2766 gimp 
2767 \begin_inset Quotes eld
2768 \end_inset 
2771 \begin_inset Quotes erd
2772 \end_inset 
2775 \layout Standard
2777 into the box labelled `Enter a shell command' and press Return.
2779 \family typewriter 
2781 \family default 
2782 ' will be replaced by the name of the file you click on when this command
2783  is used.
2784  As before, clicking on any GIF image will now load it into the Gimp.
2785 \layout Subsubsection
2787 Setting the default media-type handlers
2788 \layout Standard
2791 \emph toggle 
2792 Whichever method you use to set the action you have the choice of setting
2793  the run action just for that type, or setting the default for all files
2794  with that media-type which don't already have a specific action.
2795  Since the Gimp can load many types of image, it makes sense to select the
2796  `Set default for all `image/<anything>'' option so you don't have to do
2797  it again for image/jpeg files and so on.
2798  However, this only affects types that don't already have a specific action
2799  (ie, those that would have brought up an error box if you tried to open
2800  them).
2801 \layout Subsection
2803 How filetypes are stored
2804 \layout Standard
2806 ROX-Filer uses three sub-directories in your Choices directory for filetypes:
2807 \layout Description
2809 MIME-info contains files which specify what the MIME type for a file should
2810  be, based on its extention.
2811  All the files in all the MIME-info directories are scanned when the filer
2812  loads.
2813  ROX-Filer comes with many such rules --- these are installed into the MIME-info
2814  directory by the install script.
2815 \begin_deeper 
2816 \layout Standard
2818 Many applications now come with a file called `something.mime'; copy these
2819  files into your MIME-info directory to make ROX-Filer automatically recognise
2820  the new extensions.
2821 \end_deeper 
2822 \layout Description
2824 MIME-types contains symlinks, one for each MIME type, which point to programs
2825  that can handle files of that type.
2826  To set what program is run when you click on the file you should normally
2827  use the `Set Run Action' feature (see section 
2828 \begin_inset LatexCommand \ref{sec: RunAction}
2830 \end_inset 
2833  However, you can also set the actions manually --- for example, to make
2834  opening an HTML file load it into Netscape:
2835 \begin_deeper 
2836 \layout Enumerate
2838 Find the Netscape application and go to `Link...' on the menu.
2839 \layout Enumerate
2841 Enter `text_html' as the name for the link and drag the icon from the Link
2842  box into the MIME-types directory.
2843 \layout Standard
2845 You can also put actual programs in here as well as links if you want to.
2846 \end_deeper 
2847 \layout Description
2849 MIME-icons contains the images used to display each type of file.
2850  So the filer will try to display an HTML file using the icon `MIME-icons/text_h
2851 tml.xpm'.
2852 \layout Standard
2854 In both MIME-types and MIME-icons directories you can also provide default
2855  actions/images for each media type.
2856  For example, if `text_html' isn't found then the filer will try simply
2857  using `text'.
2858 \layout Section
2860 Application directories
2861 \layout Standard
2863 An application directory is a directory which can be run as an application.
2864  It contains all the resources of an application --- source code, binaries,
2865  documentation and so on.
2866  Keeping everything in one place make installation and uninstallation much
2867  easier for users.
2868  You can also keep multiple versions of a program by simply having several
2869  application directories.
2870  You may move and rename them as you please.
2871  Application directories are easier to use and install and are more secure
2872  too
2873 \begin_float footnote 
2874 \layout Standard
2876 Because you can compile an application as a user and then simply copy it
2877  as root rather than having to run an install script you are free from the
2878  danger of running untrusted code as root.
2879  All you have to watch out for is setuid binaries.
2880 \end_float 
2882 \layout Standard
2884 To make a directory executable all you need to do is create a executable
2885  file called `AppRun' inside it.
2886  This file is run when the user double-clicks on the application.
2887  You should also provide `AppIcon.xpm' (which will be used as the image for
2888  the application) and `Help' (which is a directory that is opened when the
2889  user asks for help).
2890  Finally (for security reasons), an application directory must have the
2891  same owner as the AppRun file inside.
2892  Have a look at the ROX-Filer application directory for a full example.
2893 \layout Section
2895 Internationalisation
2896 \layout Subsection
2899 \begin_inset LatexCommand \label{sec: LANG}
2901 \end_inset 
2903 Selecting a translation
2904 \layout Standard
2906 ROX-Filer is able to translate many of its messages, provided suitable translati
2907 on files are provided.
2908  If you know that your language is supported then simply set the 
2909 \family typewriter 
2910 LANG
2911 \family default 
2912  environment variable to the appropriate code for your country before starting
2913  the filer, eg:
2914 \layout LyX-Code
2916 LANG=fr; export LANG
2917 \layout LyX-Code
2919 ROX-Filer/AppRun
2920 \layout Standard
2922 To see which translations are currently provided, open the ROX-Filer application
2923  directory (hold down Shift and double-click) and look inside the `
2924 \family typewriter 
2925 Messages
2926 \family default 
2927 ' subdirectory.
2928 \layout Subsection
2930 Creating a new translation
2931 \layout Enumerate
2933 Go into the 
2934 \family typewriter 
2936 \family default 
2937  directory and create the file `
2938 \family typewriter 
2939 messages.pot
2940 \family default 
2942 \begin_deeper 
2943 \layout LyX-Code
2945 $ cd ROX-Filer/src
2946 \layout LyX-Code
2948 $ make messages.pot
2949 \end_deeper 
2950 \layout Enumerate
2952 Copy the file into the `
2953 \family typewriter 
2955 \family default 
2956 ' subdirectory under 
2957 \family typewriter 
2959 \family default 
2960  as 
2961 \begin_inset Formula \( \langle \hbox {name}\rangle \hbox {\tt .po} \)
2962 \end_inset 
2965  Eg, if your language is referred to as `ml' (`my language'):
2966 \begin_deeper 
2967 \layout LyX-Code
2969 $ cp messages.pot po/ml.po
2970 \end_deeper 
2971 \layout Enumerate
2973 Load the copy into a text editor.
2974 \layout Enumerate
2976 Fill in the translations, which are all blank to start with.
2977 \layout Enumerate
2979 Run the `
2980 \family typewriter 
2981 make-mo
2982 \family default 
2983 ' script to create the binary file which ROX-Filer can use.
2984  You will need the GNU gettext package for this.
2985  If you don't have it then just send me the 
2986 \family typewriter 
2988 \family default 
2989  file and I'll convert it for you.
2990 \begin_deeper 
2991 \layout LyX-Code
2993 $ cd ROX-Filer/src/po
2994 \layout LyX-Code
2996 $ ./make-mo ml
2997 \layout LyX-Code
2999 Created file ../../Messages/ml.gmo OK
3000 \end_deeper 
3001 \layout Enumerate
3003 Set the LANG variable to `
3004 \family typewriter 
3006 \family default 
3007 ' and restart the filer (see section 
3008 \begin_inset LatexCommand \ref{sec: LANG}
3010 \end_inset 
3013 \layout Enumerate
3015 Submit the 
3016 \family typewriter 
3018 \family default 
3019  file to me so that I can include it in future releases of the filer.
3020 \layout Subsection
3022 Updating an existing translation
3023 \layout Enumerate
3025 Go into the directory containing the 
3026 \family typewriter 
3028 \family default 
3029  files and run the 
3030 \family typewriter 
3031 update-po
3032 \family default 
3033  script.
3034  This checks the source code for new and changed strings and updates all
3035  the translation files.
3036 \begin_deeper 
3037 \layout LyX-Code
3039 $ cd ROX-Filer/src/po
3040 \layout LyX-Code
3042 $ ./update-po
3043 \end_deeper 
3044 \layout Enumerate
3046 Edit the file by hand as before, filling in the new blanks and updating
3047  out-of-date translations.
3048  Look out for `fuzzy' entries where 
3049 \family typewriter 
3050 update-po
3051 \family default 
3052  has made a guess; check it's correct and remove the `fuzzy' line.
3053 \layout Enumerate
3055 Run 
3056 \family typewriter 
3057 make-mo
3058 \family default 
3059  as before.
3060 \layout Enumerate
3062 Submit the updated file to me.
3063 \layout Standard
3065 See the 
3066 \family typewriter 
3067 gettext
3068 \family default 
3069  info page for more instructions on creating a translation.
3070 \layout Section
3072 Hacking
3073 \layout Standard
3075 This is a quick start guide for people who want to modify the source code.
3076  If you make useful changes or fix bugs, please send patches to me or to
3077  the mailing list.
3078  Tell me which version you're using!
3079 \layout Subsection
3081 Compiling
3082 \layout Standard
3084 The first time you compile the program you need to do `
3085 \family typewriter 
3086 AppRun --compile
3087 \family default 
3088 ', but in future you only need to run `
3089 \family typewriter 
3090 make
3091 \family default 
3092 ' in the `
3093 \family typewriter 
3095 \family default 
3096 ' directory when you change the 
3097 \family typewriter 
3099 \family default 
3100  and 
3101 \family typewriter 
3103 \family default 
3104  files.
3105  You might want to run `
3106 \family typewriter 
3107 make depend
3108 \family default 
3109 ' too.
3110 \layout Subsection
3112 Creating and applying patches
3113 \layout Standard
3115 When people make small modifications to the sources they will often distribute
3116  them as 
3117 \emph on 
3118 patch files
3119 \emph toggle 
3120  --- usually on the mailing list.
3121  To apply a patch, go into the 'src' directory and run patch with the patch
3122  file.
3123  Then recompile, like this:
3124 \layout LyX-Code
3126 $ cd ROX-Filer/src
3127 \layout LyX-Code
3129 $ patch < patchfile
3130 \layout LyX-Code
3132 $ ../AppRun --compile
3133 \layout Standard
3135 You can remove the patch by simply repeating the above sequence --- patch
3136  will detect that the patch is already applied and offer to remove it.
3137 \layout Standard
3139 To create a patch you should first get the latest version of the filer from
3140  CVS (instructions on using CVS can be found on the web-site).
3141  Modify the program as you please.
3142  Create the patch using `
3143 \family typewriter 
3144 cvs diff
3145 \family default 
3146 ' from the appropriate directory:
3147 \layout LyX-Code
3149 $ cvs diff -c > my_patch
3150 \layout Standard
3152 This creates a human- and machine-readable patch file.
3153  Submit this to the mailing list.
3154  The are many reasons for posting patches rather that the modified files:
3155 \layout Itemize
3157 They are smaller, and hence shouldn't bounce.
3158  They are also quicker to download for people with slow connections.
3159 \layout Itemize
3161 People can see what they're getting into before applying them!
3162 \layout Itemize
3164 Patches can (usually) be applied to slightly modified versions of the sources.
3165  This means that people can apply several patches without each new one overwriti
3166 ng the others.
3167 \layout Subsection
3169 Autoconf
3170 \layout Standard
3172 Here's a quick explanation of the autoconf system in case you haven't used
3173  it before.
3174  See `info autoconf' for full details.
3175 \layout Standard
3177 There's a file called 'configure.in' which contains various tests (`info
3178  autoconf').
3179  You run `autoconf' and it reads through the file and generates a shell
3180  script to perform the tests, saving it as `configure'.
3181  `configure' is normally distributed with the program because not everyone
3182  has autoconf.
3183 \layout Standard
3185 You then run `configure' (in fact, let the `AppRun' script do it because
3186  it passes it some arguments), which performs all the tests.
3187  It reads in `Makefile.in' and `config.h.in' and fills in the missing values
3188  with the test results to produce `Makefile' and `config.h'.
3189 \layout Standard
3191 You run `make', which creates .o files from the .c files and links to produce
3192  ROX-Filer.
3193 \layout Subsection
3195 Data-structures
3196 \layout Standard
3198 The diagram below shows some of the major structures found in the filer
3199  and the relationships between them.
3200 \layout Standard
3201 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
3203 \begin_inset Figure size 595 314
3204 file Structs.eps
3205 width 3 100.00
3206 flags 9
3208 \end_inset 
3211 \layout Standard
3213 To summarise, each window (or panel) has its own 
3214 \series bold 
3215 FilerWindow
3216 \series default 
3217  structure.
3218  This structure has pointers to a 
3219 \series bold 
3220 Collection
3221 \series default 
3222  (which is the widget which actually displays the files) and to a 
3223 \series bold 
3224 Directory
3225 \series default 
3226 , which is used to cache the directory contents.
3227  Both 
3228 \series bold 
3229 Collection
3230 \series default 
3231  and 
3232 \series bold 
3233 Directory
3234 \series default 
3235  have pointers to (the same) 
3236 \series bold 
3237 DirItem
3238 \series default 
3239 s, each of which corresponds to one filesystem object.
3240  Several 
3241 \series bold 
3242 FilerWindow
3243 \series default 
3244 s may share the same 
3245 \series bold 
3246 Directory
3247 \series default 
3249  While scanning is in progress the 
3250 \series bold 
3251 Directory
3252 \series default 
3253  keeps a list of the new items it has found (
3254 \emph on 
3255 new_items
3256 \emph toggle 
3257 ) and the items which have changed in some way (
3258 \emph on 
3259 up_items
3260 \emph toggle 
3262  It periodically notifies the filer window of the changes-so-far by calling
3263  all the functions in the 
3264 \emph on 
3265 users
3266 \emph toggle 
3267  list (use 
3268 \emph on 
3269 attach()
3270 \emph toggle 
3271  and 
3272 \emph on 
3273 detach()
3274 \emph toggle 
3275  to add and remove functions to or from the list).
3276 \layout Bibliography
3277 \bibitem {ROX}
3280 \emph on 
3281 The ROX desktop
3282 \emph toggle 
3283 , <http://rox.sourceforge.net>
3284 \layout Bibliography
3285 \bibitem {GTK+}
3288 \emph on 
3289 GTK+ Toolkit
3290 \emph toggle 
3291 , <http://www.gtk.org>
3292 \layout Bibliography
3293 \bibitem {GNOME}
3296 \emph on 
3297 The GNOME desktop
3298 \emph toggle 
3299 , <http://www.gnome.org>
3300 \layout Bibliography
3301 \bibitem {DND}
3304 \emph on 
3305 The Drag and Drop protocol
3306 \emph toggle 
3307 , <http://www.its.caltech.edu/~jafl/xdnd/>
3308 \layout Bibliography
3309 \bibitem {XDS}
3312 \emph on 
3313 The X Direct Save protocol
3314 \emph toggle 
3315 , <http://www.its.caltech.edu/~jafl/xds/>
3316 \layout Bibliography
3317 \bibitem {Choices}
3320 \emph on 
3321 The ROX Choices system
3322 \emph toggle 
3323 , <http://rox.sourceforge.net/choices.php3>
3324 \layout Bibliography
3325 \bibitem {enlightenment}
3328 \emph on 
3329 Enlightenment,
3330 \emph toggle 
3331  <http://www.enlightenment.org>
3332 \layout Bibliography
3333 \bibitem {PODFUK}
3336 \emph on 
3337 POrtable Dodgy Filesystems in Userland (hacK), 
3338 \emph toggle 
3339 <http://atrey.karlin.mff.cuni.cz/~pavel/podfuk/podfuk.html>
3340 \layout Bibliography
3341 \bibitem {ImLib}
3344 \emph on 
3345 ImLib
3346 \emph toggle 
3347 , <http://www.gnome.org>
3348 \the_end