r328: Changed the install script so that the CVS directories don't get installed.
[rox-filer.git] / ROX-Filer / src / Docs / Manual.lyx
blob70e124edd50750688f9d8542350295d94bd9f441
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.3
192 \layout Standard
194 To compile:
195 \layout Enumerate
197 Change to the directory containing the ROX-Filer subdirectory.
198 \layout Enumerate
200 Run the AppRun script with the 
201 \family typewriter 
202 --compile
203 \family default 
204  option, like this:
205 \begin_deeper 
206 \layout LyX-Code
208 $ ROX-Filer/AppRun --compile
209 \end_deeper 
210 \layout Enumerate
212 ROX-Filer will perform various checks to find out what kind of system it
213  is being run on and will then compile.
214  If it doesn't work then please e-mail me and complain! Tell me what kind
215  of system you have and what errors were reported.
216  If you manage to fix the problem yourself then please e-mail me the fix.
217 \begin_deeper 
218 \layout Standard
220 The executables files are stored inside the ROX-Filer directory in a different
221  subdirectory for each platform.
222  Therefore, you can compile the same application on several different types
223  of machine and then run it from any of them using the AppRun script.
224  This is particularly useful in a network environment.
225 \end_deeper 
226 \layout Enumerate
228 The filer needs some shared files to work --- icons for the various file
229  types, rules for determining file types and default run actions.
230  These are installed, along with the filer itself, by the '
231 \family typewriter 
232 install.sh
233 \family default 
234 ' script supplied with the filer.
235  Run it like this:
236 \begin_deeper 
237 \layout LyX-Code
239 $ su
240 \layout LyX-Code
242 [ enter root password ]
243 \layout LyX-Code
245 $ ./install.sh
246 \layout Standard
248 If you don't have the root password then don't worry --- skip the '
249 \family typewriter 
251 \family default 
252 ' step and follow the instructions for installing into your home directory.
254 \end_deeper 
255 \layout Standard
257 You can now run the filer by running the AppRun script without any options,
258  like this:
259 \layout LyX-Code
261 $ ROX-Filer/AppRun
262 \layout Standard
264 A window should appear and display the contents of the current directory.
265  If you opted to install the `rox' script then you can simply do this instead:
266 \layout LyX-Code
268 $ rox
269 \layout Standard
271 If you installed the script into your home directory then you may need to
272  set your PATH environment variable so that the shell can find it.
273  For example, if you installed it into a directory called `
274 \family typewriter 
276 \family default 
277 ' in your home directory, use this:
278 \layout LyX-Code
280 $ PATH=${HOME}/bin:${PATH}; export PATH
281 \layout Standard
283 or (if you are using the 
284 \noun on 
285 csh(1)
286 \noun default 
287  shell):
288 \layout LyX-Code
290 $ setenv PATH ${HOME}/bin:${PATH}
291 \layout LyX-Code
293 $ rehash
294 \layout Subsection
296 Invoking
297 \layout Standard
299 By default, ROX-Filer will start by displaying the current directory.
300  You can get it to display other directories instead by listing them after
301  the command:
302 \layout LyX-Code
304 $ rox /home /usr /usr/local
305 \layout Standard
307 You can also use it to open files, like this:
308 \layout LyX-Code
310 $ rox ~/.xsession
311 \layout Standard
313 The filer supports various options, use `
314 \family typewriter 
316 \family default 
317 ' for a list.
318  All options have long and short forms (eg `
319 \family typewriter 
321 \family default 
322 ' and `
323 \family typewriter 
324 --help
325 \family default 
326 ') --- although on some systems you can only use the short versions.
327 \layout Standard
329 Note that if the same version of the filer is already running on this machine
330  then, by default, it will be used to open the directories and the new copy
331  will exit immediately.
332  You can override this (perhaps because the old copy has stopped responding
333  for some reason) using the `
334 \family typewriter 
335 --new
336 \family default 
337 ' option.
338 \layout Subsubsection
341 \begin_inset LatexCommand \label{run_pin}
343 \end_inset 
345 Pinboard support
346 \layout Standard
348 If you want the filer to manage your desktop background then you use the
350 \family typewriter 
351 --pinboard
352 \family default 
353  option and supply a name for the pinboard, eg:
354 \layout LyX-Code
356 $ rox --pinboard=MyPinboard
357 \layout Standard
359 The pinboard configuration is saved in `
360 \emph on 
361 <Choices>/ROX-Filer/pb_MyPinboard
362 \emph default 
363 ' as soon as you change it in some way (for example, by dropping a file
364  onto the background).
365  You can have as many pinboards as you like and switch between them by running
366  rox again, eg:
367 \layout LyX-Code
369 $ rox --pinboard=MyOtherPinboard
370 \layout Standard
372 To turn off the pinboard again, set the name to an empty string:
373 \layout LyX-Code
375 $ rox --pinboard=
376 \layout Standard
378 See section 
379 \begin_inset LatexCommand \ref{winman}
381 \end_inset 
383  if you have trouble getting the icons to display correctly.
384 \layout Subsubsection
386 Panels
387 \layout Standard
389 If you want a directory to be opened as a panel, put 
390 \family typewriter 
392 \family default 
393  or 
394 \family typewriter 
396 \family default 
397  before the directory (for `bottom' or `top' panels).
398  If you don't know what a panel is, try it and see!
399 \layout LyX-Code
401 $ mkdir ~/Panel
402 \layout LyX-Code
404 $ ln -s $HOME ~/Panel/Home
405 \layout LyX-Code
407 $ rox -b ~/Panel
408 \layout Standard
410 The panel should be displayed in a window without a title bar.
411  If this does not work then see section 
412 \begin_inset LatexCommand \ref{winman}
414 \end_inset 
416  for some ideas.
417 \layout Subsubsection
420 \begin_inset LatexCommand \label{winman}
422 \end_inset 
424 Window manager notes
425 \layout Standard
427 You may have to play around with your window manager a bit to get the pinboard
428  icons and panels to display correctly (eg, without borders and underneath
429  all other windows).
430  In particular, try setting the stacking level / depth to low (or a negative
431  value).
432  Make sure any 'Keep transients above other windows' type options are turned
433  off!
434 \layout Standard
436 If order for the filer to receive mouse clicks on the background (used for
437  the pinboard support) you need a GNOME-compliant window manager.
438  To see if your window manager supports this, try clicking the right mouse
439  button on an unused area of the background.
440  If you get the pinboard menu, all is well.
441 \layout Standard
443 Note for sawfish users: sawfish trys to guess whether you are using GNOME
444  at start-up and only provides support if so.
445  You need to add the line `
446 \family typewriter 
447 (require 'gnome)
448 \family default 
449 ' to you 
450 \family typewriter 
451 .sawfishrc
452 \family default 
453  file (see the sawfish manual for more details).
454 \layout Standard
456 If all else fails, try running rox with the `
457 \family typewriter 
459 \family default 
460 ' options; this overrides window manager control of the icons altogether.
461 \layout Subsection
463 Mouse button and key bindings
464 \layout Standard
466 Quick start:
467 \layout Itemize
469 Click the left
470 \begin_float footnote 
471 \layout Standard
473 This documentation assumes that button--1 is the left button, button--2
474  is the middle button and button--3 is the right button.
475  This is not always the case --- for example, in a left-handed setup.
476 \end_float 
477  mouse button to open files and directories.
478 \layout Itemize
480 Click the right button to get a menu.
481  Click over a file to perform an action on that file.
482 \layout Itemize
484 Drag files between windows to copy (left button) or move (middle button)
485  them.
486 \layout Standard
489 \latex latex 
491 \backslash 
492 noindent 
493 \latex default 
494 By default, the mouse button bindings are designed to fit in with X conventions.
495  However, the behaviour is highly configurable --- have a play in the Options
496  window if you don't like the normal settings.
497  The normal settings behave as follows:
498 \layout Standard
501 \latex latex 
503 \backslash 
504 medskip
505 \layout Standard
506 \LyXTable
507 multicol5
508 19 2 0 0 -1 -1 -1 -1
509 1 1 0 0
510 1 1 0 0
511 0 1 1 0
512 0 1 1 0
513 0 1 0 0
514 0 1 0 0
515 0 1 0 0
516 0 1 1 0
517 0 1 0 0
518 0 1 1 0
519 0 1 0 0
520 0 1 1 0
521 0 1 1 0
522 0 1 0 0
523 0 1 0 0
524 0 1 0 0
525 0 1 0 0
526 0 1 0 0
527 0 1 0 0
528 2 1 0 "3.5cm" ""
529 2 1 1 "9.5cm" ""
530 0 2 0 1 0 0 0 "" ""
531 0 2 0 1 0 0 0 "" ""
532 0 8 0 1 0 0 0 "" ""
533 0 8 0 1 1 0 0 "" ""
534 0 8 0 1 0 0 0 "" ""
535 0 8 0 1 1 0 0 "" ""
536 0 8 0 1 0 0 0 "" ""
537 0 8 0 1 0 0 0 "" ""
538 0 2 0 1 0 0 0 "" ""
539 0 8 0 1 0 0 0 "" ""
540 0 8 0 1 0 0 0 "" ""
541 0 8 0 1 0 0 0 "" ""
542 0 8 0 1 1 0 0 "" ""
543 0 8 0 1 1 0 0 "" ""
544 0 8 0 1 0 0 0 "" ""
545 0 2 0 1 0 0 0 "" ""
546 0 8 0 1 1 0 0 "" ""
547 0 8 0 1 0 0 0 "" ""
548 0 2 0 1 0 0 0 "" ""
549 0 8 0 1 0 0 0 "" ""
550 0 8 0 1 0 0 0 "" ""
551 0 8 0 1 1 0 0 "" ""
552 0 8 0 1 0 0 0 "" ""
553 0 8 0 1 1 0 0 "" ""
554 0 8 0 1 0 0 0 "" ""
555 0 8 0 1 0 0 0 "" ""
556 0 8 0 1 0 0 0 "" ""
557 0 8 0 1 0 0 0 "" ""
558 0 8 0 1 0 0 0 "" ""
559 0 8 0 1 0 0 0 "" ""
560 0 8 0 1 0 0 0 "" ""
561 0 8 0 1 0 0 0 "" ""
562 0 8 0 1 0 0 0 "" ""
563 0 8 0 1 0 0 0 "" ""
564 0 8 0 1 0 0 0 "" ""
565 0 8 0 1 0 0 0 "" ""
566 0 8 0 1 0 0 0 "" ""
567 0 8 0 1 0 0 0 "" ""
569 Key or mouse button
570 \newline 
571 Action
572 \newline 
573 Left button click
574 \newline 
575 Open the file or directory clicked on.
576 \newline 
578 \newline 
579 Hold down Ctrl to select things instead of opening them.
580 \newline 
582 \newline 
583 Hold down Shift to look inside applications, treat files as text, follow
584  symlinks or mount devices.
585 \newline 
586 Middle button click
587 \newline 
588 Same as left click, but open a directory in a new window or close the viewer
589  when opening a file.
590 \newline 
591 Right button click
592 \newline 
593 Open the main menu.
594  Hold down Ctrl while clicking to go directly to the Selection submenu.
595 \newline 
596 Drag an item 
597 \newline 
598 Copy the file(s) to the destination (an application or another filer window).
599 \newline 
600 (left mouse button)
601 \newline 
602 Hold down Shift to move the file, or Ctrl+Shift to create a symbolic link.
603 \newline 
604 Drag an item
605 \newline 
606 As above, but always moves rather than copying or symlinking.
607 \newline 
608 (middle mouse button)
609 \newline 
611 \newline 
612 Drag (not over an item)
613 \newline 
614 Select a group of items by dragging a box around them.
615  With the left mouse button, only the files
616 \newline 
618 \newline 
619 in the box will be selected.
620  If you hold down Ctrl then the boxed items are added to the selection.
621 \newline 
623 \newline 
624 If the other mouse button is used then the boxed items are toggled between
625  selected and unselected.
626 \newline 
627 Backspace
628 \newline 
629 Change to viewing the parent directory.
630 \newline 
631 Cursor keys
632 \newline 
633 Move the cursor around.
634 \newline 
635 Page Up, Page Down
636 \newline 
637 Move up and down in steps of ten rows at a time.
638 \newline 
639 Home, End
640 \newline 
641 Move to the first/last entry in the directory.
642 \newline 
643 Return
644 \newline 
645 Open the item under the cursor.
646  With Shift held down this acts like choosing 'Shift Open' from the menu.
647 \newline 
648 Spacebar
649 \newline 
650 Toggles the item under the cursor between being selected and unselected.
651 \layout Standard
654 \latex latex 
656 \backslash 
657 medskip
658 \backslash 
659 noindent 
660 \latex default 
661 Other keys can easily be defined by opening the menu, moving the pointer
662  over the item you want to use and pressing a key.
663  The key will appear in the menu and can be used from then on.
664  Key bindings are automatically saved when the filer quits.
665 \layout Subsection
667 The selection
668 \layout Standard
670 While items are selected in a ROX-Filer window the filer has the global
671  selection.
672  You can then paste into another window to get the pathnames of the selected
673  files.
674  For example, to extract the files from a .tgz archive on a floppy disk into
675  your home directory:
676 \layout Enumerate
678 Choose `Xterm here' from the menu in your home directory.
679 \layout Enumerate
681 Type `tar xzf ' (but don't press Return)
682 \layout Enumerate
684 Ctrl-click on the .tgz file to select it.
685 \layout Enumerate
687 Click the middle button in the xterm window to paste the name of the file
688  into the command.
689 \layout Enumerate
691 Press Return in the xterm to execute the command.
692 \layout Subsection
695 \begin_inset LatexCommand \label{sec: Toolbar}
697 \end_inset 
699 The toolbar
700 \layout Standard
702 By default, each window has a toolbar along the top.
703  You can disable this (or make it larger) from the Options window.
704  The four buttons on the toolbar are:
705 \layout Standard
706 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
707 multicol5
708 5 3 0 0 -1 -1 -1 -1
709 1 1 0 0
710 1 1 0 0
711 0 1 0 0
712 0 1 0 0
713 0 1 0 0
714 8 1 0 "" ""
715 2 1 1 "4.5cm" ""
716 2 0 1 "4.5cm" ""
717 0 8 0 1 0 0 0 "" ""
718 0 2 0 1 0 0 0 "" ""
719 0 2 0 1 0 0 0 "" ""
720 0 8 0 1 0 0 0 "" ""
721 0 2 0 1 0 0 0 "" ""
722 0 8 0 1 0 0 0 "" ""
723 0 8 0 1 0 0 0 "" ""
724 0 2 0 1 0 0 0 "" ""
725 0 2 0 1 0 0 0 "" ""
726 0 8 0 1 0 0 0 "" ""
727 0 8 0 1 0 0 0 "" ""
728 0 8 0 1 0 0 0 "" ""
729 0 8 0 1 0 0 0 "" ""
730 0 8 0 1 0 0 0 "" ""
731 0 8 0 1 0 0 0 "" ""
733 Icon
734 \newline 
735 Action
736 \newline 
737 Other action
738 \newline 
739 Up arrow
740 \newline 
741 Change to parent directory
742 \newline 
743 Show parent in a new window
744 \newline 
745 House
746 \newline 
747 Change to home directory
748 \newline 
749 Show home in a new window
750 \newline 
751 Looping arrows
752 \newline 
753 Reread the directory contents
754 \newline 
755 Open a new window
756 \newline 
757 Information
758 \newline 
759 Show ROX-Filer's help files
760 \newline 
761 Same
762 \layout Standard
765 \latex latex 
767 \backslash 
768 noindent 
769 \latex default 
770 If the toolbar is in Normal mode (ie, not GNOME mode) then you may also
771  use either of the other buttons to perform the `Other action'.
772  If the 'New window on button 1' option is turned on then the `Action' and
773  `Other action' of the first two are swapped.
774 \layout Subsection
776 The menus
777 \layout Standard
779 You can open a menu by right clicking
780 \begin_float footnote 
781 \layout Standard
783 If the Use `RISC OS mouse bindings' option is on then use the middle button
784  instead.
785 \end_float 
786  over a panel or filer window.
787  Here is a full description of each choice and what it does:
788 \layout Standard
789 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
790 multicol5
791 6 2 0 0 -1 -1 -1 -1
792 1 1 0 0
793 1 1 0 0
794 0 1 0 0
795 0 1 0 0
796 0 1 0 0
797 0 1 0 0
798 8 1 0 "" ""
799 2 1 1 "8cm" ""
800 0 8 0 1 0 0 0 "" ""
801 0 8 0 1 0 0 0 "" ""
802 0 8 0 1 0 0 0 "" ""
803 0 8 0 1 0 0 0 "" ""
804 0 8 0 1 0 0 0 "" ""
805 0 8 0 1 0 0 0 "" ""
806 0 8 0 1 0 0 0 "" ""
807 0 2 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 "" ""
813 Entry
814 \newline 
815 Action
816 \newline 
817 Select All
818 \newline 
819 Select every item in this window.
820 \newline 
821 Clear Selection
822 \newline 
823 Unselect every item in this window.
824 \newline 
825 Options...
826 \newline 
827 Configure ROX-Filer.
828 \newline 
829 New Directory...
830 \newline 
831 Create a new directory in this one.
832 \newline 
833 Xterm Here
834 \newline 
835 Open an xterm with its current directory set to this directory.
836 \layout Subsubsection
838 The display menu
839 \layout Standard
840 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
841 multicol5
842 15 2 0 0 -1 -1 -1 -1
843 1 1 0 0
844 1 1 0 0
845 0 1 0 0
846 0 1 0 0
847 0 1 1 0
848 0 1 1 0
849 0 1 1 0
850 0 1 0 0
851 0 1 0 0
852 0 1 0 0
853 0 1 0 0
854 0 1 0 0
855 0 1 0 0
856 0 1 0 0
857 0 1 1 0
858 8 1 0 "" ""
859 2 1 1 "10cm" ""
860 0 8 0 1 0 0 0 "" ""
861 0 2 0 1 0 0 0 "" ""
862 0 8 0 1 0 0 0 "" ""
863 0 2 1 1 0 0 0 "" ""
864 0 8 0 1 0 0 0 "" ""
865 0 8 0 1 0 0 0 "" ""
866 0 8 0 1 0 0 0 "" ""
867 0 8 0 1 1 0 0 "" ""
868 0 8 0 1 0 0 0 "" ""
869 0 8 0 1 1 0 0 "" ""
870 0 8 0 1 0 0 0 "" ""
871 0 8 0 1 1 0 0 "" ""
872 0 8 0 1 0 0 0 "" ""
873 0 8 0 1 0 0 0 "" ""
874 0 8 0 1 0 0 0 "" ""
875 0 8 0 1 0 0 0 "" ""
876 0 8 0 1 0 0 0 "" ""
877 0 8 0 1 0 0 0 "" ""
878 0 8 0 1 0 0 0 "" ""
879 0 2 0 1 0 0 0 "" ""
880 0 8 0 1 0 0 0 "" ""
881 0 8 0 1 0 0 0 "" ""
882 0 8 0 1 0 0 0 "" ""
883 0 8 0 1 0 0 0 "" ""
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 1 0 0 "" ""
888 0 8 0 1 0 0 0 "" ""
889 0 8 0 1 0 0 0 "" ""
891 Entry
892 \newline 
893 Action
894 \newline 
895 Large Icons
896 \newline 
897 Each object in the directory is shown as a large icon with its name below.
898 \newline 
899 Small Icons
900 \newline 
901 Items are drawn smaller that usual, allowing you to see more files at once.
902 \latex latex 
904 \backslash 
906 \latex default 
908 \newline 
909 Large, With...
910 \newline 
911 Entries are displayed along with some extra details:
912 \newline 
914 \newline 
916 \series bold 
917 Summary
918 \series default 
919  shows the file permissions, owner, group, size and modification time.
920 \newline 
922 \newline 
924 \series bold 
925 Sizes
926 \series default 
927  shows just the size of each file (not directories).
928 \newline 
930 \newline 
932 \series bold 
933 Size Bars
934 \series default 
935  displays a bar indicating the size of each file.
936  This is on a log scale.
937 \newline 
938 Small, With...
939 \newline 
940 As above, but with a smaller icon and all on one line.
941 \newline 
942 Sort by Name
943 \newline 
944 Items are arranged by name.
945  There is an option to make this case-sensitive.
946 \newline 
947 Sort by Type
948 \newline 
949 Items are grouped by their types and then sorted by name within the groups.
950 \newline 
951 Sort by Date
952 \newline 
953 Most recently modified first.
954 \newline 
955 Sort by Size
956 \newline 
957 Largest first.
958 \newline 
959 Show Hidden
960 \newline 
961 If on, files beginning with a dot are shown, otherwise they are hidden.
962 \newline 
963 Refresh
964 \newline 
965 Rereads the contents of the directory and details of all the files in it.
966 \newline 
968 \newline 
969 Use this if the display becomes out-of-date.
970 \layout Standard
973 \latex latex 
975 \backslash 
976 noindent
977 \backslash 
979 \backslash 
980 thinspace{}
981 \latex default 
982 If ROX-Filer was unable to find ImLib
983 \begin_inset LatexCommand \cite{ImLib}
985 \end_inset 
987  when it was compiled then the icons are shown cropped rather than scaled.
988  Get ImLib and recompile if you want it to look nice.
989 \layout Subsubsection
992 \begin_inset LatexCommand \label{sec: Permissions}
994 \end_inset 
996 Permissions
997 \layout Standard
999 The permissions display, shown in Full Info mode, is made up of four groups
1000  of three flags.
1001  Each flag is displayed as a letter if it is on and a dash (--) if not.
1002  The first three characters show the permissions for the owner of the file,
1003  the second for other members of the file's group and the third for everyone
1004  else.
1005  Whichever group applies to the ROX-Filer process itself is shown underlined.
1006  The fourth group shows any special flags.
1007 \layout Standard
1009 The meanings of the characters are:
1010 \layout Description
1012 r Permission to read the contents of a file, or the names of files in a
1013  directory.
1014 \layout Description
1016 w Permission to alter the contents of a file, or change which names appear
1017  in a directory.
1018 \layout Description
1020 x Permission to run the file as a program, or refer to the files listed
1021  within the directory.
1022 \layout Description
1024 U This program executes with the 
1025 \emph on 
1026 effective user ID
1027 \emph toggle 
1028  of its owner rather than the person who ran it.
1029 \layout Description
1031 G This program executes with the 
1032 \emph on 
1033 effective group ID
1034 \emph toggle 
1035  of its group, regardless of who ran it.
1036 \layout Description
1038 T Entries in this directory can only be altered or removed by the people
1039  who own the files even if they have write permission on the directory itself.
1040 \layout Standard
1042 For example, `
1043 \family typewriter 
1044 \bar under 
1046 \bar default 
1047 ,rwx,r-x/---
1048 \family default 
1049 ' means that the owner of the file is the same as the effective user of
1050  ROX-Filer (basically, you own the file), you and members of the file's
1051  group have read, write and execute permission and other people have only
1052  read and execute permission.
1053  There are no special flags set.
1054 \layout Standard
1056 The rules which determine which permissions apply may vary slightly between
1057  operating systems, but a rough guide is:
1058 \layout Itemize
1060 If the
1061 \emph on 
1062  effective user ID
1063 \emph toggle 
1064  of the process is equal to the file's owner, then the owner permissions
1065  apply.
1066 \layout Itemize
1068 Otherwise, if the 
1069 \emph on 
1070 effective group ID
1071 \emph toggle 
1072  of the process is equal to the file's group OR the file's group is one
1073  of the process's 
1074 \emph on 
1075 supplemental groups
1076 \emph toggle 
1077  then the group permissions apply.
1078 \layout Itemize
1080 Otherwise, the `other' permissions apply.
1081  The 
1082 \emph on 
1083 real user ID
1084 \emph toggle 
1085  and 
1086 \emph on 
1087 real group ID
1088 \emph toggle 
1089  have no effect (except that a process may set its real IDs to its effective
1090  IDs).
1091 \layout Subsubsection
1093 The selection menu
1094 \layout Standard
1096 All of these work in the same way --- if you open the menu with some items
1097  selected then the operation applies to those items.
1098  If you open then menu over an item while there is no selection then that
1099  item is temporarily selected.
1100  If you choose one of these while there is no selection at all then the
1101  window goes into `target mode'; the operation happens to the next item
1102  you click on.
1103  Click on the window background, press Escape, or click with the right mouse
1104  button to cancel target mode.
1105  Target mode is mainly useful with the `Single click navigation' option
1106  and keys bound to the various menu entries.
1107 \layout Standard
1108 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1109 multicol5
1110 19 2 0 0 -1 -1 -1 -1
1111 1 1 0 0
1112 1 1 0 0
1113 0 1 0 0
1114 0 1 0 0
1115 0 1 0 0
1116 0 1 1 0
1117 0 1 1 0
1118 0 1 1 0
1119 0 1 0 0
1120 0 1 0 0
1121 0 1 0 0
1122 0 1 0 0
1123 0 1 0 0
1124 0 1 1 0
1125 0 1 1 0
1126 0 1 0 0
1127 0 1 1 0
1128 0 1 0 0
1129 0 1 0 0
1130 8 1 0 "" ""
1131 2 1 1 "10cm" ""
1132 0 8 0 1 0 0 0 "" ""
1133 0 8 0 1 0 0 0 "" ""
1134 0 8 0 1 0 0 0 "" ""
1135 0 8 0 1 0 0 0 "" ""
1136 0 8 0 1 0 0 0 "" ""
1137 0 2 0 1 0 0 0 "" ""
1138 0 8 0 1 0 0 0 "" ""
1139 0 8 0 1 0 0 0 "" ""
1140 0 8 0 1 0 0 0 "" ""
1141 0 2 0 1 1 0 0 "" ""
1142 0 8 0 1 0 0 0 "" ""
1143 0 2 0 1 1 0 0 "" ""
1144 0 8 0 1 0 0 0 "" ""
1145 0 2 0 1 1 0 0 "" ""
1146 0 8 0 1 0 0 0 "" ""
1147 0 8 0 1 0 0 0 "" ""
1148 0 8 0 1 0 0 0 "" ""
1149 0 8 0 1 0 0 0 "" ""
1150 0 8 0 1 0 0 0 "" ""
1151 0 8 0 1 0 0 0 "" ""
1152 0 8 0 1 0 0 0 "" ""
1153 0 8 0 1 0 0 0 "" ""
1154 0 8 0 1 0 0 0 "" ""
1155 0 8 0 1 0 0 0 "" ""
1156 0 8 0 1 0 0 0 "" ""
1157 0 8 0 1 1 0 0 "" ""
1158 0 8 0 1 0 0 0 "" ""
1159 0 8 0 1 1 0 0 "" ""
1160 0 8 0 1 0 0 0 "" ""
1161 0 8 0 1 0 0 0 "" ""
1162 0 8 0 1 0 0 0 "" ""
1163 0 8 0 1 1 0 0 "" ""
1164 0 8 0 1 0 0 0 "" ""
1165 0 8 0 1 0 0 0 "" ""
1166 0 8 0 1 0 0 0 "" ""
1167 0 8 0 1 0 0 0 "" ""
1168 0 8 0 1 0 0 0 "" ""
1169 0 8 0 1 0 0 0 "" ""
1171 Entry
1172 \newline 
1173 Action
1174 \newline 
1175 Copy...
1176 \newline 
1177 Make a copy of this object.
1178 \newline 
1179 Rename...
1180 \newline 
1181 Change the name used for this object, or move it between directories.
1182 \newline 
1183 Link...
1184 \newline 
1185 Create a symbolic link to this name in the same directory.
1186 \newline 
1187 Shift Open
1188 \newline 
1189 Opens applications as directories, files as text/plain, mount points
1190 \newline 
1192 \newline 
1193 by mounting or unmounting them and symlinks by opening the directory
1194 \newline 
1196 \newline 
1197 containing the thing they point to.
1198 \newline 
1200 \newline 
1201 This is the same effect as clicking with Shift held down.
1202 \newline 
1203 Help
1204 \newline 
1205 Explain what kind of thing is selected.
1206  For applications, display the help files.
1207 \newline 
1208 Info
1209 \newline 
1210 Display extra information about this object.
1211 \newline 
1212 Open VFS
1213 \newline 
1214 Open the file as if it was a directory --- see section 
1215 \begin_inset LatexCommand \ref{sec: vfs}
1217 \end_inset 
1220 \newline 
1221 Mount
1222 \newline 
1223 Mount or unmount each mount point selected.
1224 \newline 
1225 Delete
1226 \newline 
1227 Remove all the selected entries from the directory.
1228 \newline 
1230 \newline 
1231 Subdirectories will have their contents deleted first.
1232 \newline 
1234 \newline 
1235 Deleting symlinks only removes the link, not the thing it points to.
1236 \newline 
1237 Disk Usage
1238 \newline 
1239 Count the sizes of all the selected items.
1240  Directories also have their
1241 \newline 
1243 \newline 
1244 contents counted.
1245  Symlinks count themselves, not the things they point to.
1246 \newline 
1247 Permissions
1248 \newline 
1249 Allows you to change the permissions for the selected files.
1250 \newline 
1251 Find
1252 \newline 
1253 Search for files by specifying various conditions --- see section 
1254 \begin_inset LatexCommand \ref{sec: Searching}
1256 \end_inset 
1259 \layout Subsubsection
1261 The window menu
1262 \layout Standard
1263 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1264 multicol5
1265 11 2 0 0 -1 -1 -1 -1
1266 1 1 0 0
1267 1 1 0 0
1268 0 1 0 0
1269 0 1 0 0
1270 0 1 0 0
1271 0 1 0 0
1272 0 1 0 0
1273 0 1 0 0
1274 0 1 1 0
1275 0 1 0 0
1276 0 1 0 0
1277 8 1 0 "" ""
1278 2 1 1 "8cm" ""
1279 0 8 0 1 0 0 0 "" ""
1280 0 8 0 1 0 0 0 "" ""
1281 0 8 0 1 0 0 0 "" ""
1282 0 2 0 1 0 0 0 "" ""
1283 0 8 0 1 0 0 0 "" ""
1284 0 8 0 1 0 0 0 "" ""
1285 0 8 0 1 0 0 0 "" ""
1286 0 8 0 1 0 0 0 "" ""
1287 0 8 0 1 0 0 0 "" ""
1288 0 8 0 1 0 0 0 "" ""
1289 0 8 0 1 0 0 0 "" ""
1290 0 8 0 1 0 0 0 "" ""
1291 0 8 0 1 0 0 0 "" ""
1292 0 8 0 1 0 0 0 "" ""
1293 0 8 0 1 0 0 0 "" ""
1294 0 8 0 1 1 0 0 "" ""
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 "" ""
1302 Entry
1303 \newline 
1304 Action
1305 \newline 
1306 Parent, New Window
1307 \newline 
1308 Open a new window displaying this window's parent.
1309 \newline 
1310 Parent, Same Window
1311 \newline 
1312 As above, but reuse this window.
1313 \newline 
1314 New Window
1315 \newline 
1316 Open another window onto this directory.
1317 \newline 
1318 Close Window
1319 \newline 
1320 Close this window.
1321 \newline 
1322 Enter Path...
1323 \newline 
1324 Open the path-entry box (see section 
1325 \begin_inset LatexCommand \ref{sec: mini}
1327 \end_inset 
1330 \newline 
1331 Shell Command...
1332 \newline 
1333 Open the shell command box (see section 
1334 \begin_inset LatexCommand \ref{sec: mini}
1336 \end_inset 
1339 \newline 
1340 Set Run Action...
1341 \newline 
1342 Allows you to set the program to use when double-clicking on a file.
1343 \newline 
1345 \newline 
1346 See section 
1347 \begin_inset LatexCommand \ref{sec: RunAction}
1349 \end_inset 
1351  for details.
1352 \newline 
1353 Select If...
1354 \newline 
1355 Select just those files that match the given pattern --- see section 
1356 \begin_inset LatexCommand \ref{sec: SelectIf}
1358 \end_inset 
1361 \newline 
1362 Show ROX-Filer help
1363 \newline 
1364 Same as selecting ROX-Filer and choosing `Help' from the menu.
1365 \layout Subsubsection
1367 The panel menu
1368 \layout Standard
1370 This is just a cut-down version of the window menu.
1371  The only new entry is `Open Panel as Directory', which displays the panel
1372  in a new, non-panel, window.
1373  `Remove Item' is a cut-down version of `Delete'; it only works for symbolic
1374  links and never asks for confirmation.
1375  Since dragging applications and directories to the panel creates symlinks
1376  it is very easy to change the panel contents to suit your needs.
1377 \layout Subsection
1379 The pinboard
1380 \layout Standard
1382 Section 
1383 \begin_inset LatexCommand \ref{run_pin}
1385 \end_inset 
1387  explains how to turn the pinboard on.
1388  Once on, you may drop icons from filer windows onto the pinboard to pin
1389  them up.
1390  Clicking on a pinned file acts just like clicking on it in a filer window.
1391  You can drag pinned icons just like normal icons and you can right-click
1392  on one to see the pinboard's popup menu.
1393 \layout Standard
1395 Drag pinned icons with the middle mouse button to move them around (they
1396  snap to a grid).
1397  Changes to the pinboard are automatically saved.
1398 \layout Standard
1400 Clicking on pinned icons with Control held down selects and unselects them.
1401  Click on the desktop background to unselect them all.
1402 \layout Standard
1405 \series bold 
1406 IMPORTANT: 
1407 \series default 
1408 Pinning a file to the pinboard does 
1409 \series bold 
1411 \series default 
1412  copy it, it merely creates a shortcut to the original file.
1413  If you delete the file, then you've lost it! Removing a file from the pinboard
1414  only removes the link.
1415  This is different to most other filers...
1416 \layout Subsection
1419 \begin_inset LatexCommand \label{sec: vfs}
1421 \end_inset 
1423 Virtual file systems
1424 \layout Standard
1426 Some types of file can be represented as a directory.
1427  A typical example is a zip file, which contains an entire directory structure
1428  in compressed form.
1429  It is often useful to be able to open up such a file as if it was a real
1430  directory, and the VFS system allows you to do this.
1431 \layout Standard
1433 To use this feature you must have one or both of the following:
1434 \layout Itemize
1436 A system (such as PODFUK
1437 \begin_inset LatexCommand \cite{PODFUK}
1439 \end_inset 
1441 ) which causes the kernel to support various Virtual File Systems directly.
1442  This is the best option since all programs will be able to access the contents
1443  of the VFS.
1444  You will require root access to install such a system, however, and it
1445  is not available on all platforms.
1446 \layout Itemize
1448 Support for the Midnight Commander VFS library compiled into ROX-Filer.
1449  This happens automatically when you compile ROX-Filer if it can find the
1450  VFS library --- this means having 
1451 \family typewriter 
1452 libvfs.so
1453 \family default 
1454  (or 
1455 \family typewriter 
1456 libvfs.a
1457 \family default 
1458 ) in a system library directory or in the directory in the environment variable
1460 \family typewriter 
1461 LD_LIBRARY_PATH
1462 \family default 
1464  In this case, you will be able to view the directory structure and copy
1465  files out of it, but not change it.
1466  Support for this may be added later.
1467  Midnight Commander is part of the GNOME project.
1468 \layout Standard
1470 Note that using the `Open VFS' menu is simply a short-cut for using the
1471  path-entry box (explained below), so if you want to use a VFS not listed
1472  on the menu you can type in the path directly, eg:
1473 \layout Standard
1476 \family typewriter 
1477 /home/fred/archive.zip#uzip/
1478 \layout Standard
1481 \latex latex 
1483 \backslash 
1484 noindent 
1485 \latex default 
1486 Don't forget the final slash!
1487 \layout Subsubsection
1489 Step by step example of adding VFS support
1490 \layout Standard
1492 This assumes that you have the Midnight Commander source in a directory
1493  called `mc'.
1494  You might need to replace 
1495 \family typewriter 
1496 libvfs.so 
1497 \family default 
1498 with 
1499 \family typewriter 
1500 libvfs.a
1501 \family default 
1503 \layout LyX-Code
1505 $ cd mc
1506 \layout LyX-Code
1508 $ ./configure
1509 \layout LyX-Code
1511 $ cd vfs
1512 \layout LyX-Code
1514 $ make libvfs.so
1515 \layout Itemize
1517 If you have the root password then install the library in a system library
1518  directory as normal.
1519 \layout Itemize
1521 If not,
1522 \begin_deeper 
1523 \layout LyX-Code
1525 $ mkdir ~/lib
1526 \layout LyX-Code
1528 $ cp libvfs.so ~/lib
1529 \layout LyX-Code
1531 $ cd ~/Apps/ROX-Filer
1532 \layout Standard
1534 Edit the 
1535 \family typewriter 
1536 AppRun
1537 \family default 
1538  file to include this as the 
1539 \emph on 
1540 second
1541 \emph toggle 
1542  line:
1543 \layout LyX-Code
1545 LD_LIBRARY_PATH=${HOME}/lib; export LD_LIBRARY_PATH
1546 \layout Standard
1548 This will ensure that ROX-Filer will look for the library in the new 
1549 \family typewriter 
1550 ~/lib
1551 \family default 
1552  directory.
1553  Finally, recompile:
1554 \layout LyX-Code
1556 $ ./AppRun --compile
1557 \layout LyX-Code
1560 \layout LyX-Code
1562 checking for mc_stat in -lvfs...
1563  yes
1564 \layout Standard
1566 If you saw that line then it's worked! Well done!
1567 \end_deeper 
1568 \layout Subsection
1571 \begin_inset LatexCommand \label{sec: mini}
1573 \end_inset 
1575 The mini-buffer
1576 \layout Standard
1578 The mini-buffer is a white bar that appears along the bottom of the window
1579  and allows you to enter some text.
1580  Press Escape to get rid of it again.
1581  It behaves in different ways depending on how you invoked it:
1582 \layout Subsubsection
1584 The path-entry box
1585 \layout Standard
1587 This allows you to type in a path directly.
1588  As you type the display is updated to show the item entered visually.
1589  The main use is to find a file in a large directory quickly, but you can
1590  also use it for navigating between directories, or for selecting a full
1591  pathname from somewhere else and pasting it directly into the path-entry
1592  box.
1593 \layout Standard
1594 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1595 multicol5
1596 4 2 0 0 -1 -1 -1 -1
1597 1 1 0 0
1598 0 1 0 0
1599 0 1 0 0
1600 0 1 0 0
1601 8 1 0 "" ""
1602 2 1 1 "8cm" ""
1603 0 8 0 1 0 0 0 "" ""
1604 0 8 0 1 0 0 0 "" ""
1605 0 8 0 1 0 0 0 "" ""
1606 0 8 0 1 0 0 0 "" ""
1607 0 8 0 1 0 0 0 "" ""
1608 0 8 0 1 0 0 0 "" ""
1609 0 8 0 1 0 0 0 "" ""
1610 0 8 0 1 0 0 0 "" ""
1613 \newline 
1614 Action
1615 \newline 
1616 Return
1617 \newline 
1618 Open the currently selected item.
1619 \newline 
1621 \newline 
1622 Shell-style tab completion.
1623 \newline 
1624 Up, Down
1625 \newline 
1626 Select the previous/next matching entry.
1627 \layout Standard
1629 If you start entering a name beginning with a `.' then the `Show Hidden'
1630  feature is temporarily turned on so that the file can be shown.
1631 \layout Standard
1633 Tab completion tries to fill in as many characters for you as it can.
1634  For example, if there are two files in a directory called `save-mail-nov-1999'
1635  and `save-mail-dec-1999' then typing 'save' and pressing Tab will expand
1636  `save' to `save-mail-' and beep to indicate that the match is not complete.
1637  If you use tab completion on a directory and it is unique then the filer
1638  will automatically change into the directory.
1639  This behavior should be familiar to shell users.
1640 \layout Subsubsection*
1642 Example
1643 \layout Standard
1645 Let's say you want to locate the documentation for Wine in the directory
1646  /usr/doc (which is usually very large).
1647  Here's how you could do it:
1648 \layout Enumerate
1650 Open the minibuffer by choosing 'Enter Path' from the Window menu.
1651  I usually bind this function to the slash (`/') key.
1652 \layout Enumerate
1654 Press CTRL-U to delete the existing contents --- this moves you to the root
1655  directory.
1656 \layout Enumerate
1658 Type `u
1659 \latex latex 
1661 \backslash 
1662 Tab{}
1663 \latex default 
1665 \latex latex 
1667 \backslash 
1668 Tab{}
1669 \latex default 
1671 \latex latex 
1673 \backslash 
1674 Tab{}
1675 \latex default 
1677  As you type, the cursor will move to the correct subdirectory.
1678  If it beeps when you press Tab then you need to supply more letters.
1679 \layout Subsubsection
1682 \begin_inset LatexCommand \label{sec: RunAction}
1684 \end_inset 
1686 The run action box
1687 \layout Standard
1689 This box appears when you choose `Set Run Action' from the Window menu.
1690  You can now either drag a file onto an application, or you can enter a
1691  shell command.
1692  In either case, the action is not actually performed but instead becomes
1693  the default action for files of that type.
1694 \layout Standard
1696 All files have a MIME type in the form `
1697 \family typewriter 
1698 text/plain
1699 \family default 
1701  Here, `
1702 \family typewriter 
1703 text
1704 \family default 
1705 ' is the 
1706 \emph on 
1707 media type
1708 \emph toggle 
1709  and `
1710 \family typewriter 
1711 plain
1712 \family default 
1713 ' is the 
1714 \emph on 
1715 sub-type
1716 \emph toggle 
1718  Whichever method you use to set the action you will be given the choice
1719  of setting the run action just for that type, or setting the default for
1720  all files with that media-type which don't already have a specific action.
1721 \layout Standard
1723 For example, let's say you want to set things up so that double-clicking
1724  on a `.gif' file loads it into the Gimp:
1725 \layout Paragraph
1727 Setting the run action by drag-and-drop
1728 \newline 
1730 \layout Standard
1732 Choose `Set Run Action' from the Window menu and, while the minibuffer is
1733  still open, drag a GIF file from the filer window onto the Gimp's application
1734  directory (probably in another filer window).
1735 \layout Paragraph
1737 Setting the run action by entering a shell command
1738 \newline 
1740 \layout Standard
1742 Type:
1743 \layout LyX-Code
1745 gimp 
1746 \begin_inset Quotes erd
1747 \end_inset 
1750 \begin_inset Quotes erd
1751 \end_inset 
1754 \layout Standard
1756 and press Return.
1757  Note that the cursor (the black box) must be on the GIF file when you press
1758  Return.
1759 \layout Subsubsection
1761 The shell command box
1762 \layout Standard
1764 This provides a quick way of entering shell commands if you don't want to
1765  open an xterm.
1766  If you don't know what shell commands are, skip this section!
1767 \layout Standard
1769 Just type in the command and press Return to execute it.
1770  Up and Down arrows move through previously entered commands.
1771  Tab does shell-style completion.
1772  Clicking on an item inserts its name into the minibuffer.
1773  If some items are selected then they are assigned to the positional parameters
1775 \family typewriter 
1777 \family default 
1779 \family typewriter 
1781 \family default 
1782 , etc.
1783 \layout Subsubsection*
1785 Examples
1786 \layout Standard
1788 To untar a 
1789 \family typewriter 
1790 .tgz
1791 \family default 
1792  archive:
1793 \layout Enumerate
1795 Open the minibuffer by choosing `Shell Command' from the Window menu.
1796  I usually bind this to the bang (`!') key.
1797 \layout Enumerate
1799 Type `
1800 \family typewriter 
1801 tar xzf
1802 \family default 
1803 ' and click on the file.
1804  The leading space is automatically inserted.
1805 \layout Enumerate
1807 Press Return to execute it.
1808 \layout Standard
1810 To print all the selected files:
1811 \layout Enumerate
1813 Open the shell command minibuffer.
1814 \layout Enumerate
1816 Type 
1817 \family typewriter 
1818 `lpr $*
1819 \family default 
1820 ' and press Return.
1821 \layout Subsubsection*
1823 Notes
1824 \layout Itemize
1826 Be careful; you will not be asked to confirm! If in doubt, start the command
1827  with `
1828 \family typewriter 
1829 echo
1830 \family default 
1831 ' so that it will be displayed rather than executed.
1832 \layout Itemize
1834 The above command won't work if some of the files contain spaces --- use
1836 \family typewriter 
1837 lpr 
1838 \latex latex 
1840 \latex default 
1842 \latex latex 
1844 \family default 
1845 \latex default 
1846 ' instead to be safe.
1847 \layout Itemize
1849 `sh' is always used as the name of the shell to run (mainly because bash
1850  and csh treat positional parameters differently).
1851  However, PATH is searched to find it so you can still use another shell
1852  if you want by naming it sh and putting it in your path.
1853 \layout Itemize
1855 Commands execute in the background, so you can say:
1856 \begin_deeper 
1857 \layout LyX-Code
1859 sleep 240; xmessage Time to go!
1860 \end_deeper 
1861 \layout Subsubsection
1864 \begin_inset LatexCommand \label{sec: SelectIf}
1866 \end_inset 
1868 The conditional selection box
1869 \layout Standard
1871 Use this if you want to automatically select all files in the directory
1872  which match a condition.
1873  The syntax for the conditions is given in section 
1874 \begin_inset LatexCommand \ref{sec: Searching}
1876 \end_inset 
1879  For example, to select all files larger than 5Mb:
1880 \layout Enumerate
1882 Open the Select If minibuffer.
1883 \layout Enumerate
1885 Type `
1886 \family typewriter 
1887 Size > 5Mb
1888 \family default 
1889 ' and press Return.
1890 \layout Standard
1892 Just those files over 5 Mb in size will be selected.
1893  The expressions you can enter are in the same form as described in section
1895 \begin_inset LatexCommand \ref{sec: Searching}
1897 \end_inset 
1899 , except that `
1900 \family typewriter 
1901 prune
1902 \family default 
1903 ' has no effect since the contents of directories are never checked anyway.
1904 \layout Subsection
1906 Action windows
1907 \layout Standard
1909 Action windows are those boxes that appear while you're doing a Copy/Move/Link/e
1910 tc operation.
1911  The status line at the top of the window shows the current directory or
1912  object that the window is processing.
1913  The scrolling area below is the log area --- it shows what has been done
1914  and may display questions here.
1915 \layout Standard
1917 At the bottom are four buttons and, sometimes, some options.
1918  The buttons work as follows:
1919 \layout Description
1921 Quiet will do simple operations without asking you to confirm each one.
1922  By turning this on and off during an operation you can use it like a pause
1923  button.
1924 \layout Description
1926 Yes answers yes to the question displayed in the log area.
1927 \layout Description
1929 No answers no to the question displayed in the log area.
1930 \layout Description
1932 Abort kills the current operation (if any) and closes the action window.
1933 \layout Standard
1935 You can control which actions get started automatically (without you having
1936  to click on Quiet at the start) from the Options window.
1937 \layout Subsubsection
1939 Action window options
1940 \layout Standard
1942 Some actions have options, which appear as option boxes at the bottom of
1943  the window.
1944  They are:
1945 \layout Itemize
1947 `Force' means that the filer won't treat non-writeable files as special.
1948  Normally, it confirms the deletion even if Quiet is pressed.
1949  Note that you still can't remove files from non-writeable directories because
1950  in that case you really don't have permission.
1951 \layout Itemize
1953 `Brief' prevents the filer logging a message every time it does something.
1954  Use this to speed things up if large numbers of messages are being logged.
1955 \layout Itemize
1957 `Recurse' means that doing something to a directory will also do the same
1958  thing to all its contents, and the contents of any subdirectories, and
1959  so on.
1960 \layout Subsection
1963 \begin_inset LatexCommand \label{sec: Searching}
1965 \end_inset 
1967 Searching
1968 \layout Standard
1970 The Find feature looks through all the selected files and directories and
1971  any subdirectories (recursively) looking for items that match a particular
1972  expression.
1973 \layout Standard
1975 If you know the name of a file then just enter it in the `Expression:' box,
1976  enclosed in single quotes.
1977  For example, to find a file called `log' you would enter:
1978 \layout LyX-Code
1980 'log'
1981 \layout Standard
1983 Remember to use normal quotes, not double quotes (
1984 \family typewriter 
1986 \begin_inset Quotes eld
1987 \end_inset 
1990 \family default 
1991 ) or back-quotes (
1992 \family typewriter 
1994 \family default 
1996 \layout Standard
1998 As the filer finds matching files they are added to the results list.
1999  Clicking on an entry in the list opens a viewer showing the file you clicked
2000  on.
2001  The filer will use the same window to view other results (so, if you want
2002  the results shown in separate windows you must explicitly create a new
2003  window from the Window menu).
2004 \layout Subsubsection
2006 Wildcards
2007 \layout Standard
2009 You can also put shell-style wildcard characters inside the quotes, for
2010  example:
2011 \layout LyX-Code
2013 '*.html'
2014 \layout LyX-Code
2016 'Report.*'
2017 \layout LyX-Code
2019 'Draft[1-5]'
2020 \layout LyX-Code
2022 'main.[ch]'
2023 \layout Standard
2025 Look at the 
2026 \family typewriter 
2027 glob(7)
2028 \family default 
2029  manpage if you want to know more about shell wildcards.
2030 \layout Standard
2032 If the pattern you enter contains a slash ('/') character then the pattern
2033  is matched against the file's full path, otherwise only the leafname is
2034  used.
2035  That is, 
2036 \family typewriter 
2037 '*tmp*'
2038 \family default 
2039  will find 'tmp' and 'tmpfile' but not '/tmp/file' --- 
2040 \family typewriter 
2041 '/*tmp*'
2042 \family default 
2043  will find all three.
2044 \layout Subsubsection
2046 Simple tests
2047 \layout Standard
2049 As well as finding files by their names you can also find them by various
2050  other attributes.
2051  Note that `file' is used here to mean anything that can appear in the filesyste
2052 m --- including directories, devices and so on.
2053 \layout Standard
2056 \latex latex 
2058 \backslash 
2059 smallskip
2060 \backslash 
2061 noindent 
2062 \latex default 
2063 These look at the type of the item being checked:
2064 \layout Description
2066 IsReg matches any regular (ie, normal) file.
2067 \layout Description
2069 IsLink matches symlinks.
2070 \layout Description
2072 IsDir matches directories.
2073 \layout Description
2075 IsChar matches character device files.
2076 \layout Description
2078 IsBlock matches block device files.
2079 \layout Description
2081 IsDev matches block or character device files.
2082 \layout Description
2084 IsPipe matches pipes.
2085 \layout Description
2087 IsSocket matches sockets.
2088 \layout Standard
2090 These look at the permissions set on the file --- see section 
2091 \begin_inset LatexCommand \ref{sec: Permissions}
2093 \end_inset 
2096 \layout Description
2098 IsSUID matches files which have the Set-UID bit set.
2099 \layout Description
2101 IsSGID matches files which have the Set-GID bit set.
2102 \layout Description
2104 IsSticky matches files with the sticky bit set,
2105 \layout Description
2107 IsReadable matches files which you can read from.
2108 \layout Description
2110 IsWriteable matches files which you can write to.
2111 \layout Description
2113 IsExecutable matches files which you can execute.
2114 \layout Standard
2116 And a couple of other useful ones:
2117 \layout Description
2119 IsEmpty finds empty files (ie, those whose length is 0 bytes).
2120 \layout Description
2122 IsMine finds files which you own.
2123 \layout Subsubsection
2125 Logic operators
2126 \layout Standard
2128 You can combine the above tests in various ways to perform more advanced
2129  searches.
2130  An expression is actually made up of a list of 
2131 \emph on 
2132 cases
2133 \emph toggle 
2134 , separated by commas.
2135  The filer will try to match each case in turn until one matches or there
2136  are no more cases left.
2137  For example, to search for files with several possible endings:
2138 \layout LyX-Code
2140 '*.gif', '*.htm', '*.html'
2141 \layout Standard
2143 Further, each of the cases is actually a list of conditions.
2144  The case only matches if all of its conditions are met.
2145  So, to find a directory called 
2146 \family typewriter 
2148 \family default 
2149  or a regular file ending in 
2150 \family typewriter 
2152 \family default 
2154 \layout LyX-Code
2156 IsDir 'lib', IsReg '*.so'
2157 \layout Standard
2159 You can negate a condition by putting a 
2160 \family typewriter 
2162 \family default 
2163  in front of it and you can use a sub-expression as a condition by bracketing
2164  it, like this:
2165 \layout LyX-Code
2167 ! (IsDir, IsReg)
2168 \layout LyX-Code
2170 !IsDir !IsReg
2171 \layout LyX-Code
2173 Not isdir and not isreg
2174 \layout Standard
2176 All three do the same thing.
2177 \layout Subsubsection
2179 Comparisons
2180 \layout Standard
2182 You can also compare various values using the operators 
2183 \family typewriter 
2184 <, <=, =, !=, >, >=
2185 \family default 
2186  (for less-than, less-than-or-equal-to, equal-to, not-equal-to, greater-than
2187  and greater-than-or-equal-to).
2188  When comparing times, you may find it helpful to use 
2189 \family typewriter 
2190 after 
2191 \family default 
2192 and 
2193 \family typewriter 
2194 before
2195 \family default 
2196  instead of 
2197 \family typewriter 
2199 \family default 
2200  and 
2201 \family typewriter 
2203 \family default 
2204  to make things clearer.
2205 \layout Standard
2207 The following are read from the file being checked and may be used for the
2208  values being compared:
2209 \layout Description
2211 atime The time that the file was last accessed.
2212 \layout Description
2214 ctime The time that the file's status was last changed.
2215 \layout Description
2217 mtime The time that the file's contents were last modified.
2218 \layout Description
2220 size The size of the file.
2221 \layout Description
2223 inode The file's inode (index) number
2224 \layout Description
2226 nlinks The number of links to this file (that is, the number of directory
2227  entries which refer to this file.
2228  Note that symlinks don't count as references).
2229 \layout Description
2231 uid The User ID of the file.
2232 \layout Description
2234 gid The Group ID of the file.
2235 \layout Description
2237 blocks The number of disk blocks being used by the file.
2238 \layout Standard
2240 Times are measured as seconds since the Unix Epoch (00:00:00 UTC, January
2241  1, 1970).
2242  Sizes are in bytes.
2243  When specifying constants to compare these values with you may use various
2244  keywords to scale the value:
2245 \layout Description
2247 Byte(s) has no effect, but looks better.
2248 \layout Description
2250 Kb multiplies by 1024, so 2Kb is the same as 2048.
2251 \layout Description
2253 Mb multiplies by 
2254 \begin_inset Formula \( 1024^{2} \)
2255 \end_inset 
2257 , ie 1024 Kb.
2258 \layout Description
2260 Sec(s) has no effect, but looks nice.
2261 \layout Description
2263 Min(s) multiplies by 60 to get minutes.
2264 \layout Description
2266 Hour(s),\SpecialChar ~
2267 Day(s),\SpecialChar ~
2268 Week(s),\SpecialChar ~
2269 Year(s) likewise convert to the relevant unit.
2270 \layout Description
2272 Ago makes the time in the past relative to when the check is done.
2273 \layout Description
2275 Hence makes the time in the future.
2276 \layout Description
2278 Now is short for `
2279 \family typewriter 
2280 0 Secs Hence
2281 \family default 
2283 \layout Standard
2285 Some examples should make this all a bit clearer!
2286 \layout LyX-Code
2288 mtime after 1 day ago
2289 \layout LyX-Code
2291 size > 10 Mb
2292 \layout LyX-Code
2294 IsReg and nlinks > 1
2295 \layout Standard
2297 The first finds files modified within the last 24 hours.
2298  You could use 
2299 \family typewriter 
2301 \family default 
2302  instead of 
2303 \family typewriter 
2304 after,
2305 \family default 
2306 but it's not so clear what is meant.
2307  The second finds files larger than 10 Mb and the last finds regular files
2308  with more than one directory entry.
2309 \layout Standard
2311 Be careful though --- the filer doesn't check the context of the modifiers,
2312  so 
2313 \family typewriter 
2314 size > 1 day ago
2315 \family default 
2316  is allowed, although it doesn't make much sense! Also, forgetting to use
2318 \family typewriter 
2320 \family default 
2321  or 
2322 \family typewriter 
2323 hence
2324 \family default 
2325  will cause odd effects (the time will be measured relative to the Epoch
2326  rather than the current time).
2327  Finally, don't use = with times --- 
2328 \family typewriter 
2329 atime = 1 day ago
2330 \family default 
2331  looks for a file accessed 
2332 \emph on 
2333 exactly
2334 \emph toggle 
2335  86400 seconds ago...
2336 \layout Subsubsection
2338 Specials
2339 \layout Description
2341 System(Command) executes `Command' on the file.
2342  The test succeeds if the command returns an exit status of zero.
2343  A `%' character in `Command' is replaced by the full path of the file being
2344  checked.
2345  System is a very slow test to perform, so do it last if possible.
2346  For example, if you're looking for a .c file containing the word `main',
2347  do
2348 \begin_deeper 
2349 \layout LyX-Code
2351 '*.c' system(grep -q main
2352 \latex latex 
2354 \backslash 
2355 thinspace{}
2356 \latex default 
2358 \latex latex 
2360 \backslash 
2361 thinspace{}"
2362 \latex default 
2364 \layout Standard
2366 so that the grep is only performed for files ending in .c (as opposed to
2367  only checking that the file ends in .c if it contains the word `main').
2368 \end_deeper 
2369 \layout Description
2371 Prune Always fails!
2372 \begin_float footnote 
2373 \layout Standard
2375 Note that this is the opposite of the 
2376 \noun on 
2377 find(1)
2378 \noun toggle 
2379  command.
2380 \end_float 
2381  However, if it gets evaluated at all then it prevents the filer from checking
2382  inside the current directory.
2383  Remember the order in which the filer checks the expression!
2384 \layout Standard
2386 Examples:
2387 \layout LyX-Code
2389 '*.old' system(echo rm %)
2390 \layout LyX-Code
2392 'src' prune, '*.c'
2393 \layout Standard
2395 The first displays a command to delete each file ending in 
2396 \family typewriter 
2397 .old
2398 \family default 
2399 ; you can either paste the results into an xterm to execute them or run
2400  the search again without the 
2401 \family typewriter 
2402 echo
2403 \family default 
2405  It's always a good idea to use 
2406 \family typewriter 
2407 echo
2408 \family default 
2409  first with dangerous commands! The second looks for 
2410 \family typewriter 
2412 \family default 
2413  files, but does not bother checking inside directories called 
2414 \family typewriter 
2416 \family default 
2418  The expression is evaluated like this:
2419 \layout Standard
2420 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
2422 \begin_inset Figure size 216 180
2423 file Prune.eps
2424 height 2 2.50
2425 flags 9
2427 \end_inset 
2430 \layout Subsection
2432 Options
2433 \layout Standard
2435 You can configure various aspects of ROX-Filer from the Options box.
2436  Choose `Options...' from a filer window menu to open it.
2438 \layout Standard
2440 At the bottom of the window are four buttons:
2441 \layout Description
2443 Save puts all your choices into effect, and also saves them into your Choices
2444  directory for next time ROX-Filer is loaded.
2445  ROX-Filer will never save any preferences to disk unless you click on the
2446  `Save' button in the options window.
2447  Exactly where choices are loaded from and saved to is controlled by the
2449 \family typewriter 
2450 CHOICESPATH
2451 \family default 
2452  environment variable --- see 
2453 \begin_inset LatexCommand \cite{Choices}
2455 \end_inset 
2457  for details.
2458 \layout Description
2460 OK puts your choices into effect without writing anything to disk.
2461 \layout Description
2463 Apply works like OK, but without closing the Options window.
2464 \layout Description
2466 Cancel closes the options box and forgets any changes you made.
2467 \layout Subsubsection
2469 Action window options
2470 \layout Standard
2472 You can choose to start some operations automatically, without waiting for
2473  you to click on Quiet.
2474  Select each operation that you want to auto-start here.
2475 \layout Subsubsection
2477 Filer window options
2478 \layout Itemize
2480 `Ignore case when sorting' treats upper and lower case letters as equivalent
2481  when sorting.
2482  If this is off then `Zoo' comes before `animal', for example.
2483 \layout Itemize
2485 `New window on button 1' swaps the actions of the two non-menu buttons when
2486  opening directories.
2487  This is provided for people who are used to the RISC OS mouse bindings.
2488 \layout Itemize
2490 `Menu on button 2' swaps the actions of buttons 2 and 3 so that the middle
2491  button brings up the menus.
2492  This is provided for people who are used to the RISC OS mouse bindings.
2493 \layout Itemize
2495 `Single-click navigation' treats a single click over an item as if it was
2496  a double click.
2497  This allows you to move around, run applications and open files without
2498  double clicking.
2499  To select a file 
2500 \emph on 
2501 without
2502 \emph toggle 
2503  opening it you must hold down CTRL while you click.
2504 \layout Itemize
2506 `Unique windows' prevents you from having two windows showing the same directory.
2507  Opening a second view onto a directory closes the first.
2508 \layout Itemize
2510 `Toolbar type for new windows' allows you to choose what kind of toolbar
2511  will be used for future filer windows (the currently open windows are not
2512  affected).
2513  None means that new windows will not have a toolbar, Normal provides a
2514  small bar of icons, and GNOME displays larger icons with textual labels
2515  and allows the bar to be detached from the window by dragging it.
2516  See section 
2517 \begin_inset LatexCommand \ref{sec: Toolbar}
2519 \end_inset 
2521  for details.
2522 \layout Standard
2524 The last display style and sort type you chose will also be saved as the
2525  defaults for next time.
2526 \layout Subsubsection
2528 Drag-And-Drop options
2529 \layout Standard
2531 ROX-Filer uses the standard XDND protocol for drag-and-drop.
2532  This protocol recommends that URIs should contain the hostname of the computer
2533  that the resource is on so that the program receiving the data can determine
2534  whether it can get the data directly or whether it must go via the X-server.
2535  However, many older programs (particularly GNOME applications) get confused
2536  by the hostname and fail to load the data correctly.
2537  If `Don't use hostnames' is on then the hostname part is omitted and ROX-Filer
2538  will work with these applications BUT you can't drag data to a program
2539  running on a different machine.
2540 \layout Standard
2542 `Allow dragging to icons in filer windows' controls what happens when you
2543  drop files onto icons in filer windows.
2544  If on then drops onto directories will save the data inside the directory
2545  while dropping onto programs will invoke the program on that data.
2546  If off then drops anywhere inside a filer window act like drops onto the
2547  window background --- that is, the data will be saved into the directory
2548  being displayed.
2549 \layout Subsubsection
2551 Menu options
2552 \layout Standard
2554 The `Xterm here' program is the one used when you choose `Xterm here' from
2555  the menu.
2556  You can replace it with another program such as `gnome-terminal' if you
2557  like.
2558  In fact, any program will do, but note that you cannot pass any options
2559  to the program at present.
2560 \layout Section
2562 Filetypes
2563 \layout Standard
2565 ROX-Filer uses three sub-directories in your Choices directory for filetypes:
2566 \layout Description
2568 MIME-info contains files which specify what the MIME type for a file should
2569  be, based on its extention.
2570  All the files in all the MIME-info directories are scanned when the filer
2571  loads.
2572  ROX-Filer comes with many such rules --- these are installed into the MIME-info
2573  directory by the install script.
2574 \begin_deeper 
2575 \layout Standard
2577 Many applications now come with a file called `something.mime'; copy these
2578  files into your MIME-info directory to make ROX-Filer automatically recognise
2579  the new extensions.
2580 \end_deeper 
2581 \layout Description
2583 MIME-types contains symlinks, one for each MIME type, which point to programs
2584  that can handle files of that type.
2585  To set what program is run when you click on the file you should normally
2586  use the `Set Run Action' feature (see section 
2587 \begin_inset LatexCommand \ref{sec: RunAction}
2589 \end_inset 
2592  However, you can also set the actions manually --- for example, to make
2593  opening an HTML file load it into Netscape:
2594 \begin_deeper 
2595 \layout Enumerate
2597 Find the Netscape application and go to `Link...' on the menu.
2598 \layout Enumerate
2600 Enter `text_html' as the name for the link and drag the icon from the Link
2601  box into the MIME-types directory.
2602 \layout Standard
2604 You can also put actual programs in here as well as links if you want to.
2605 \end_deeper 
2606 \layout Description
2608 MIME-icons contains the images used to display each type of file.
2609  So the filer will try to display an HTML file using the icon `MIME-icons/text_h
2610 tml.xpm'.
2611 \layout Standard
2613 In both MIME-types and MIME-icons directories you can also provide default
2614  actions/images for each media type.
2615  For example, if `text_html' isn't found then the filer will try simply
2616  using `text'.
2617 \layout Section
2619 Application directories
2620 \layout Standard
2622 An application directory is a directory which can be run as an application.
2623  It contains all the resources of an application --- source code, binaries,
2624  documentation and so on.
2625  Keeping everything in one place make installation and uninstallation much
2626  easier for users.
2627  You can also keep multiple versions of a program by simply having several
2628  application directories.
2629  You may move and rename them as you please.
2630  Application directories are easier to use and install and are more secure
2631  too
2632 \begin_float footnote 
2633 \layout Standard
2635 Because you can compile an application as a user and then simply copy it
2636  as root rather than having to run an install script you are free from the
2637  danger of running untrusted code as root.
2638  All you have to watch out for is setuid binaries.
2639 \end_float 
2641 \layout Standard
2643 To make a directory executable all you need to do is create a executable
2644  file called `AppRun' inside it.
2645  This file is run when the user double-clicks on the application.
2646  You should also provide `AppIcon.xpm' (which will be used as the image for
2647  the application) and `Help' (which is a directory that is opened when the
2648  user asks for help).
2649  Finally (for security reasons), an application directory must have the
2650  same owner as the AppRun file inside.
2651  Have a look at the ROX-Filer application directory for a full example.
2652 \layout Section
2654 Internationalisation
2655 \layout Subsection
2658 \begin_inset LatexCommand \label{sec: LANG}
2660 \end_inset 
2662 Selecting a translation
2663 \layout Standard
2665 ROX-Filer is able to translate many of its messages, provided suitable translati
2666 on files are provided.
2667  If you know that your language is supported then simply set the 
2668 \family typewriter 
2669 LANG
2670 \family default 
2671  environment variable to the appropriate code for your country before starting
2672  the filer, eg:
2673 \layout LyX-Code
2675 LANG=fr; export LANG
2676 \layout LyX-Code
2678 ROX-Filer/AppRun
2679 \layout Standard
2681 To see which translations are currently provided, open the ROX-Filer application
2682  directory (hold down Shift and double-click) and look inside the `
2683 \family typewriter 
2684 Messages
2685 \family default 
2686 ' subdirectory.
2687 \layout Subsection
2689 Creating a new translation
2690 \layout Enumerate
2692 Go into the 
2693 \family typewriter 
2695 \family default 
2696  directory and create the file `
2697 \family typewriter 
2698 messages.pot
2699 \family default 
2701 \begin_deeper 
2702 \layout LyX-Code
2704 $ cd ROX-Filer/src
2705 \layout LyX-Code
2707 $ make messages.pot
2708 \end_deeper 
2709 \layout Enumerate
2711 Copy the file into the `
2712 \family typewriter 
2714 \family default 
2715 ' subdirectory under 
2716 \family typewriter 
2718 \family default 
2719  as 
2720 \begin_inset Formula \( \langle \hbox {name}\rangle \hbox {\tt .po} \)
2721 \end_inset 
2724  Eg, if your language is referred to as `ml' (`my language'):
2725 \begin_deeper 
2726 \layout LyX-Code
2728 $ cp messages.pot po/ml.po
2729 \end_deeper 
2730 \layout Enumerate
2732 Load the copy into a text editor.
2733 \layout Enumerate
2735 Fill in the translations, which are all blank to start with.
2736 \layout Enumerate
2738 Run the `
2739 \family typewriter 
2740 make-mo
2741 \family default 
2742 ' script to create the binary file which ROX-Filer can use.
2743  You will need the GNU gettext package for this.
2744  If you don't have it then just send me the 
2745 \family typewriter 
2747 \family default 
2748  file and I'll convert it for you.
2749 \begin_deeper 
2750 \layout LyX-Code
2752 $ cd ROX-Filer/src/po
2753 \layout LyX-Code
2755 $ ./make-mo ml
2756 \layout LyX-Code
2758 Created file ../../Messages/ml.gmo OK
2759 \end_deeper 
2760 \layout Enumerate
2762 Set the LANG variable to `
2763 \family typewriter 
2765 \family default 
2766 ' and restart the filer (see section 
2767 \begin_inset LatexCommand \ref{sec: LANG}
2769 \end_inset 
2772 \layout Enumerate
2774 Submit the 
2775 \family typewriter 
2777 \family default 
2778  file to me so that I can include it in future releases of the filer.
2779 \layout Subsection
2781 Updating an existing translation
2782 \layout Enumerate
2784 Go into the directory containing the 
2785 \family typewriter 
2787 \family default 
2788  files and run the 
2789 \family typewriter 
2790 update-po
2791 \family default 
2792  script.
2793  This checks the source code for new and changed strings and updates all
2794  the translation files.
2795 \begin_deeper 
2796 \layout LyX-Code
2798 $ cd ROX-Filer/src/po
2799 \layout LyX-Code
2801 $ ./update-po
2802 \end_deeper 
2803 \layout Enumerate
2805 Edit the file by hand as before, filling in the new blanks and updating
2806  out-of-date translations.
2807  Look out for `fuzzy' entries where 
2808 \family typewriter 
2809 update-po
2810 \family default 
2811  has made a guess; check it's correct and remove the `fuzzy' line.
2812 \layout Enumerate
2814 Run 
2815 \family typewriter 
2816 make-mo
2817 \family default 
2818  as before.
2819 \layout Enumerate
2821 Submit the updated file to me.
2822 \layout Standard
2824 See the 
2825 \family typewriter 
2826 gettext
2827 \family default 
2828  info page for more instructions on creating a translation.
2829 \layout Section
2831 Hacking
2832 \layout Standard
2834 This is a quick start guide for people who want to modify the source code.
2835  If you make useful changes or fix bugs, please send patches to me or to
2836  the mailing list.
2837  Tell me which version you're using!
2838 \layout Subsection
2840 Compiling
2841 \layout Standard
2843 The first time you compile the program you need to do `
2844 \family typewriter 
2845 AppRun --compile
2846 \family default 
2847 ', but in future you only need to run `
2848 \family typewriter 
2849 make
2850 \family default 
2851 ' in the `
2852 \family typewriter 
2854 \family default 
2855 ' directory when you change the 
2856 \family typewriter 
2858 \family default 
2859  and 
2860 \family typewriter 
2862 \family default 
2863  files.
2864  You might want to run `
2865 \family typewriter 
2866 make depend
2867 \family default 
2868 ' too.
2869 \layout Subsection
2871 Creating and applying patches
2872 \layout Standard
2874 When people make small modifications to the sources they will often distribute
2875  them as 
2876 \emph on 
2877 patch files
2878 \emph toggle 
2879  --- usually on the mailing list.
2880  To apply a patch, go into the 'src' directory and run patch with the patch
2881  file.
2882  Then recompile, like this:
2883 \layout LyX-Code
2885 $ cd ROX-Filer/src
2886 \layout LyX-Code
2888 $ patch < patchfile
2889 \layout LyX-Code
2891 $ ../AppRun --compile
2892 \layout Standard
2894 You can remove the patch by simply repeating the above sequence --- patch
2895  will detect that the patch is already applied and offer to remove it.
2896 \layout Standard
2898 To create a patch you should first get the latest version of the filer from
2899  CVS (instructions on using CVS can be found on the web-site).
2900  Modify the program as you please.
2901  Create the patch using `
2902 \family typewriter 
2903 cvs diff
2904 \family default 
2905 ' from the appropriate directory:
2906 \layout LyX-Code
2908 $ cvs diff -c > my_patch
2909 \layout Standard
2911 This creates a human- and machine-readable patch file.
2912  Submit this to the mailing list.
2913  The are many reasons for posting patches rather that the modified files:
2914 \layout Itemize
2916 They are smaller, and hence shouldn't bounce.
2917  They are also quicker to download for people with slow connections.
2918 \layout Itemize
2920 People can see what they're getting into before applying them!
2921 \layout Itemize
2923 Patches can (usually) be applied to slightly modified versions of the sources.
2924  This means that people can apply several patches without each new one overwriti
2925 ng the others.
2926 \layout Subsection
2928 Autoconf
2929 \layout Standard
2931 Here's a quick explanation of the autoconf system in case you haven't used
2932  it before.
2933  See `info autoconf' for full details.
2934 \layout Standard
2936 There's a file called 'configure.in' which contains various tests (`info
2937  autoconf').
2938  You run `autoconf' and it reads through the file and generates a shell
2939  script to perform the tests, saving it as `configure'.
2940  `configure' is normally distributed with the program because not everyone
2941  has autoconf.
2942 \layout Standard
2944 You then run `configure' (in fact, let the `AppRun' script do it because
2945  it passes it some arguments), which performs all the tests.
2946  It reads in `Makefile.in' and `config.h.in' and fills in the missing values
2947  with the test results to produce `Makefile' and `config.h'.
2948 \layout Standard
2950 You run `make', which creates .o files from the .c files and links to produce
2951  ROX-Filer.
2952 \layout Subsection
2954 Data-structures
2955 \layout Standard
2957 The diagram below shows some of the major structures found in the filer
2958  along with their most important attributes and methods.
2959  Exactly which attributes have been included is a little hit-and-miss but
2960  it might help you get the overall picture.
2961  If you find it useful, please let me know and I'll try to keep it up-to-date
2962  (or even extend it!).
2963 \layout Standard
2965 To summarise, each window (or panel) has its own 
2966 \series bold 
2967 FilerWindow
2968 \series default 
2969  structure.
2970  This structure has pointers to a 
2971 \series bold 
2972 Collection
2973 \series default 
2974  (which is the widget which actually displays the files) and to a 
2975 \series bold 
2976 Directory
2977 \series default 
2978 , which is used to cache the directory contents.
2979  Both 
2980 \series bold 
2981 Collection
2982 \series default 
2983  and 
2984 \series bold 
2985 Directory
2986 \series default 
2987  have pointers to (the same) 
2988 \series bold 
2989 DirItem
2990 \series default 
2991 s, each of which corresponds to one filesystem object.
2992  Several 
2993 \series bold 
2994 FilerWindow
2995 \series default 
2996 s may share the same 
2997 \series bold 
2998 Directory
2999 \series default 
3001  While scanning is in progress the 
3002 \series bold 
3003 Directory
3004 \series default 
3005  keeps a list of the new items it has found (
3006 \emph on 
3007 new_items
3008 \emph toggle 
3009 ) and the items which have changed in some way (
3010 \emph on 
3011 up_items
3012 \emph toggle 
3014  It periodically notifies the filer window of the changes-so-far by calling
3015  all the functions in the 
3016 \emph on 
3017 users
3018 \emph toggle 
3019  list (use 
3020 \emph on 
3021 attach()
3022 \emph toggle 
3023  and 
3024 \emph on 
3025 detach()
3026 \emph toggle 
3027  to add and remove functions to or from the list).
3028 \layout Standard
3029 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
3031 \begin_inset Figure size 595 606
3032 file Structs.eps
3033 width 3 100.00
3034 flags 9
3036 \end_inset 
3039 \layout Bibliography
3040 \bibitem {ROX}
3043 \emph on 
3044 The ROX desktop
3045 \emph toggle 
3046 , <http://rox.sourceforge.net>
3047 \layout Bibliography
3048 \bibitem {GTK+}
3051 \emph on 
3052 GTK+ Toolkit
3053 \emph toggle 
3054 , <http://www.gtk.org>
3055 \layout Bibliography
3056 \bibitem {GNOME}
3059 \emph on 
3060 The GNOME desktop
3061 \emph toggle 
3062 , <http://www.gnome.org>
3063 \layout Bibliography
3064 \bibitem {DND}
3067 \emph on 
3068 The Drag and Drop protocol
3069 \emph toggle 
3070 , <http://www.its.caltech.edu/~jafl/xdnd/>
3071 \layout Bibliography
3072 \bibitem {XDS}
3075 \emph on 
3076 The X Direct Save protocol
3077 \emph toggle 
3078 , <http://www.its.caltech.edu/~jafl/xds/>
3079 \layout Bibliography
3080 \bibitem {Choices}
3083 \emph on 
3084 The ROX Choices system
3085 \emph toggle 
3086 , <http://rox.sourceforge.net/choices.php3>
3087 \layout Bibliography
3088 \bibitem {enlightenment}
3091 \emph on 
3092 Enlightenment,
3093 \emph toggle 
3094  <http://www.enlightenment.org>
3095 \layout Bibliography
3096 \bibitem {PODFUK}
3099 \emph on 
3100 POrtable Dodgy Filesystems in Userland (hacK), 
3101 \emph toggle 
3102 <http://atrey.karlin.mff.cuni.cz/~pavel/podfuk/podfuk.html>
3103 \layout Bibliography
3104 \bibitem {ImLib}
3107 \emph on 
3108 ImLib
3109 \emph toggle 
3110 , <http://www.gnome.org>
3111 \the_end