r345: Fixed a bug that prevented i18n from working.
[rox-filer/dt.git] / ROX-Filer / src / Docs / Manual.lyx
blobd6e039858396e79a30a99603d64b68c1cc7980d0
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
395 Panels
396 \layout Standard
398 If you want a directory to be opened as a panel, put 
399 \family typewriter 
401 \family default 
402  or 
403 \family typewriter 
405 \family default 
406  before the directory (for `bottom' or `top' panels).
407  If you don't know what a panel is, try it and see!
408 \layout LyX-Code
410 $ mkdir ~/Panel
411 \layout LyX-Code
413 $ ln -s $HOME ~/Panel/Home
414 \layout LyX-Code
416 $ rox -b ~/Panel
417 \layout Standard
419 The panel should be displayed in a window without a title bar.
420  If this does not work then see section 
421 \begin_inset LatexCommand \ref{winman}
423 \end_inset 
425  for some ideas.
426 \layout Subsubsection
429 \begin_inset LatexCommand \label{winman}
431 \end_inset 
433 Window manager notes
434 \layout Standard
436 You may have to play around with your window manager a bit to get the pinboard
437  icons and panels to display correctly (eg, without borders and underneath
438  all other windows).
439  In particular, try setting the stacking level / depth to low (or a negative
440  value).
441  Make sure any 'Keep transients above other windows' type options are turned
442  off!
443 \layout Standard
445 If order for the filer to receive mouse clicks on the background (used for
446  the pinboard support) you need a GNOME-compliant window manager.
447  To see if your window manager supports this, try clicking the right mouse
448  button on an unused area of the background.
449  If you get the pinboard menu, all is well.
450 \layout Standard
452 Note for sawfish users: sawfish trys to guess whether you are using GNOME
453  at start-up and only provides support if so.
454  You need to add the line `
455 \family typewriter 
456 (require 'gnome)
457 \family default 
458 ' to you 
459 \family typewriter 
460 .sawfishrc
461 \family default 
462  file (see the sawfish manual for more details).
463 \layout Standard
465 If all else fails, try running rox with the `
466 \family typewriter 
468 \family default 
469 ' options; this overrides window manager control of the icons altogether.
470 \layout Subsection
472 Mouse button and key bindings
473 \layout Standard
475 Quick start:
476 \layout Itemize
478 Click the left
479 \begin_float footnote 
480 \layout Standard
482 This documentation assumes that button--1 is the left button, button--2
483  is the middle button and button--3 is the right button.
484  This is not always the case --- for example, in a left-handed setup.
485 \end_float 
486  mouse button to open files and directories.
487 \layout Itemize
489 Click the right button to get a menu.
490  Click over a file to perform an action on that file.
491 \layout Itemize
493 Drag files between windows to copy (left button) or move (middle button)
494  them.
495 \layout Standard
498 \latex latex 
500 \backslash 
501 noindent 
502 \latex default 
503 By default, the mouse button bindings are designed to fit in with X conventions.
504  However, the behaviour is highly configurable --- have a play in the Options
505  window if you don't like the normal settings.
506  The normal settings behave as follows:
507 \layout Standard
510 \latex latex 
512 \backslash 
513 medskip
514 \layout Standard
515 \LyXTable
516 multicol5
517 20 2 0 0 -1 -1 -1 -1
518 1 1 0 0
519 1 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 1 0
526 0 1 0 0
527 0 1 1 0
528 0 1 0 0
529 0 1 1 0
530 0 1 1 0
531 0 1 0 0
532 0 1 0 0
533 0 1 0 0
534 0 1 0 0
535 0 1 0 0
536 0 1 0 0
537 0 1 0 0
538 2 1 0 "3.5cm" ""
539 2 1 1 "9.5cm" ""
540 0 2 0 1 0 0 0 "" ""
541 0 2 0 1 0 0 0 "" ""
542 0 8 0 1 0 0 0 "" ""
543 0 8 0 1 1 0 0 "" ""
544 0 8 0 1 0 0 0 "" ""
545 0 8 0 1 1 0 0 "" ""
546 0 8 0 1 0 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 0 0 0 "" ""
552 0 8 0 1 1 0 0 "" ""
553 0 8 0 1 1 0 0 "" ""
554 0 8 0 1 0 0 0 "" ""
555 0 2 0 1 0 0 0 "" ""
556 0 8 0 1 1 0 0 "" ""
557 0 8 0 1 0 0 0 "" ""
558 0 2 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 1 0 0 "" ""
562 0 8 0 1 0 0 0 "" ""
563 0 8 0 1 1 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 "" ""
568 0 8 0 1 0 0 0 "" ""
569 0 8 0 1 0 0 0 "" ""
570 0 8 0 1 0 0 0 "" ""
571 0 8 0 1 0 0 0 "" ""
572 0 8 0 1 0 0 0 "" ""
573 0 8 0 1 0 0 0 "" ""
574 0 8 0 1 0 0 0 "" ""
575 0 8 0 1 0 0 0 "" ""
576 0 8 0 1 0 0 0 "" ""
577 0 8 0 1 0 0 0 "" ""
578 0 8 0 1 0 0 0 "" ""
579 0 8 0 1 0 0 0 "" ""
581 Key or mouse button
582 \newline 
583 Action
584 \newline 
585 Left button click
586 \newline 
587 Open the file or directory clicked on.
588 \newline 
590 \newline 
591 Hold down Ctrl to select things instead of opening them.
592 \newline 
594 \newline 
595 Hold down Shift to look inside applications, treat files as text, follow
596  symlinks or mount devices.
597 \newline 
598 Middle button click
599 \newline 
600 Same as left click, but open a directory in a new window or close the viewer
601  when opening a file.
602 \newline 
603 Right button click
604 \newline 
605 Open the main menu.
606  Hold down Ctrl while clicking to go directly to the Selection submenu.
607 \newline 
608 Drag an item 
609 \newline 
610 Copy the file(s) to the destination (an application or another filer window).
611 \newline 
612 (left mouse button)
613 \newline 
614 Hold down Shift to move the file, or Ctrl+Shift to create a symbolic link.
615 \newline 
616 Drag an item
617 \newline 
618 As above, but always moves rather than copying or symlinking.
619 \newline 
620 (middle mouse button)
621 \newline 
623 \newline 
624 Drag (not over an item)
625 \newline 
626 Select a group of items by dragging a box around them.
627  With the left mouse button, only the files
628 \newline 
630 \newline 
631 in the box will be selected.
632  If you hold down Ctrl then the boxed items are added to the selection.
633 \newline 
635 \newline 
636 If the other mouse button is used then the boxed items are toggled between
637  selected and unselected.
638 \newline 
639 Backspace
640 \newline 
641 Change to viewing the parent directory.
642 \newline 
643 Cursor keys
644 \newline 
645 Move the cursor around.
646 \newline 
647 Page Up, Page Down
648 \newline 
649 Move up and down in steps of ten rows at a time.
650 \newline 
651 Home, End
652 \newline 
653 Move to the first/last entry in the directory.
654 \newline 
655 Return
656 \newline 
657 Open the item under the cursor.
658  With Shift held down this acts like choosing 'Shift Open' from the menu.
659 \newline 
660 Spacebar
661 \newline 
662 Toggles the item under the cursor between being selected and unselected.
663 \newline 
664 Tab, Shift+Tab
665 \newline 
666 Moves the cursor to the next/previous selected item.
667 \layout Standard
670 \latex latex 
672 \backslash 
673 medskip
674 \backslash 
675 noindent 
676 \latex default 
677 Other keys can easily be defined by opening the menu, moving the pointer
678  over the item you want to use and pressing a key.
679  The key will appear in the menu and can be used from then on.
680  Key bindings are automatically saved when the filer quits.
681 \layout Subsection
683 The selection
684 \layout Standard
686 While items are selected in a ROX-Filer window the filer has the global
687  selection.
688  You can then paste into another window to get the pathnames of the selected
689  files.
690  For example, to extract the files from a .tgz archive on a floppy disk into
691  your home directory:
692 \layout Enumerate
694 Choose `Xterm here' from the menu in your home directory.
695 \layout Enumerate
697 Type `tar xzf ' (but don't press Return)
698 \layout Enumerate
700 Ctrl-click on the .tgz file to select it.
701 \layout Enumerate
703 Click the middle button in the xterm window to paste the name of the file
704  into the command.
705 \layout Enumerate
707 Press Return in the xterm to execute the command.
708 \layout Subsection
711 \begin_inset LatexCommand \label{sec: Toolbar}
713 \end_inset 
715 The toolbar
716 \layout Standard
718 By default, each window has a toolbar along the top.
719  You can disable this (or make it larger) from the Options window.
720  The four buttons on the toolbar are:
721 \layout Standard
722 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
723 multicol5
724 5 3 0 0 -1 -1 -1 -1
725 1 1 0 0
726 1 1 0 0
727 0 1 0 0
728 0 1 0 0
729 0 1 0 0
730 8 1 0 "" ""
731 2 1 1 "4.5cm" ""
732 2 0 1 "4.5cm" ""
733 0 8 0 1 0 0 0 "" ""
734 0 2 0 1 0 0 0 "" ""
735 0 2 0 1 0 0 0 "" ""
736 0 8 0 1 0 0 0 "" ""
737 0 2 0 1 0 0 0 "" ""
738 0 8 0 1 0 0 0 "" ""
739 0 8 0 1 0 0 0 "" ""
740 0 2 0 1 0 0 0 "" ""
741 0 2 0 1 0 0 0 "" ""
742 0 8 0 1 0 0 0 "" ""
743 0 8 0 1 0 0 0 "" ""
744 0 8 0 1 0 0 0 "" ""
745 0 8 0 1 0 0 0 "" ""
746 0 8 0 1 0 0 0 "" ""
747 0 8 0 1 0 0 0 "" ""
749 Icon
750 \newline 
751 Action
752 \newline 
753 Other action
754 \newline 
755 Up arrow
756 \newline 
757 Change to parent directory
758 \newline 
759 Show parent in a new window
760 \newline 
761 House
762 \newline 
763 Change to home directory
764 \newline 
765 Show home in a new window
766 \newline 
767 Looping arrows
768 \newline 
769 Reread the directory contents
770 \newline 
771 Open a new window
772 \newline 
773 Information
774 \newline 
775 Show ROX-Filer's help files
776 \newline 
777 Same
778 \layout Standard
781 \latex latex 
783 \backslash 
784 noindent 
785 \latex default 
786 You may also use either of the other buttons to perform the `Other action'.
787  If the 'New window on button 1' option is turned on then the `Action' and
788  `Other action' of the first two are swapped.
789 \layout Standard
791 Dragging files to the Up or Home icons acts just like dragging them into
792  the directory which the button leads to.
793 \layout Subsection
795 The menus
796 \layout Standard
798 You can open a menu by right clicking
799 \begin_float footnote 
800 \layout Standard
802 If the Use `RISC OS mouse bindings' option is on then use the middle button
803  instead.
804 \end_float 
805  over a panel or filer window.
806  Here is a full description of each choice and what it does:
807 \layout Standard
808 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
809 multicol5
810 6 2 0 0 -1 -1 -1 -1
811 1 1 0 0
812 1 1 0 0
813 0 1 0 0
814 0 1 0 0
815 0 1 0 0
816 0 1 0 0
817 8 1 0 "" ""
818 2 1 1 "8cm" ""
819 0 8 0 1 0 0 0 "" ""
820 0 8 0 1 0 0 0 "" ""
821 0 8 0 1 0 0 0 "" ""
822 0 8 0 1 0 0 0 "" ""
823 0 8 0 1 0 0 0 "" ""
824 0 8 0 1 0 0 0 "" ""
825 0 8 0 1 0 0 0 "" ""
826 0 2 0 1 0 0 0 "" ""
827 0 8 0 1 0 0 0 "" ""
828 0 8 0 1 0 0 0 "" ""
829 0 8 0 1 0 0 0 "" ""
830 0 8 0 1 0 0 0 "" ""
832 Entry
833 \newline 
834 Action
835 \newline 
836 Select All
837 \newline 
838 Select every item in this window.
839 \newline 
840 Clear Selection
841 \newline 
842 Unselect every item in this window.
843 \newline 
844 Options...
845 \newline 
846 Configure ROX-Filer.
847 \newline 
848 New Directory...
849 \newline 
850 Create a new directory in this one.
851 \newline 
852 Xterm Here
853 \newline 
854 Open an xterm with its current directory set to this directory.
855 \layout Subsubsection
857 The display menu
858 \layout Standard
859 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
860 multicol5
861 15 2 0 0 -1 -1 -1 -1
862 1 1 0 0
863 1 1 0 0
864 0 1 0 0
865 0 1 0 0
866 0 1 1 0
867 0 1 1 0
868 0 1 1 0
869 0 1 0 0
870 0 1 0 0
871 0 1 0 0
872 0 1 0 0
873 0 1 0 0
874 0 1 0 0
875 0 1 0 0
876 0 1 1 0
877 8 1 0 "" ""
878 2 1 1 "10cm" ""
879 0 8 0 1 0 0 0 "" ""
880 0 2 0 1 0 0 0 "" ""
881 0 8 0 1 0 0 0 "" ""
882 0 2 1 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 1 0 0 "" ""
887 0 8 0 1 0 0 0 "" ""
888 0 8 0 1 1 0 0 "" ""
889 0 8 0 1 0 0 0 "" ""
890 0 8 0 1 1 0 0 "" ""
891 0 8 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 "" ""
896 0 8 0 1 0 0 0 "" ""
897 0 8 0 1 0 0 0 "" ""
898 0 2 0 1 0 0 0 "" ""
899 0 8 0 1 0 0 0 "" ""
900 0 8 0 1 0 0 0 "" ""
901 0 8 0 1 0 0 0 "" ""
902 0 8 0 1 0 0 0 "" ""
903 0 8 0 1 0 0 0 "" ""
904 0 8 0 1 0 0 0 "" ""
905 0 8 0 1 0 0 0 "" ""
906 0 8 0 1 1 0 0 "" ""
907 0 8 0 1 0 0 0 "" ""
908 0 8 0 1 0 0 0 "" ""
910 Entry
911 \newline 
912 Action
913 \newline 
914 Large Icons
915 \newline 
916 Each object in the directory is shown as a large icon with its name below.
917 \newline 
918 Small Icons
919 \newline 
920 Items are drawn smaller that usual, allowing you to see more files at once.
921 \latex latex 
923 \backslash 
925 \latex default 
927 \newline 
928 Large, With...
929 \newline 
930 Entries are displayed along with some extra details:
931 \newline 
933 \newline 
935 \series bold 
936 Summary
937 \series default 
938  shows the file permissions, owner, group, size and modification time.
939 \newline 
941 \newline 
943 \series bold 
944 Sizes
945 \series default 
946  shows just the size of each file (not directories).
947 \newline 
949 \newline 
951 \series bold 
952 Size Bars
953 \series default 
954  displays a bar indicating the size of each file.
955  This is on a log scale.
956 \newline 
957 Small, With...
958 \newline 
959 As above, but with a smaller icon and all on one line.
960 \newline 
961 Sort by Name
962 \newline 
963 Items are arranged by name.
964  There is an option to make this case-sensitive.
965 \newline 
966 Sort by Type
967 \newline 
968 Items are grouped by their types and then sorted by name within the groups.
969 \newline 
970 Sort by Date
971 \newline 
972 Most recently modified first.
973 \newline 
974 Sort by Size
975 \newline 
976 Largest first.
977 \newline 
978 Show Hidden
979 \newline 
980 If on, files beginning with a dot are shown, otherwise they are hidden.
981 \newline 
982 Refresh
983 \newline 
984 Rereads the contents of the directory and details of all the files in it.
985 \newline 
987 \newline 
988 Use this if the display becomes out-of-date.
989 \layout Standard
992 \latex latex 
994 \backslash 
995 noindent
996 \backslash 
998 \backslash 
999 thinspace{}
1000 \latex default 
1001 If ROX-Filer was unable to find ImLib
1002 \begin_inset LatexCommand \cite{ImLib}
1004 \end_inset 
1006  when it was compiled then the icons are shown cropped rather than scaled.
1007  Get ImLib and recompile if you want it to look nice.
1008 \layout Subsubsection
1011 \begin_inset LatexCommand \label{sec: Permissions}
1013 \end_inset 
1015 Permissions
1016 \layout Standard
1018 The permissions display, shown in Full Info mode, is made up of four groups
1019  of three flags.
1020  Each flag is displayed as a letter if it is on and a dash (--) if not.
1021  The first three characters show the permissions for the owner of the file,
1022  the second for other members of the file's group and the third for everyone
1023  else.
1024  Whichever group applies to the ROX-Filer process itself is shown underlined.
1025  The fourth group shows any special flags.
1026 \layout Standard
1028 The meanings of the characters are:
1029 \layout Description
1031 r Permission to read the contents of a file, or the names of files in a
1032  directory.
1033 \layout Description
1035 w Permission to alter the contents of a file, or change which names appear
1036  in a directory.
1037 \layout Description
1039 x Permission to run the file as a program, or refer to the files listed
1040  within the directory.
1041 \layout Description
1043 U This program executes with the 
1044 \emph on 
1045 effective user ID
1046 \emph toggle 
1047  of its owner rather than the person who ran it.
1048 \layout Description
1050 G This program executes with the 
1051 \emph on 
1052 effective group ID
1053 \emph toggle 
1054  of its group, regardless of who ran it.
1055 \layout Description
1057 T Entries in this directory can only be altered or removed by the people
1058  who own the files even if they have write permission on the directory itself.
1059 \layout Standard
1061 For example, `
1062 \family typewriter 
1063 \bar under 
1065 \bar default 
1066 ,rwx,r-x/---
1067 \family default 
1068 ' means that the owner of the file is the same as the effective user of
1069  ROX-Filer (basically, you own the file), you and members of the file's
1070  group have read, write and execute permission and other people have only
1071  read and execute permission.
1072  There are no special flags set.
1073 \layout Standard
1075 The rules which determine which permissions apply may vary slightly between
1076  operating systems, but a rough guide is:
1077 \layout Itemize
1079 If the
1080 \emph on 
1081  effective user ID
1082 \emph toggle 
1083  of the process is equal to the file's owner, then the owner permissions
1084  apply.
1085 \layout Itemize
1087 Otherwise, if the 
1088 \emph on 
1089 effective group ID
1090 \emph toggle 
1091  of the process is equal to the file's group OR the file's group is one
1092  of the process's 
1093 \emph on 
1094 supplemental groups
1095 \emph toggle 
1096  then the group permissions apply.
1097 \layout Itemize
1099 Otherwise, the `other' permissions apply.
1100  The 
1101 \emph on 
1102 real user ID
1103 \emph toggle 
1104  and 
1105 \emph on 
1106 real group ID
1107 \emph toggle 
1108  have no effect (except that a process may set its real IDs to its effective
1109  IDs).
1110 \layout Subsubsection
1112 The selection menu
1113 \layout Standard
1115 All of these work in the same way --- if you open the menu with some items
1116  selected then the operation applies to those items.
1117  If you open then menu over an item while there is no selection then that
1118  item is temporarily selected.
1119  If you choose one of these while there is no selection at all then the
1120  window goes into `target mode'; the operation happens to the next item
1121  you click on.
1122  Click on the window background, press Escape, or click with the right mouse
1123  button to cancel target mode.
1124  Target mode is mainly useful with the `Single click navigation' option
1125  and keys bound to the various menu entries.
1126 \layout Standard
1127 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1128 multicol5
1129 19 2 0 0 -1 -1 -1 -1
1130 1 1 0 0
1131 1 1 0 0
1132 0 1 0 0
1133 0 1 0 0
1134 0 1 0 0
1135 0 1 1 0
1136 0 1 1 0
1137 0 1 1 0
1138 0 1 0 0
1139 0 1 0 0
1140 0 1 0 0
1141 0 1 0 0
1142 0 1 0 0
1143 0 1 1 0
1144 0 1 1 0
1145 0 1 0 0
1146 0 1 1 0
1147 0 1 0 0
1148 0 1 0 0
1149 8 1 0 "" ""
1150 2 1 1 "10cm" ""
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 2 0 1 0 0 0 "" ""
1157 0 8 0 1 0 0 0 "" ""
1158 0 8 0 1 0 0 0 "" ""
1159 0 8 0 1 0 0 0 "" ""
1160 0 2 0 1 1 0 0 "" ""
1161 0 8 0 1 0 0 0 "" ""
1162 0 2 0 1 1 0 0 "" ""
1163 0 8 0 1 0 0 0 "" ""
1164 0 2 0 1 1 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 "" ""
1170 0 8 0 1 0 0 0 "" ""
1171 0 8 0 1 0 0 0 "" ""
1172 0 8 0 1 0 0 0 "" ""
1173 0 8 0 1 0 0 0 "" ""
1174 0 8 0 1 0 0 0 "" ""
1175 0 8 0 1 0 0 0 "" ""
1176 0 8 0 1 1 0 0 "" ""
1177 0 8 0 1 0 0 0 "" ""
1178 0 8 0 1 1 0 0 "" ""
1179 0 8 0 1 0 0 0 "" ""
1180 0 8 0 1 0 0 0 "" ""
1181 0 8 0 1 0 0 0 "" ""
1182 0 8 0 1 1 0 0 "" ""
1183 0 8 0 1 0 0 0 "" ""
1184 0 8 0 1 0 0 0 "" ""
1185 0 8 0 1 0 0 0 "" ""
1186 0 8 0 1 0 0 0 "" ""
1187 0 8 0 1 0 0 0 "" ""
1188 0 8 0 1 0 0 0 "" ""
1190 Entry
1191 \newline 
1192 Action
1193 \newline 
1194 Copy...
1195 \newline 
1196 Make a copy of this object.
1197 \newline 
1198 Rename...
1199 \newline 
1200 Change the name used for this object, or move it between directories.
1201 \newline 
1202 Link...
1203 \newline 
1204 Create a symbolic link to this name in the same directory.
1205 \newline 
1206 Shift Open
1207 \newline 
1208 Opens applications as directories, files as text/plain, mount points
1209 \newline 
1211 \newline 
1212 by mounting or unmounting them and symlinks by opening the directory
1213 \newline 
1215 \newline 
1216 containing the thing they point to.
1217 \newline 
1219 \newline 
1220 This is the same effect as clicking with Shift held down.
1221 \newline 
1222 Help
1223 \newline 
1224 Explain what kind of thing is selected.
1225  For applications, display the help files.
1226 \newline 
1227 Info
1228 \newline 
1229 Display extra information about this object.
1230 \newline 
1231 Open VFS
1232 \newline 
1233 Open the file as if it was a directory --- see section 
1234 \begin_inset LatexCommand \ref{sec: vfs}
1236 \end_inset 
1239 \newline 
1240 Mount
1241 \newline 
1242 Mount or unmount each mount point selected.
1243 \newline 
1244 Delete
1245 \newline 
1246 Remove all the selected entries from the directory.
1247 \newline 
1249 \newline 
1250 Subdirectories will have their contents deleted first.
1251 \newline 
1253 \newline 
1254 Deleting symlinks only removes the link, not the thing it points to.
1255 \newline 
1256 Disk Usage
1257 \newline 
1258 Count the sizes of all the selected items.
1259  Directories also have their
1260 \newline 
1262 \newline 
1263 contents counted.
1264  Symlinks count themselves, not the things they point to.
1265 \newline 
1266 Permissions
1267 \newline 
1268 Allows you to change the permissions for the selected files.
1269 \newline 
1270 Find
1271 \newline 
1272 Search for files by specifying various conditions --- see section 
1273 \begin_inset LatexCommand \ref{sec: Searching}
1275 \end_inset 
1278 \layout Subsubsection
1280 The window menu
1281 \layout Standard
1282 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1283 multicol5
1284 11 2 0 0 -1 -1 -1 -1
1285 1 1 0 0
1286 1 1 0 0
1287 0 1 0 0
1288 0 1 0 0
1289 0 1 0 0
1290 0 1 0 0
1291 0 1 0 0
1292 0 1 0 0
1293 0 1 1 0
1294 0 1 0 0
1295 0 1 0 0
1296 8 1 0 "" ""
1297 2 1 1 "8cm" ""
1298 0 8 0 1 0 0 0 "" ""
1299 0 8 0 1 0 0 0 "" ""
1300 0 8 0 1 0 0 0 "" ""
1301 0 2 0 1 0 0 0 "" ""
1302 0 8 0 1 0 0 0 "" ""
1303 0 8 0 1 0 0 0 "" ""
1304 0 8 0 1 0 0 0 "" ""
1305 0 8 0 1 0 0 0 "" ""
1306 0 8 0 1 0 0 0 "" ""
1307 0 8 0 1 0 0 0 "" ""
1308 0 8 0 1 0 0 0 "" ""
1309 0 8 0 1 0 0 0 "" ""
1310 0 8 0 1 0 0 0 "" ""
1311 0 8 0 1 0 0 0 "" ""
1312 0 8 0 1 0 0 0 "" ""
1313 0 8 0 1 1 0 0 "" ""
1314 0 8 0 1 0 0 0 "" ""
1315 0 8 0 1 0 0 0 "" ""
1316 0 8 0 1 0 0 0 "" ""
1317 0 8 0 1 0 0 0 "" ""
1318 0 8 0 1 0 0 0 "" ""
1319 0 8 0 1 0 0 0 "" ""
1321 Entry
1322 \newline 
1323 Action
1324 \newline 
1325 Parent, New Window
1326 \newline 
1327 Open a new window displaying this window's parent.
1328 \newline 
1329 Parent, Same Window
1330 \newline 
1331 As above, but reuse this window.
1332 \newline 
1333 New Window
1334 \newline 
1335 Open another window onto this directory.
1336 \newline 
1337 Close Window
1338 \newline 
1339 Close this window.
1340 \newline 
1341 Enter Path...
1342 \newline 
1343 Open the path-entry box (see section 
1344 \begin_inset LatexCommand \ref{sec: mini}
1346 \end_inset 
1349 \newline 
1350 Shell Command...
1351 \newline 
1352 Open the shell command box (see section 
1353 \begin_inset LatexCommand \ref{sec: mini}
1355 \end_inset 
1358 \newline 
1359 Set Run Action...
1360 \newline 
1361 Allows you to set the program to use when double-clicking on a file.
1362 \newline 
1364 \newline 
1365 See section 
1366 \begin_inset LatexCommand \ref{sec: RunAction}
1368 \end_inset 
1370  for details.
1371 \newline 
1372 Select If...
1373 \newline 
1374 Select just those files that match the given pattern --- see section 
1375 \begin_inset LatexCommand \ref{sec: SelectIf}
1377 \end_inset 
1380 \newline 
1381 Show ROX-Filer help
1382 \newline 
1383 Same as selecting ROX-Filer and choosing `Help' from the menu.
1384 \layout Subsubsection
1386 The panel menu
1387 \layout Standard
1389 This is just a cut-down version of the window menu.
1390  The only new entry is `Open Panel as Directory', which displays the panel
1391  in a new, non-panel, window.
1392  `Remove Item' is a cut-down version of `Delete'; it only works for symbolic
1393  links and never asks for confirmation.
1394  Since dragging applications and directories to the panel creates symlinks
1395  it is very easy to change the panel contents to suit your needs.
1396 \layout Subsection
1398 The pinboard
1399 \layout Standard
1401 Section 
1402 \begin_inset LatexCommand \ref{run_pin}
1404 \end_inset 
1406  explains how to turn the pinboard on.
1407  Once on, you may drop icons from filer windows onto the pinboard to pin
1408  them up.
1409  Clicking on a pinned file acts just like clicking on it in a filer window.
1410  You can drag pinned icons just like normal icons and you can right-click
1411  on one to see the pinboard's popup menu.
1412 \layout Standard
1414 Drag pinned icons with the middle mouse button to move them around (they
1415  snap to a grid).
1416  Changes to the pinboard are automatically saved.
1417 \layout Standard
1419 Clicking on pinned icons with Control held down selects and unselects them.
1420  Click on the desktop background to unselect them all.
1421 \layout Standard
1424 \series bold 
1425 IMPORTANT: 
1426 \series default 
1427 Pinning a file to the pinboard does 
1428 \series bold 
1430 \series default 
1431  copy it, it merely creates a shortcut to the original file.
1432  If you delete the file, then you've lost it! Removing a file from the pinboard
1433  only removes the link.
1434  This is different to most other filers...
1435 \layout Subsection
1438 \begin_inset LatexCommand \label{sec: vfs}
1440 \end_inset 
1442 Virtual file systems
1443 \layout Standard
1445 Some types of file can be represented as a directory.
1446  A typical example is a zip file, which contains an entire directory structure
1447  in compressed form.
1448  It is often useful to be able to open up such a file as if it was a real
1449  directory, and the VFS system allows you to do this.
1450 \layout Standard
1452 To use this feature you must have one or both of the following:
1453 \layout Itemize
1455 A system (such as PODFUK
1456 \begin_inset LatexCommand \cite{PODFUK}
1458 \end_inset 
1460 ) which causes the kernel to support various Virtual File Systems directly.
1461  This is the best option since all programs will be able to access the contents
1462  of the VFS.
1463  You will require root access to install such a system, however, and it
1464  is not available on all platforms.
1465 \layout Itemize
1467 Support for the Midnight Commander VFS library compiled into ROX-Filer.
1468  This happens automatically when you compile ROX-Filer if it can find the
1469  VFS library --- this means having 
1470 \family typewriter 
1471 libvfs.so
1472 \family default 
1473  (or 
1474 \family typewriter 
1475 libvfs.a
1476 \family default 
1477 ) in a system library directory or in the directory in the environment variable
1479 \family typewriter 
1480 LD_LIBRARY_PATH
1481 \family default 
1483  In this case, you will be able to view the directory structure and copy
1484  files out of it, but not change it.
1485  Support for this may be added later.
1486  Midnight Commander is part of the GNOME project.
1487 \layout Standard
1489 Note that using the `Open VFS' menu is simply a short-cut for using the
1490  path-entry box (explained below), so if you want to use a VFS not listed
1491  on the menu you can type in the path directly, eg:
1492 \layout Standard
1495 \family typewriter 
1496 /home/fred/archive.zip#uzip/
1497 \layout Standard
1500 \latex latex 
1502 \backslash 
1503 noindent 
1504 \latex default 
1505 Don't forget the final slash!
1506 \layout Subsubsection
1508 Step by step example of adding VFS support
1509 \layout Standard
1511 This assumes that you have the Midnight Commander source in a directory
1512  called `mc'.
1513  You might need to replace 
1514 \family typewriter 
1515 libvfs.so 
1516 \family default 
1517 with 
1518 \family typewriter 
1519 libvfs.a
1520 \family default 
1522 \layout LyX-Code
1524 $ cd mc
1525 \layout LyX-Code
1527 $ ./configure
1528 \layout LyX-Code
1530 $ cd vfs
1531 \layout LyX-Code
1533 $ make libvfs.so
1534 \layout Itemize
1536 If you have the root password then install the library in a system library
1537  directory as normal.
1538 \layout Itemize
1540 If not,
1541 \begin_deeper 
1542 \layout LyX-Code
1544 $ mkdir ~/lib
1545 \layout LyX-Code
1547 $ cp libvfs.so ~/lib
1548 \layout LyX-Code
1550 $ cd ~/Apps/ROX-Filer
1551 \layout Standard
1553 Edit the 
1554 \family typewriter 
1555 AppRun
1556 \family default 
1557  file to include this as the 
1558 \emph on 
1559 second
1560 \emph toggle 
1561  line:
1562 \layout LyX-Code
1564 LD_LIBRARY_PATH=${HOME}/lib; export LD_LIBRARY_PATH
1565 \layout Standard
1567 This will ensure that ROX-Filer will look for the library in the new 
1568 \family typewriter 
1569 ~/lib
1570 \family default 
1571  directory.
1572  Finally, recompile:
1573 \layout LyX-Code
1575 $ ./AppRun --compile
1576 \layout LyX-Code
1579 \layout LyX-Code
1581 checking for mc_stat in -lvfs...
1582  yes
1583 \layout Standard
1585 If you saw that line then it's worked! Well done!
1586 \end_deeper 
1587 \layout Subsection
1590 \begin_inset LatexCommand \label{sec: mini}
1592 \end_inset 
1594 The mini-buffer
1595 \layout Standard
1597 The mini-buffer is a white bar that appears along the bottom of the window
1598  and allows you to enter some text.
1599  Press Escape to get rid of it again.
1600  It behaves in different ways depending on how you invoked it:
1601 \layout Subsubsection
1603 The path-entry box
1604 \layout Standard
1606 This allows you to type in a path directly.
1607  As you type the display is updated to show the item entered visually.
1608  The main use is to find a file in a large directory quickly, but you can
1609  also use it for navigating between directories, or for selecting a full
1610  pathname from somewhere else and pasting it directly into the path-entry
1611  box.
1612 \layout Standard
1613 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1614 multicol5
1615 4 2 0 0 -1 -1 -1 -1
1616 1 1 0 0
1617 0 1 0 0
1618 0 1 0 0
1619 0 1 0 0
1620 8 1 0 "" ""
1621 2 1 1 "8cm" ""
1622 0 8 0 1 0 0 0 "" ""
1623 0 8 0 1 0 0 0 "" ""
1624 0 8 0 1 0 0 0 "" ""
1625 0 8 0 1 0 0 0 "" ""
1626 0 8 0 1 0 0 0 "" ""
1627 0 8 0 1 0 0 0 "" ""
1628 0 8 0 1 0 0 0 "" ""
1629 0 8 0 1 0 0 0 "" ""
1632 \newline 
1633 Action
1634 \newline 
1635 Return
1636 \newline 
1637 Open the currently selected item.
1638 \newline 
1640 \newline 
1641 Shell-style tab completion.
1642 \newline 
1643 Up, Down
1644 \newline 
1645 Select the previous/next matching entry.
1646 \layout Standard
1648 If you start entering a name beginning with a `.' then the `Show Hidden'
1649  feature is temporarily turned on so that the file can be shown.
1650 \layout Standard
1652 Tab completion tries to fill in as many characters for you as it can.
1653  For example, if there are two files in a directory called `save-mail-nov-1999'
1654  and `save-mail-dec-1999' then typing 'save' and pressing Tab will expand
1655  `save' to `save-mail-' and beep to indicate that the match is not complete.
1656  If you use tab completion on a directory and it is unique then the filer
1657  will automatically change into the directory.
1658  This behavior should be familiar to shell users.
1659 \layout Subsubsection*
1661 Example
1662 \layout Standard
1664 Let's say you want to locate the documentation for Wine in the directory
1665  /usr/doc (which is usually very large).
1666  Here's how you could do it:
1667 \layout Enumerate
1669 Open the minibuffer by choosing 'Enter Path' from the Window menu.
1670  I usually bind this function to the slash (`/') key.
1671 \layout Enumerate
1673 Press CTRL-U to delete the existing contents --- this moves you to the root
1674  directory.
1675 \layout Enumerate
1677 Type `u
1678 \latex latex 
1680 \backslash 
1681 Tab{}
1682 \latex default 
1684 \latex latex 
1686 \backslash 
1687 Tab{}
1688 \latex default 
1690 \latex latex 
1692 \backslash 
1693 Tab{}
1694 \latex default 
1696  As you type, the cursor will move to the correct subdirectory.
1697  If it beeps when you press Tab then you need to supply more letters.
1698 \layout Subsubsection
1701 \begin_inset LatexCommand \label{sec: RunAction}
1703 \end_inset 
1705 The run action box
1706 \layout Standard
1708 This box appears when you choose `Set Run Action' from the Window menu.
1709  You can now either drag a file onto an application, or you can enter a
1710  shell command.
1711  In either case, the action is not actually performed but instead becomes
1712  the default action for files of that type.
1713 \layout Standard
1715 All files have a MIME type in the form `
1716 \family typewriter 
1717 text/plain
1718 \family default 
1720  Here, `
1721 \family typewriter 
1722 text
1723 \family default 
1724 ' is the 
1725 \emph on 
1726 media type
1727 \emph toggle 
1728  and `
1729 \family typewriter 
1730 plain
1731 \family default 
1732 ' is the 
1733 \emph on 
1734 sub-type
1735 \emph toggle 
1737  Whichever method you use to set the action you will be given the choice
1738  of setting the run action just for that type, or setting the default for
1739  all files with that media-type which don't already have a specific action.
1740 \layout Standard
1742 For example, let's say you want to set things up so that double-clicking
1743  on a `.gif' file loads it into the Gimp:
1744 \layout Paragraph
1746 Setting the run action by drag-and-drop
1747 \newline 
1749 \layout Standard
1751 Choose `Set Run Action' from the Window menu and, while the minibuffer is
1752  still open, drag a GIF file from the filer window onto the Gimp's application
1753  directory (probably in another filer window).
1754 \layout Paragraph
1756 Setting the run action by entering a shell command
1757 \newline 
1759 \layout Standard
1761 Type:
1762 \layout LyX-Code
1764 gimp 
1765 \begin_inset Quotes erd
1766 \end_inset 
1769 \begin_inset Quotes erd
1770 \end_inset 
1773 \layout Standard
1775 and press Return.
1776  Note that the cursor (the black box) must be on the GIF file when you press
1777  Return.
1778 \layout Subsubsection
1780 The shell command box
1781 \layout Standard
1783 This provides a quick way of entering shell commands if you don't want to
1784  open an xterm.
1785  If you don't know what shell commands are, skip this section!
1786 \layout Standard
1788 Just type in the command and press Return to execute it.
1789  Up and Down arrows move through previously entered commands.
1790  Tab does shell-style completion.
1791  Clicking on an item inserts its name into the minibuffer.
1792  If some items are selected then they are assigned to the positional parameters
1794 \family typewriter 
1796 \family default 
1798 \family typewriter 
1800 \family default 
1801 , etc.
1802 \layout Subsubsection*
1804 Examples
1805 \layout Standard
1807 To untar a 
1808 \family typewriter 
1809 .tgz
1810 \family default 
1811  archive:
1812 \layout Enumerate
1814 Open the minibuffer by choosing `Shell Command' from the Window menu.
1815  I usually bind this to the bang (`!') key.
1816 \layout Enumerate
1818 Type `
1819 \family typewriter 
1820 tar xzf
1821 \family default 
1822 ' and click on the file.
1823  The leading space is automatically inserted.
1824 \layout Enumerate
1826 Press Return to execute it.
1827 \layout Standard
1829 To print all the selected files:
1830 \layout Enumerate
1832 Open the shell command minibuffer.
1833 \layout Enumerate
1835 Type 
1836 \family typewriter 
1837 `lpr $*
1838 \family default 
1839 ' and press Return.
1840 \layout Subsubsection*
1842 Notes
1843 \layout Itemize
1845 Be careful; you will not be asked to confirm! If in doubt, start the command
1846  with `
1847 \family typewriter 
1848 echo
1849 \family default 
1850 ' so that it will be displayed rather than executed.
1851 \layout Itemize
1853 The above command won't work if some of the files contain spaces --- use
1855 \family typewriter 
1856 lpr 
1857 \latex latex 
1859 \latex default 
1861 \latex latex 
1863 \family default 
1864 \latex default 
1865 ' instead to be safe.
1866 \layout Itemize
1868 `sh' is always used as the name of the shell to run (mainly because bash
1869  and csh treat positional parameters differently).
1870  However, PATH is searched to find it so you can still use another shell
1871  if you want by naming it sh and putting it in your path.
1872 \layout Itemize
1874 Commands execute in the background, so you can say:
1875 \begin_deeper 
1876 \layout LyX-Code
1878 sleep 240; xmessage Time to go!
1879 \end_deeper 
1880 \layout Subsubsection
1883 \begin_inset LatexCommand \label{sec: SelectIf}
1885 \end_inset 
1887 The conditional selection box
1888 \layout Standard
1890 Use this if you want to automatically select all files in the directory
1891  which match a condition.
1892  The syntax for the conditions is given in section 
1893 \begin_inset LatexCommand \ref{sec: Searching}
1895 \end_inset 
1898  For example, to select all files larger than 5Mb:
1899 \layout Enumerate
1901 Open the Select If minibuffer.
1902 \layout Enumerate
1904 Type `
1905 \family typewriter 
1906 Size > 5Mb
1907 \family default 
1908 ' and press Return.
1909 \layout Standard
1911 Just those files over 5 Mb in size will be selected.
1912  The expressions you can enter are in the same form as described in section
1914 \begin_inset LatexCommand \ref{sec: Searching}
1916 \end_inset 
1918 , except that `
1919 \family typewriter 
1920 prune
1921 \family default 
1922 ' has no effect since the contents of directories are never checked anyway.
1923 \layout Subsection
1925 Action windows
1926 \layout Standard
1928 Action windows are those boxes that appear while you're doing a Copy/Move/Link/e
1929 tc operation.
1930  The status line at the top of the window shows the current directory or
1931  object that the window is processing.
1932  The scrolling area below is the log area --- it shows what has been done
1933  and may display questions here.
1934 \layout Standard
1936 At the bottom are four buttons and, sometimes, some options.
1937  The buttons work as follows:
1938 \layout Description
1940 Quiet will do simple operations without asking you to confirm each one.
1941  By turning this on and off during an operation you can use it like a pause
1942  button.
1943 \layout Description
1945 Yes answers yes to the question displayed in the log area.
1946 \layout Description
1948 No answers no to the question displayed in the log area.
1949 \layout Description
1951 Abort kills the current operation (if any) and closes the action window.
1952 \layout Standard
1954 You can control which actions get started automatically (without you having
1955  to click on Quiet at the start) from the Options window.
1956 \layout Subsubsection
1958 Action window options
1959 \layout Standard
1961 Some actions have options, which appear as option boxes at the bottom of
1962  the window.
1963  They are:
1964 \layout Itemize
1966 `Force' means that the filer won't treat non-writeable files as special.
1967  Normally, it confirms the deletion even if Quiet is pressed.
1968  Note that you still can't remove files from non-writeable directories because
1969  in that case you really don't have permission.
1970 \layout Itemize
1972 `Brief' prevents the filer logging a message every time it does something.
1973  Use this to speed things up if large numbers of messages are being logged.
1974 \layout Itemize
1976 `Recurse' means that doing something to a directory will also do the same
1977  thing to all its contents, and the contents of any subdirectories, and
1978  so on.
1979 \layout Subsection
1982 \begin_inset LatexCommand \label{sec: Searching}
1984 \end_inset 
1986 Searching
1987 \layout Standard
1989 The Find feature looks through all the selected files and directories and
1990  any subdirectories (recursively) looking for items that match a particular
1991  expression.
1992 \layout Standard
1994 If you know the name of a file then just enter it in the `Expression:' box,
1995  enclosed in single quotes.
1996  For example, to find a file called `log' you would enter:
1997 \layout LyX-Code
1999 'log'
2000 \layout Standard
2002 Remember to use normal quotes, not double quotes (
2003 \family typewriter 
2005 \begin_inset Quotes eld
2006 \end_inset 
2009 \family default 
2010 ) or back-quotes (
2011 \family typewriter 
2013 \family default 
2015 \layout Standard
2017 As the filer finds matching files they are added to the results list.
2018  Clicking on an entry in the list opens a viewer showing the file you clicked
2019  on.
2020  The filer will use the same window to view other results (so, if you want
2021  the results shown in separate windows you must explicitly create a new
2022  window from the Window menu).
2023 \layout Subsubsection
2025 Wildcards
2026 \layout Standard
2028 You can also put shell-style wildcard characters inside the quotes, for
2029  example:
2030 \layout LyX-Code
2032 '*.html'
2033 \layout LyX-Code
2035 'Report.*'
2036 \layout LyX-Code
2038 'Draft[1-5]'
2039 \layout LyX-Code
2041 'main.[ch]'
2042 \layout Standard
2044 Look at the 
2045 \family typewriter 
2046 glob(7)
2047 \family default 
2048  manpage if you want to know more about shell wildcards.
2049 \layout Standard
2051 If the pattern you enter contains a slash ('/') character then the pattern
2052  is matched against the file's full path, otherwise only the leafname is
2053  used.
2054  That is, 
2055 \family typewriter 
2056 '*tmp*'
2057 \family default 
2058  will find 'tmp' and 'tmpfile' but not '/tmp/file' --- 
2059 \family typewriter 
2060 '/*tmp*'
2061 \family default 
2062  will find all three.
2063 \layout Subsubsection
2065 Simple tests
2066 \layout Standard
2068 As well as finding files by their names you can also find them by various
2069  other attributes.
2070  Note that `file' is used here to mean anything that can appear in the filesyste
2071 m --- including directories, devices and so on.
2072 \layout Standard
2075 \latex latex 
2077 \backslash 
2078 smallskip
2079 \backslash 
2080 noindent 
2081 \latex default 
2082 These look at the type of the item being checked:
2083 \layout Description
2085 IsReg matches any regular (ie, normal) file.
2086 \layout Description
2088 IsLink matches symlinks.
2089 \layout Description
2091 IsDir matches directories.
2092 \layout Description
2094 IsChar matches character device files.
2095 \layout Description
2097 IsBlock matches block device files.
2098 \layout Description
2100 IsDev matches block or character device files.
2101 \layout Description
2103 IsPipe matches pipes.
2104 \layout Description
2106 IsSocket matches sockets.
2107 \layout Standard
2109 These look at the permissions set on the file --- see section 
2110 \begin_inset LatexCommand \ref{sec: Permissions}
2112 \end_inset 
2115 \layout Description
2117 IsSUID matches files which have the Set-UID bit set.
2118 \layout Description
2120 IsSGID matches files which have the Set-GID bit set.
2121 \layout Description
2123 IsSticky matches files with the sticky bit set,
2124 \layout Description
2126 IsReadable matches files which you can read from.
2127 \layout Description
2129 IsWriteable matches files which you can write to.
2130 \layout Description
2132 IsExecutable matches files which you can execute.
2133 \layout Standard
2135 And a couple of other useful ones:
2136 \layout Description
2138 IsEmpty finds empty files (ie, those whose length is 0 bytes).
2139 \layout Description
2141 IsMine finds files which you own.
2142 \layout Subsubsection
2144 Logic operators
2145 \layout Standard
2147 You can combine the above tests in various ways to perform more advanced
2148  searches.
2149  An expression is actually made up of a list of 
2150 \emph on 
2151 cases
2152 \emph toggle 
2153 , separated by commas.
2154  The filer will try to match each case in turn until one matches or there
2155  are no more cases left.
2156  For example, to search for files with several possible endings:
2157 \layout LyX-Code
2159 '*.gif', '*.htm', '*.html'
2160 \layout Standard
2162 Further, each of the cases is actually a list of conditions.
2163  The case only matches if all of its conditions are met.
2164  So, to find a directory called 
2165 \family typewriter 
2167 \family default 
2168  or a regular file ending in 
2169 \family typewriter 
2171 \family default 
2173 \layout LyX-Code
2175 IsDir 'lib', IsReg '*.so'
2176 \layout Standard
2178 You can negate a condition by putting a 
2179 \family typewriter 
2181 \family default 
2182  in front of it and you can use a sub-expression as a condition by bracketing
2183  it, like this:
2184 \layout LyX-Code
2186 ! (IsDir, IsReg)
2187 \layout LyX-Code
2189 !IsDir !IsReg
2190 \layout LyX-Code
2192 Not isdir and not isreg
2193 \layout Standard
2195 All three do the same thing.
2196 \layout Subsubsection
2198 Comparisons
2199 \layout Standard
2201 You can also compare various values using the operators 
2202 \family typewriter 
2203 <, <=, =, !=, >, >=
2204 \family default 
2205  (for less-than, less-than-or-equal-to, equal-to, not-equal-to, greater-than
2206  and greater-than-or-equal-to).
2207  When comparing times, you may find it helpful to use 
2208 \family typewriter 
2209 after 
2210 \family default 
2211 and 
2212 \family typewriter 
2213 before
2214 \family default 
2215  instead of 
2216 \family typewriter 
2218 \family default 
2219  and 
2220 \family typewriter 
2222 \family default 
2223  to make things clearer.
2224 \layout Standard
2226 The following are read from the file being checked and may be used for the
2227  values being compared:
2228 \layout Description
2230 atime The time that the file was last accessed.
2231 \layout Description
2233 ctime The time that the file's status was last changed.
2234 \layout Description
2236 mtime The time that the file's contents were last modified.
2237 \layout Description
2239 size The size of the file.
2240 \layout Description
2242 inode The file's inode (index) number
2243 \layout Description
2245 nlinks The number of links to this file (that is, the number of directory
2246  entries which refer to this file.
2247  Note that symlinks don't count as references).
2248 \layout Description
2250 uid The User ID of the file.
2251 \layout Description
2253 gid The Group ID of the file.
2254 \layout Description
2256 blocks The number of disk blocks being used by the file.
2257 \layout Standard
2259 Times are measured as seconds since the Unix Epoch (00:00:00 UTC, January
2260  1, 1970).
2261  Sizes are in bytes.
2262  When specifying constants to compare these values with you may use various
2263  keywords to scale the value:
2264 \layout Description
2266 Byte(s) has no effect, but looks better.
2267 \layout Description
2269 Kb multiplies by 1024, so 2Kb is the same as 2048.
2270 \layout Description
2272 Mb multiplies by 
2273 \begin_inset Formula \( 1024^{2} \)
2274 \end_inset 
2276 , ie 1024 Kb.
2277 \layout Description
2279 Sec(s) has no effect, but looks nice.
2280 \layout Description
2282 Min(s) multiplies by 60 to get minutes.
2283 \layout Description
2285 Hour(s),\SpecialChar ~
2286 Day(s),\SpecialChar ~
2287 Week(s),\SpecialChar ~
2288 Year(s) likewise convert to the relevant unit.
2289 \layout Description
2291 Ago makes the time in the past relative to when the check is done.
2292 \layout Description
2294 Hence makes the time in the future.
2295 \layout Description
2297 Now is short for `
2298 \family typewriter 
2299 0 Secs Hence
2300 \family default 
2302 \layout Standard
2304 Some examples should make this all a bit clearer!
2305 \layout LyX-Code
2307 mtime after 1 day ago
2308 \layout LyX-Code
2310 size > 10 Mb
2311 \layout LyX-Code
2313 IsReg and nlinks > 1
2314 \layout Standard
2316 The first finds files modified within the last 24 hours.
2317  You could use 
2318 \family typewriter 
2320 \family default 
2321  instead of 
2322 \family typewriter 
2323 after,
2324 \family default 
2325 but it's not so clear what is meant.
2326  The second finds files larger than 10 Mb and the last finds regular files
2327  with more than one directory entry.
2328 \layout Standard
2330 Be careful though --- the filer doesn't check the context of the modifiers,
2331  so 
2332 \family typewriter 
2333 size > 1 day ago
2334 \family default 
2335  is allowed, although it doesn't make much sense! Also, forgetting to use
2337 \family typewriter 
2339 \family default 
2340  or 
2341 \family typewriter 
2342 hence
2343 \family default 
2344  will cause odd effects (the time will be measured relative to the Epoch
2345  rather than the current time).
2346  Finally, don't use = with times --- 
2347 \family typewriter 
2348 atime = 1 day ago
2349 \family default 
2350  looks for a file accessed 
2351 \emph on 
2352 exactly
2353 \emph toggle 
2354  86400 seconds ago...
2355 \layout Subsubsection
2357 Specials
2358 \layout Description
2360 System(Command) executes `Command' on the file.
2361  The test succeeds if the command returns an exit status of zero.
2362  A `%' character in `Command' is replaced by the full path of the file being
2363  checked.
2364  System is a very slow test to perform, so do it last if possible.
2365  For example, if you're looking for a .c file containing the word `main',
2366  do
2367 \begin_deeper 
2368 \layout LyX-Code
2370 '*.c' system(grep -q main
2371 \latex latex 
2373 \backslash 
2374 thinspace{}
2375 \latex default 
2377 \latex latex 
2379 \backslash 
2380 thinspace{}"
2381 \latex default 
2383 \layout Standard
2385 so that the grep is only performed for files ending in .c (as opposed to
2386  only checking that the file ends in .c if it contains the word `main').
2387 \end_deeper 
2388 \layout Description
2390 Prune Always fails!
2391 \begin_float footnote 
2392 \layout Standard
2394 Note that this is the opposite of the 
2395 \noun on 
2396 find(1)
2397 \noun toggle 
2398  command.
2399 \end_float 
2400  However, if it gets evaluated at all then it prevents the filer from checking
2401  inside the current directory.
2402  Remember the order in which the filer checks the expression!
2403 \layout Standard
2405 Examples:
2406 \layout LyX-Code
2408 '*.old' system(echo rm %)
2409 \layout LyX-Code
2411 'src' prune, '*.c'
2412 \layout Standard
2414 The first displays a command to delete each file ending in 
2415 \family typewriter 
2416 .old
2417 \family default 
2418 ; you can either paste the results into an xterm to execute them or run
2419  the search again without the 
2420 \family typewriter 
2421 echo
2422 \family default 
2424  It's always a good idea to use 
2425 \family typewriter 
2426 echo
2427 \family default 
2428  first with dangerous commands! The second looks for 
2429 \family typewriter 
2431 \family default 
2432  files, but does not bother checking inside directories called 
2433 \family typewriter 
2435 \family default 
2437  The expression is evaluated like this:
2438 \layout Standard
2439 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
2441 \begin_inset Figure size 216 180
2442 file Prune.eps
2443 height 2 2.50
2444 flags 9
2446 \end_inset 
2449 \layout Subsection
2451 Options
2452 \layout Standard
2454 You can configure various aspects of ROX-Filer from the Options box.
2455  Choose `Options...' from a filer window menu to open it.
2457 \layout Standard
2459 At the bottom of the window are four buttons:
2460 \layout Description
2462 Save puts all your choices into effect, and also saves them into your Choices
2463  directory for next time ROX-Filer is loaded.
2464  ROX-Filer will never save any preferences to disk unless you click on the
2465  `Save' button in the options window.
2466  Exactly where choices are loaded from and saved to is controlled by the
2468 \family typewriter 
2469 CHOICESPATH
2470 \family default 
2471  environment variable --- see 
2472 \begin_inset LatexCommand \cite{Choices}
2474 \end_inset 
2476  for details.
2477 \layout Description
2479 OK puts your choices into effect without writing anything to disk.
2480 \layout Description
2482 Apply works like OK, but without closing the Options window.
2483 \layout Description
2485 Cancel closes the options box and forgets any changes you made.
2486 \layout Standard
2488 Many of the options in the Options window have tooltips --- hold the mouse
2489  pointer over the option to find out what it does.
2490 \layout Subsubsection
2492 Pinboard options
2493 \layout Standard
2495 If you are using the pinboard features (see section 
2496 \begin_inset LatexCommand \ref{run_pin}
2498 \end_inset 
2500 ) then you can choose how the text under each icon is displayed.
2501  If you have a fairly uniform background then you may like to choose `No
2502  background', which simply draws the text directly over the desktop background.
2503  However, users with more `noisy' backdrops may find such text hard to read;
2504  selecting `Rectangular background slab' will draw a solid rectangle behind
2505  the text to make it easier to read.
2506 \layout Subsubsection
2508 Action window options
2509 \layout Standard
2511 You can choose to start some operations automatically, without waiting for
2512  you to click on Quiet.
2513  Select each operation that you want to auto-start here.
2514 \layout Subsubsection
2516 Display options
2517 \layout Itemize
2519 `Ignore case when sorting' treats upper and lower case letters as equivalent
2520  when sorting.
2521  If this is off then `Zoo' comes before `animal', for example.
2522 \layout Itemize
2524 `Max Large Icons width' sets the maximum width for a file's name in `Large
2525  Icons' display mode.
2526  Text wider than this will be truncated (a small red vertical bar indicates
2527  when text has been truncated).
2528 \layout Itemize
2530 `Max Small Icons width' --- as above, but applies when the display is in
2531  `Small Icons' display mode.
2532 \layout Standard
2534 The last display style and sort type you chose will also be saved as the
2535  defaults for next time if you click on Save.
2536 \layout Subsubsection
2538 Toolbar options
2539 \layout Standard
2541 `Toolbar type for new windows' allows you to choose what kind of toolbar
2542  will be used for future filer windows (the currently open windows are not
2543  affected).
2545 \series bold 
2546 None
2547 \series default 
2548  means that new windows will not have a toolbar, 
2549 \series bold 
2550 Normal
2551 \series default 
2552  provides a small bar of icons, and 
2553 \series bold 
2554 Large
2555 \series default 
2556  displays larger icons with textual labels.
2557  See section 
2558 \begin_inset LatexCommand \ref{sec: Toolbar}
2560 \end_inset 
2562  for details.
2563 \layout Subsubsection
2565 Filer window options
2566 \layout Itemize
2568 `New window on button 1' swaps the actions of the two non-menu buttons when
2569  opening directories.
2570  This is provided for people who are used to the RISC OS mouse bindings.
2571 \layout Itemize
2573 `Menu on button 2' swaps the actions of buttons 2 and 3 so that the middle
2574  button brings up the menus.
2575  This is provided for people who are used to the RISC OS mouse bindings.
2576 \layout Itemize
2578 `Single-click navigation' treats a single click over an item as if it was
2579  a double click.
2580  This allows you to move around, run applications and open files without
2581  double clicking.
2582  To select a file 
2583 \emph on 
2584 without
2585 \emph toggle 
2586  opening it you must hold down CTRL while you click.
2587 \layout Itemize
2589 `Unique windows' prevents you from having two windows showing the same directory.
2590  Opening a second view onto a directory closes the first.
2591 \layout Subsubsection
2593 Drag-And-Drop options
2594 \layout Itemize
2596 ROX-Filer uses the standard XDND protocol for drag-and-drop.
2597  This protocol recommends that URIs should contain the hostname of the computer
2598  that the resource is on so that the program receiving the data can determine
2599  whether it can get the data directly or whether it must go via the X-server.
2600  However, many older programs (particularly GNOME applications) get confused
2601  by the hostname and fail to load the data correctly.
2602  If `Don't use hostnames' is on then the hostname part is omitted and ROX-Filer
2603  will work with these applications BUT you can't drag data to a program
2604  running on a different machine.
2605 \layout Itemize
2607 `Allow dragging to icons in filer windows' controls what happens when you
2608  drop files onto icons in filer windows.
2609  If on then drops onto directories will save the data inside the directory,
2610  while dropping onto programs will invoke the program on that data.
2611  If off then drops anywhere inside a filer window act like drops onto the
2612  window background --- that is, the data will be saved into the directory
2613  being displayed.
2614 \layout Itemize
2616 `Directories spring open' controls what happens when you hold a file over
2617  a directory in a filer window or on the pinboard.
2618  If on, the directory will `spring open' after a short pause, allowing you
2619  to navigate to any directory during a drag.
2620  You can also hold the pointer over the Home and Up buttons on the toolbar
2621  for a similar effect.
2622  You need to have the previous option enabled for this to have any effect
2623  on files displayed in a directory.
2624 \layout Subsubsection
2626 Menu options
2627 \layout Standard
2629 The `Xterm here' program is the one used when you choose `Xterm here' from
2630  the menu.
2631  You can replace it with another program such as `gnome-terminal' if you
2632  like.
2633  In fact, any program will do, but note that you cannot pass any options
2634  to the program at present.
2635 \layout Section
2637 Filetypes
2638 \layout Standard
2640 ROX-Filer uses three sub-directories in your Choices directory for filetypes:
2641 \layout Description
2643 MIME-info contains files which specify what the MIME type for a file should
2644  be, based on its extention.
2645  All the files in all the MIME-info directories are scanned when the filer
2646  loads.
2647  ROX-Filer comes with many such rules --- these are installed into the MIME-info
2648  directory by the install script.
2649 \begin_deeper 
2650 \layout Standard
2652 Many applications now come with a file called `something.mime'; copy these
2653  files into your MIME-info directory to make ROX-Filer automatically recognise
2654  the new extensions.
2655 \end_deeper 
2656 \layout Description
2658 MIME-types contains symlinks, one for each MIME type, which point to programs
2659  that can handle files of that type.
2660  To set what program is run when you click on the file you should normally
2661  use the `Set Run Action' feature (see section 
2662 \begin_inset LatexCommand \ref{sec: RunAction}
2664 \end_inset 
2667  However, you can also set the actions manually --- for example, to make
2668  opening an HTML file load it into Netscape:
2669 \begin_deeper 
2670 \layout Enumerate
2672 Find the Netscape application and go to `Link...' on the menu.
2673 \layout Enumerate
2675 Enter `text_html' as the name for the link and drag the icon from the Link
2676  box into the MIME-types directory.
2677 \layout Standard
2679 You can also put actual programs in here as well as links if you want to.
2680 \end_deeper 
2681 \layout Description
2683 MIME-icons contains the images used to display each type of file.
2684  So the filer will try to display an HTML file using the icon `MIME-icons/text_h
2685 tml.xpm'.
2686 \layout Standard
2688 In both MIME-types and MIME-icons directories you can also provide default
2689  actions/images for each media type.
2690  For example, if `text_html' isn't found then the filer will try simply
2691  using `text'.
2692 \layout Section
2694 Application directories
2695 \layout Standard
2697 An application directory is a directory which can be run as an application.
2698  It contains all the resources of an application --- source code, binaries,
2699  documentation and so on.
2700  Keeping everything in one place make installation and uninstallation much
2701  easier for users.
2702  You can also keep multiple versions of a program by simply having several
2703  application directories.
2704  You may move and rename them as you please.
2705  Application directories are easier to use and install and are more secure
2706  too
2707 \begin_float footnote 
2708 \layout Standard
2710 Because you can compile an application as a user and then simply copy it
2711  as root rather than having to run an install script you are free from the
2712  danger of running untrusted code as root.
2713  All you have to watch out for is setuid binaries.
2714 \end_float 
2716 \layout Standard
2718 To make a directory executable all you need to do is create a executable
2719  file called `AppRun' inside it.
2720  This file is run when the user double-clicks on the application.
2721  You should also provide `AppIcon.xpm' (which will be used as the image for
2722  the application) and `Help' (which is a directory that is opened when the
2723  user asks for help).
2724  Finally (for security reasons), an application directory must have the
2725  same owner as the AppRun file inside.
2726  Have a look at the ROX-Filer application directory for a full example.
2727 \layout Section
2729 Internationalisation
2730 \layout Subsection
2733 \begin_inset LatexCommand \label{sec: LANG}
2735 \end_inset 
2737 Selecting a translation
2738 \layout Standard
2740 ROX-Filer is able to translate many of its messages, provided suitable translati
2741 on files are provided.
2742  If you know that your language is supported then simply set the 
2743 \family typewriter 
2744 LANG
2745 \family default 
2746  environment variable to the appropriate code for your country before starting
2747  the filer, eg:
2748 \layout LyX-Code
2750 LANG=fr; export LANG
2751 \layout LyX-Code
2753 ROX-Filer/AppRun
2754 \layout Standard
2756 To see which translations are currently provided, open the ROX-Filer application
2757  directory (hold down Shift and double-click) and look inside the `
2758 \family typewriter 
2759 Messages
2760 \family default 
2761 ' subdirectory.
2762 \layout Subsection
2764 Creating a new translation
2765 \layout Enumerate
2767 Go into the 
2768 \family typewriter 
2770 \family default 
2771  directory and create the file `
2772 \family typewriter 
2773 messages.pot
2774 \family default 
2776 \begin_deeper 
2777 \layout LyX-Code
2779 $ cd ROX-Filer/src
2780 \layout LyX-Code
2782 $ make messages.pot
2783 \end_deeper 
2784 \layout Enumerate
2786 Copy the file into the `
2787 \family typewriter 
2789 \family default 
2790 ' subdirectory under 
2791 \family typewriter 
2793 \family default 
2794  as 
2795 \begin_inset Formula \( \langle \hbox {name}\rangle \hbox {\tt .po} \)
2796 \end_inset 
2799  Eg, if your language is referred to as `ml' (`my language'):
2800 \begin_deeper 
2801 \layout LyX-Code
2803 $ cp messages.pot po/ml.po
2804 \end_deeper 
2805 \layout Enumerate
2807 Load the copy into a text editor.
2808 \layout Enumerate
2810 Fill in the translations, which are all blank to start with.
2811 \layout Enumerate
2813 Run the `
2814 \family typewriter 
2815 make-mo
2816 \family default 
2817 ' script to create the binary file which ROX-Filer can use.
2818  You will need the GNU gettext package for this.
2819  If you don't have it then just send me the 
2820 \family typewriter 
2822 \family default 
2823  file and I'll convert it for you.
2824 \begin_deeper 
2825 \layout LyX-Code
2827 $ cd ROX-Filer/src/po
2828 \layout LyX-Code
2830 $ ./make-mo ml
2831 \layout LyX-Code
2833 Created file ../../Messages/ml.gmo OK
2834 \end_deeper 
2835 \layout Enumerate
2837 Set the LANG variable to `
2838 \family typewriter 
2840 \family default 
2841 ' and restart the filer (see section 
2842 \begin_inset LatexCommand \ref{sec: LANG}
2844 \end_inset 
2847 \layout Enumerate
2849 Submit the 
2850 \family typewriter 
2852 \family default 
2853  file to me so that I can include it in future releases of the filer.
2854 \layout Subsection
2856 Updating an existing translation
2857 \layout Enumerate
2859 Go into the directory containing the 
2860 \family typewriter 
2862 \family default 
2863  files and run the 
2864 \family typewriter 
2865 update-po
2866 \family default 
2867  script.
2868  This checks the source code for new and changed strings and updates all
2869  the translation files.
2870 \begin_deeper 
2871 \layout LyX-Code
2873 $ cd ROX-Filer/src/po
2874 \layout LyX-Code
2876 $ ./update-po
2877 \end_deeper 
2878 \layout Enumerate
2880 Edit the file by hand as before, filling in the new blanks and updating
2881  out-of-date translations.
2882  Look out for `fuzzy' entries where 
2883 \family typewriter 
2884 update-po
2885 \family default 
2886  has made a guess; check it's correct and remove the `fuzzy' line.
2887 \layout Enumerate
2889 Run 
2890 \family typewriter 
2891 make-mo
2892 \family default 
2893  as before.
2894 \layout Enumerate
2896 Submit the updated file to me.
2897 \layout Standard
2899 See the 
2900 \family typewriter 
2901 gettext
2902 \family default 
2903  info page for more instructions on creating a translation.
2904 \layout Section
2906 Hacking
2907 \layout Standard
2909 This is a quick start guide for people who want to modify the source code.
2910  If you make useful changes or fix bugs, please send patches to me or to
2911  the mailing list.
2912  Tell me which version you're using!
2913 \layout Subsection
2915 Compiling
2916 \layout Standard
2918 The first time you compile the program you need to do `
2919 \family typewriter 
2920 AppRun --compile
2921 \family default 
2922 ', but in future you only need to run `
2923 \family typewriter 
2924 make
2925 \family default 
2926 ' in the `
2927 \family typewriter 
2929 \family default 
2930 ' directory when you change the 
2931 \family typewriter 
2933 \family default 
2934  and 
2935 \family typewriter 
2937 \family default 
2938  files.
2939  You might want to run `
2940 \family typewriter 
2941 make depend
2942 \family default 
2943 ' too.
2944 \layout Subsection
2946 Creating and applying patches
2947 \layout Standard
2949 When people make small modifications to the sources they will often distribute
2950  them as 
2951 \emph on 
2952 patch files
2953 \emph toggle 
2954  --- usually on the mailing list.
2955  To apply a patch, go into the 'src' directory and run patch with the patch
2956  file.
2957  Then recompile, like this:
2958 \layout LyX-Code
2960 $ cd ROX-Filer/src
2961 \layout LyX-Code
2963 $ patch < patchfile
2964 \layout LyX-Code
2966 $ ../AppRun --compile
2967 \layout Standard
2969 You can remove the patch by simply repeating the above sequence --- patch
2970  will detect that the patch is already applied and offer to remove it.
2971 \layout Standard
2973 To create a patch you should first get the latest version of the filer from
2974  CVS (instructions on using CVS can be found on the web-site).
2975  Modify the program as you please.
2976  Create the patch using `
2977 \family typewriter 
2978 cvs diff
2979 \family default 
2980 ' from the appropriate directory:
2981 \layout LyX-Code
2983 $ cvs diff -c > my_patch
2984 \layout Standard
2986 This creates a human- and machine-readable patch file.
2987  Submit this to the mailing list.
2988  The are many reasons for posting patches rather that the modified files:
2989 \layout Itemize
2991 They are smaller, and hence shouldn't bounce.
2992  They are also quicker to download for people with slow connections.
2993 \layout Itemize
2995 People can see what they're getting into before applying them!
2996 \layout Itemize
2998 Patches can (usually) be applied to slightly modified versions of the sources.
2999  This means that people can apply several patches without each new one overwriti
3000 ng the others.
3001 \layout Subsection
3003 Autoconf
3004 \layout Standard
3006 Here's a quick explanation of the autoconf system in case you haven't used
3007  it before.
3008  See `info autoconf' for full details.
3009 \layout Standard
3011 There's a file called 'configure.in' which contains various tests (`info
3012  autoconf').
3013  You run `autoconf' and it reads through the file and generates a shell
3014  script to perform the tests, saving it as `configure'.
3015  `configure' is normally distributed with the program because not everyone
3016  has autoconf.
3017 \layout Standard
3019 You then run `configure' (in fact, let the `AppRun' script do it because
3020  it passes it some arguments), which performs all the tests.
3021  It reads in `Makefile.in' and `config.h.in' and fills in the missing values
3022  with the test results to produce `Makefile' and `config.h'.
3023 \layout Standard
3025 You run `make', which creates .o files from the .c files and links to produce
3026  ROX-Filer.
3027 \layout Subsection
3029 Data-structures
3030 \layout Standard
3032 The diagram below shows some of the major structures found in the filer
3033  along with their most important attributes and methods.
3034  Exactly which attributes have been included is a little hit-and-miss but
3035  it might help you get the overall picture.
3036  If you find it useful, please let me know and I'll try to keep it up-to-date
3037  (or even extend it!).
3038 \layout Standard
3040 To summarise, each window (or panel) has its own 
3041 \series bold 
3042 FilerWindow
3043 \series default 
3044  structure.
3045  This structure has pointers to a 
3046 \series bold 
3047 Collection
3048 \series default 
3049  (which is the widget which actually displays the files) and to a 
3050 \series bold 
3051 Directory
3052 \series default 
3053 , which is used to cache the directory contents.
3054  Both 
3055 \series bold 
3056 Collection
3057 \series default 
3058  and 
3059 \series bold 
3060 Directory
3061 \series default 
3062  have pointers to (the same) 
3063 \series bold 
3064 DirItem
3065 \series default 
3066 s, each of which corresponds to one filesystem object.
3067  Several 
3068 \series bold 
3069 FilerWindow
3070 \series default 
3071 s may share the same 
3072 \series bold 
3073 Directory
3074 \series default 
3076  While scanning is in progress the 
3077 \series bold 
3078 Directory
3079 \series default 
3080  keeps a list of the new items it has found (
3081 \emph on 
3082 new_items
3083 \emph toggle 
3084 ) and the items which have changed in some way (
3085 \emph on 
3086 up_items
3087 \emph toggle 
3089  It periodically notifies the filer window of the changes-so-far by calling
3090  all the functions in the 
3091 \emph on 
3092 users
3093 \emph toggle 
3094  list (use 
3095 \emph on 
3096 attach()
3097 \emph toggle 
3098  and 
3099 \emph on 
3100 detach()
3101 \emph toggle 
3102  to add and remove functions to or from the list).
3103 \layout Standard
3104 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
3106 \begin_inset Figure size 595 606
3107 file Structs.eps
3108 width 3 100.00
3109 flags 9
3111 \end_inset 
3114 \layout Bibliography
3115 \bibitem {ROX}
3118 \emph on 
3119 The ROX desktop
3120 \emph toggle 
3121 , <http://rox.sourceforge.net>
3122 \layout Bibliography
3123 \bibitem {GTK+}
3126 \emph on 
3127 GTK+ Toolkit
3128 \emph toggle 
3129 , <http://www.gtk.org>
3130 \layout Bibliography
3131 \bibitem {GNOME}
3134 \emph on 
3135 The GNOME desktop
3136 \emph toggle 
3137 , <http://www.gnome.org>
3138 \layout Bibliography
3139 \bibitem {DND}
3142 \emph on 
3143 The Drag and Drop protocol
3144 \emph toggle 
3145 , <http://www.its.caltech.edu/~jafl/xdnd/>
3146 \layout Bibliography
3147 \bibitem {XDS}
3150 \emph on 
3151 The X Direct Save protocol
3152 \emph toggle 
3153 , <http://www.its.caltech.edu/~jafl/xds/>
3154 \layout Bibliography
3155 \bibitem {Choices}
3158 \emph on 
3159 The ROX Choices system
3160 \emph toggle 
3161 , <http://rox.sourceforge.net/choices.php3>
3162 \layout Bibliography
3163 \bibitem {enlightenment}
3166 \emph on 
3167 Enlightenment,
3168 \emph toggle 
3169  <http://www.enlightenment.org>
3170 \layout Bibliography
3171 \bibitem {PODFUK}
3174 \emph on 
3175 POrtable Dodgy Filesystems in Userland (hacK), 
3176 \emph toggle 
3177 <http://atrey.karlin.mff.cuni.cz/~pavel/podfuk/podfuk.html>
3178 \layout Bibliography
3179 \bibitem {ImLib}
3182 \emph on 
3183 ImLib
3184 \emph toggle 
3185 , <http://www.gnome.org>
3186 \the_end