r281: Added the Run Action stuff to the manual.
[rox-filer/ma.git] / ROX-Filer / src / Docs / Manual.lyx
blobfd806006fe93420f6aa4d81b09de29c0d748fe20
1 #This file was created by <tal197> Tue May 16 11:38:42 2000
2 #LyX 0.12 (C) 1995-1998 Matthias Ettrich and the LyX Team
3 \lyxformat 2.15
4 \textclass article
5 \begin_preamble
6 \def \Tab {\thinspace$\langle\hbox{Tab}\rangle$\thinspace}
7 \end_preamble
8 \language default
9 \inputencoding latin1
10 \fontscheme default
11 \graphics default
12 \paperfontsize default
13 \spacing single 
14 \papersize Default
15 \paperpackage widemarginsa4
16 \use_geometry 0
17 \use_amsmath 0
18 \paperorientation portrait
19 \secnumdepth 3
20 \tocdepth 3
21 \paragraph_separation indent
22 \defskip medskip
23 \quotes_language english
24 \quotes_times 2
25 \papercolumns 1
26 \papersides 1
27 \paperpagestyle default
29 \layout Title
31 ROX-Filer User Manual
32 \layout Author
34 Thomas Leonard, tal197@ecs.soton.ac.uk
35 \layout Date
38 \latex latex 
40 \backslash 
41 today
42 \layout Abstract
44 ROX-Filer is a graphical file manger for the X Window System.
45  Its user interface is based on the RISC OS filer and it supports similar
46  features such as application directories and drag-and-drop loading and
47  saving of files.
48 \layout Standard
51 \begin_inset LatexCommand \tableofcontents
53 \end_inset 
56 \layout Section
58 Introduction
59 \layout Standard
61 ROX-Filer is a simple and easy to use graphical file manager for X11, the
62  windowing system used on Unix and Unix-like operating systems.
63  It is also the core component of the ROX Desktop
64 \begin_inset LatexCommand \cite{ROX}
66 \end_inset 
69 \layout Subsection
71 Features
72 \layout Description
74 XDND A common drag-and-drop protocol used, for example, by the GNOME desktop
75 \begin_inset LatexCommand \cite{GNOME}
77 \end_inset 
80  This allows data to be loaded into an application by dragging it from a
81  filer window to a program.
82  The full specification is given in 
83 \begin_inset LatexCommand \cite{DND}
85 \end_inset 
88 \layout Description
90 XDS An extension to XDND that allows applications to save data by dragging
91  an icon back to a filer window.
92  The full specification is given in 
93 \begin_inset LatexCommand \cite{XDS}
95 \end_inset 
98 \layout Description
101 \protected_separator 
102 Choices A simple, but flexible, system for managing user choices.
103  See 
104 \begin_inset LatexCommand \cite{Choices}
106 \end_inset 
108  for details.
109 \layout Description
111 Application
112 \protected_separator 
113 directories Self contained relocatable applications, where installation
114  is as simple as copying it to where you want it and uninstalling it is
115  just a matter of deleting a directory.
116  Described later in this documentation.
117 \layout Section
119 Conditions
120 \layout Standard
122 This program is free software; you can redistribute it and/or modify it
123  under the terms of the GNU General Public License as published by the Free
124  Software Foundation; either version 2 of the License, or (at your option)
125  any later version.
126 \layout Standard
128 This program is distributed in the hope that it will be useful, but WITHOUT
129  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
130  FOR A PARTICULAR PURPOSE.
131  See the GNU General Public License for more details.
132 \layout Standard
134 You should have received a copy of the GNU General Public License along
135  with this program; if not, write to the Free Software Foundation, Inc.,
136  59 Temple Place, Suite 330, Boston, MA, 02111-1307, USA.
137 \layout Section
139 Instructions
140 \layout Subsection
142 Compiling
143 \layout Standard
145 ROX-Filer is usually supplied in source-only form.
146  To compile and run it, you will require
147 \layout Itemize
149 Unix or Linux (root access is not required),
150 \layout Itemize
152 The X Window system (supplied as standard on all modern systems),
153 \layout Itemize
155 GTK+ 1.2.0 or later (libraries and headers) --- get the latest version from
157 \begin_inset LatexCommand \cite{GTK+}
159 \end_inset 
162 \layout Itemize
164 A C compiler (standard on most systems).
165 \layout Standard
167 All of the above are standard on most modern Linux distributions.
168  To check which version of GTK+ you have installed, run the 
169 \family typewriter 
170 gtk-config
171 \family default 
172  command, like this (
173 \family typewriter 
175 \family default 
176  is the shell prompt):
177 \layout LyX-Code
179 $ gtk-config --version
180 \layout LyX-Code
182 1.2.3
183 \layout Standard
185 To compile:
186 \layout Enumerate
188 Change to the directory containing the ROX-Filer subdirectory.
189 \layout Enumerate
191 Run the AppRun script with the 
192 \family typewriter 
193 --compile
194 \family default 
195  option, like this:
196 \begin_deeper 
197 \layout LyX-Code
199 $ ROX-Filer/AppRun --compile
200 \end_deeper 
201 \layout Enumerate
203 ROX-Filer will perform various checks to find out what kind of system it
204  is being run on and will then compile.
205  If it doesn't work then please e-mail me and complain! Tell me what kind
206  of system you have and what errors were reported.
207  If you manage to fix the problem yourself then please e-mail me the fix.
208 \layout Standard
210 You can now run the filer by running the AppRun script without any options,
211  like this:
212 \layout LyX-Code
214 $ ROX-Filer/AppRun
215 \layout Standard
217 A window should appear and display the contents of your home directory.
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 \layout Subsection
227 Invoking
228 \layout Standard
230 By default, ROX-Filer will start by displaying your home directory.
231  You can get it to display other directories instead by listing them after
232  the command:
233 \layout LyX-Code
235 $ ROX-Filer/AppRun /home /usr /usr/local
236 \layout Standard
238 If you want one of the directories to be opened as a panel put 
239 \family typewriter 
241 \family default 
242  or 
243 \family typewriter 
245 \family default 
246  before the directory (for `bottom' or `top' panels).
247  If you don't know what a panel is, try it and see! To run the filer in
248  the background, put an & at the end of the line.
249 \layout LyX-Code
251 $ mkdir ~/Panel
252 \layout LyX-Code
254 $ ln -s $HOME ~/Panel/Home
255 \layout LyX-Code
257 $ ROX-Filer/AppRun -b ~/Panel &
258 \layout Standard
260 The panel should be displayed in a window without a title bar.
261  If this does not work then you may need to update your window manager.
262  The filer was designed and tested using the Enlightenment window manager
263 \begin_inset LatexCommand \cite{enlightenment}
265 \end_inset 
268  You could also try using the 
269 \family typewriter 
271 \family default 
272  option which bypasses the window manager entirely (also use this if the
273  panel appears in the wrong place):
274 \layout LyX-Code
276 $ ROX-Filer/AppRun -o -b ~/Panel &
277 \layout Standard
279 Note that if the same version of the filer is already running on this machine
280  then, by default, it will be used to open the directories and the new copy
281  will exit immediately.
282  You can override this (perhaps because the old copy has stopped responding
283  for some reason) using the `
284 \family typewriter 
285 --new
286 \family default 
287 ' option.
288 \layout Subsection
290 Mouse button and key bindings
291 \layout Standard
293 By default, the mouse button bindings are designed to fit in with X conventions.
294  You can get the old RISC OS bindings by opening the Options window and
295  clicking on a few toggle buttons.
296  By default, the mouse buttons and key bindings for filer windows are as
297  follows:
298 \latex latex 
300 \backslash 
301 medskip
302 \layout Standard
303 \LyXTable
304 multicol5
305 23 2 0 0 -1 -1 -1 -1
306 1 1 0 0
307 1 1 0 0
308 0 1 0 0
309 0 1 0 0
310 0 1 1 0
311 0 1 0 0
312 0 1 1 0
313 0 1 0 0
314 0 1 1 0
315 0 1 0 0
316 0 1 1 0
317 0 1 1 0
318 0 1 0 0
319 0 1 1 0
320 0 1 1 0
321 0 1 0 0
322 0 1 1 0
323 0 1 0 0
324 0 1 0 0
325 0 1 0 0
326 0 1 0 0
327 0 1 0 0
328 0 1 0 0
329 2 1 0 "3.5cm" ""
330 2 1 1 "9.5cm" ""
331 0 2 0 1 0 0 0 "" ""
332 0 2 0 1 0 0 0 "" ""
333 0 8 0 1 0 0 0 "" ""
334 0 8 0 1 0 0 0 "" ""
335 0 2 0 1 0 0 0 "" ""
336 0 8 0 1 0 0 0 "" ""
337 0 8 0 1 0 0 0 "" ""
338 0 8 0 1 1 0 0 "" ""
339 0 8 0 1 0 0 0 "" ""
340 0 8 0 1 0 0 0 "" ""
341 0 8 0 1 1 0 0 "" ""
342 0 8 0 1 1 0 0 "" ""
343 0 8 0 1 0 0 0 "" ""
344 0 2 0 1 0 0 0 "" ""
345 0 8 0 1 1 0 0 "" ""
346 0 8 0 1 0 0 0 "" ""
347 0 2 0 1 0 0 0 "" ""
348 0 8 0 1 0 0 0 "" ""
349 0 8 0 1 0 0 0 "" ""
350 0 8 0 1 1 0 0 "" ""
351 0 8 0 1 0 0 0 "" ""
352 0 8 0 1 1 0 0 "" ""
353 0 8 0 1 0 0 0 "" ""
354 0 8 0 1 0 0 0 "" ""
355 0 8 0 1 0 0 0 "" ""
356 0 2 0 1 1 0 0 "" ""
357 0 8 0 1 0 0 0 "" ""
358 0 8 0 1 1 0 0 "" ""
359 0 8 0 1 0 0 0 "" ""
360 0 8 0 1 0 0 0 "" ""
361 0 8 0 1 0 0 0 "" ""
362 0 8 0 1 1 0 0 "" ""
363 0 8 0 1 0 0 0 "" ""
364 0 8 0 1 0 0 0 "" ""
365 0 8 0 1 0 0 0 "" ""
366 0 8 0 1 0 0 0 "" ""
367 0 8 0 1 0 0 0 "" ""
368 0 8 0 1 0 0 0 "" ""
369 0 8 0 1 0 0 0 "" ""
370 0 8 0 1 0 0 0 "" ""
371 0 8 0 1 0 0 0 "" ""
372 0 8 0 1 0 0 0 "" ""
373 0 8 0 1 0 0 0 "" ""
374 0 8 0 1 0 0 0 "" ""
375 0 8 0 1 0 0 0 "" ""
376 0 8 0 1 0 0 0 "" ""
378 Key or mouse button
379 \newline 
380 Action
381 \newline 
382 Left button click
383 \newline 
384 Select (only) the item clicked on, or clear the selection.
385 \newline 
386 Middle button click
387 \newline 
388 Toggle the item between being selected and unselected.
389 \newline 
390 Right button click
391 \newline 
392 Open the main menu.
393  Hold down Ctrl while clicking to go directly to
394 \newline 
396 \newline 
397 the Selection submenu.
398 \newline 
399 Drag an item 
400 \newline 
401 Copy the file(s) to the destination (an application or another filer window).
402 \newline 
403 (left mouse button)
404 \newline 
405 Hold down Shift to move the file, or Ctrl+Shift to create a symbolic link.
406 \newline 
407 Drag an item
408 \newline 
409 As above, but always moves rather than copying or symlinking.
410 \newline 
411 (middle mouse button)
412 \newline 
414 \newline 
415 Drag (not over an item)
416 \newline 
417 Select a group of items by dragging a box around them.
418 \newline 
420 \newline 
421 If you use the left button then the boxed items only are selected, otherwise
422 \newline 
424 \newline 
425 the boxes items are toggled between selected and unselected.
426 \newline 
427 Double click left button
428 \newline 
429 Open the file or directory or run the application.
430 \newline 
432 \newline 
433 Holding down Shift while clicking does the same thing as choosing
434 \newline 
436 \newline 
437 `Shift Open' from the menu.
438 \newline 
439 Double click middle button
440 \newline 
441 Open the file and close the directory viewer,
442 \newline 
444 \newline 
445 or open the directory in a new window.
446 \newline 
447 Backspace
448 \newline 
449 Change to viewing the parent directory.
450 \newline 
451 Cursor keys
452 \newline 
453 Move the cursor around.
454 \newline 
455 Page Up, Page Down
456 \newline 
457 Move up and down in steps of ten rows at a time.
458 \newline 
459 Home, End
460 \newline 
461 Move to the first/last entry in the directory.
462 \newline 
463 Return
464 \newline 
465 Open the item under the cursor.
466  With Shift held down this acts like choosing 'Shift Open' from the menu.
467 \newline 
468 Spacebar
469 \newline 
470 Toggles the item under the cursor between being selected and unselected.
471 \layout Standard
474 \latex latex 
476 \backslash 
477 medskip
478 \backslash 
479 noindent 
480 \latex default 
481 You can simulate a click of the middle mouse button by clicking with Ctrl
482  held down.
483  Other keys can easily be defined by opening the menu, moving the pointer
484  over the item you want to use and pressing a key.
485  The key will appear in the menu and can be used from then on.
486  To make the new key bindings permanent, open the Options box from the menu
487  and click on Save.
488 \layout Subsection
490 The selection
491 \layout Standard
493 While items are selected in a ROX-Filer window the filer has the global
494  selection.
495  You can then paste into another window to get the pathnames of the selected
496  files.
497  For example, to extract the files from a .tgz archive on a floppy disk into
498  your home directory:
499 \layout Enumerate
501 Choose `Xterm here' from the menu in your home directory.
502 \layout Enumerate
504 Type `tar xzf ' (but don't press Return)
505 \layout Enumerate
507 Click on the .tgz file to select it.
508 \layout Enumerate
510 Click the middle button in the xterm window to paste the name of the file
511  into the command.
512 \layout Enumerate
514 Press Return in the xterm to execute the command.
515 \layout Subsection
518 \begin_inset LatexCommand \label{sec: Toolbar}
520 \end_inset 
522 The toolbar
523 \layout Standard
525 By default, each window has a toolbar along the top.
526  You can disable this from the Options window.
527  The three buttons on the toolbar are:
528 \layout Standard
529 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
530 multicol5
531 4 3 0 0 -1 -1 -1 -1
532 1 1 0 0
533 1 1 0 0
534 0 1 0 0
535 0 1 0 0
536 8 1 0 "" ""
537 2 1 1 "4.5cm" ""
538 2 0 1 "4.5cm" ""
539 0 8 0 1 0 0 0 "" ""
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 2 0 1 0 0 0 "" ""
544 0 8 0 1 0 0 0 "" ""
545 0 8 0 1 0 0 0 "" ""
546 0 2 0 1 0 0 0 "" ""
547 0 2 0 1 0 0 0 "" ""
548 0 8 0 1 0 0 0 "" ""
549 0 8 0 1 0 0 0 "" ""
550 0 8 0 1 0 0 0 "" ""
552 Icon
553 \newline 
554 Action
555 \newline 
556 Other action
557 \newline 
558 Up arrow
559 \newline 
560 Change to parent directory
561 \newline 
562 Show parent in a new window
563 \newline 
564 House
565 \newline 
566 Change to home directory
567 \newline 
568 Show home in a new window
569 \newline 
570 Looping arrows
571 \newline 
572 Reread the directory contents
573 \newline 
574 Open a new window
575 \layout Standard
578 \latex latex 
580 \backslash 
581 noindent 
582 \latex default 
583 If the toolbar is in Normal mode (ie, not GNOME mode) then you may also
584  use button 3 (usually the right-most button) to perform the `Other action'.
585 \layout Subsection
587 The menus
588 \layout Standard
590 You can open a menu by right clicking
591 \begin_float footnote 
592 \layout Standard
594 If the Use `RISC OS mouse bindings' option is on then use the middle button
595  instead.
596 \end_float 
597  over a panel or filer window.
598  Here is a full description of each choice and what it does:
599 \layout Standard
600 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
601 multicol5
602 6 2 0 0 -1 -1 -1 -1
603 1 1 0 0
604 1 1 0 0
605 0 1 0 0
606 0 1 0 0
607 0 1 0 0
608 0 1 0 0
609 8 1 0 "" ""
610 2 1 1 "8cm" ""
611 0 8 0 1 0 0 0 "" ""
612 0 8 0 1 0 0 0 "" ""
613 0 8 0 1 0 0 0 "" ""
614 0 8 0 1 0 0 0 "" ""
615 0 8 0 1 0 0 0 "" ""
616 0 8 0 1 0 0 0 "" ""
617 0 8 0 1 0 0 0 "" ""
618 0 2 0 1 0 0 0 "" ""
619 0 8 0 1 0 0 0 "" ""
620 0 8 0 1 0 0 0 "" ""
621 0 8 0 1 0 0 0 "" ""
622 0 8 0 1 0 0 0 "" ""
624 Entry
625 \newline 
626 Action
627 \newline 
628 Select All
629 \newline 
630 Select every item in this window.
631 \newline 
632 Clear Selection
633 \newline 
634 Unselect every item in this window.
635 \newline 
636 Options...
637 \newline 
638 Configure ROX-Filer.
639 \newline 
640 New Directory...
641 \newline 
642 Create a new directory in this one.
643 \newline 
644 Xterm Here
645 \newline 
646 Open an xterm with its current directory set to this directory.
647 \layout Subsubsection
649 The display menu
650 \layout Standard
651 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
652 multicol5
653 11 2 0 0 -1 -1 -1 -1
654 1 1 0 0
655 1 1 0 0
656 0 1 0 0
657 0 1 0 0
658 0 1 0 0
659 0 1 0 0
660 0 1 0 0
661 0 1 0 0
662 0 1 0 0
663 0 1 0 0
664 0 1 1 0
665 8 1 0 "" ""
666 2 1 1 "8cm" ""
667 0 8 0 1 0 0 0 "" ""
668 0 8 0 1 0 0 0 "" ""
669 0 8 0 1 0 0 0 "" ""
670 0 2 1 1 0 0 0 "" ""
671 0 8 0 1 0 0 0 "" ""
672 0 8 0 1 0 0 0 "" ""
673 0 8 0 1 0 0 0 "" ""
674 0 8 0 1 0 0 0 "" ""
675 0 8 0 1 0 0 0 "" ""
676 0 8 0 1 0 0 0 "" ""
677 0 8 0 1 0 0 0 "" ""
678 0 2 0 1 0 0 0 "" ""
679 0 8 0 1 0 0 0 "" ""
680 0 8 0 1 0 0 0 "" ""
681 0 8 0 1 0 0 0 "" ""
682 0 8 0 1 0 0 0 "" ""
683 0 8 0 1 0 0 0 "" ""
684 0 8 0 1 0 0 0 "" ""
685 0 8 0 1 0 0 0 "" ""
686 0 8 0 1 1 0 0 "" ""
687 0 8 0 1 0 0 0 "" ""
688 0 8 0 1 0 0 0 "" ""
690 Entry
691 \newline 
692 Action
693 \newline 
694 Large Icons
695 \newline 
696 Each object in the directory is shown as a large icon with its name below.
697 \newline 
698 Small Icons
699 \newline 
700 Items are drawn smaller that usual, allowing you to see more files at once.
701 \latex latex 
703 \backslash 
705 \latex default 
707 \newline 
708 Full Info
709 \newline 
710 Entries are displayed with their icon, name, type, permissions, owner and
711  size.
712 \newline 
713 Sort by Name
714 \newline 
715 Items are arranged in ASCII order.
716  Note that `Z' is considered to come before `a'.
717 \newline 
718 Sort by Type
719 \newline 
720 Items are grouped by their MIME-types and sorted by name within the groups.
721 \newline 
722 Sort by Date
723 \newline 
724 Most recently modified first.
725 \newline 
726 Sort by Size
727 \newline 
728 Largest first.
729 \newline 
730 Show Hidden
731 \newline 
732 If on, files beginning with a dot are shown, otherwise they are hidden.
733 \newline 
734 Refresh
735 \newline 
736 Rereads the contents of the directory and details of all the files in it.
737 \newline 
739 \newline 
740 Use this if the display becomes out-of-date.
741 \layout Standard
744 \latex latex 
746 \backslash 
747 noindent
748 \backslash 
750 \backslash 
751 thinspace{}
752 \latex default 
753 If ROX-Filer was unable to find ImLib
754 \begin_inset LatexCommand \cite{ImLib}
756 \end_inset 
758  when it was compiled then the icons are shown cropped rather than scaled.
759  Get ImLib and recompile if you want it to look nice.
760 \layout Subsubsection
763 \begin_inset LatexCommand \label{sec: Permissions}
765 \end_inset 
767 Permissions
768 \layout Standard
770 The permissions display, shown in Full Info mode, is made up of four groups
771  of three flags.
772  Each flag is displayed as a letter if it is on and a dash (-) if not.
773  The first three characters show the permissions for the owner of the file,
774  the second for other members of the file's group and the third for everyone
775  else.
776  Whichever group applies to the ROX-Filer process itself is shown underlined.
777  The fourth group shows any special flags.
778 \layout Standard
780 The meanings of the characters are:
781 \layout Description
783 r Permission to read the contents of a file, or the names of files in a
784  directory.
785 \layout Description
787 w Permission to alter the contents of a file, or change which names appear
788  in a directory.
789 \layout Description
791 x Permission to run the file as a program, or refer to the files listed
792  within the directory.
793 \layout Description
795 U This program executes with the 
796 \emph on 
797 effective user ID
798 \emph toggle 
799  of its owner rather than the person who ran it.
800 \layout Description
802 G This program executes with the 
803 \emph on 
804 effective group ID
805 \emph toggle 
806  of its group, regardless of who ran it.
807 \layout Description
809 T Entries in this directory can only be altered or removed by the people
810  who own the files even if they have write permission on the directory itself.
811 \layout Standard
813 For example, `
814 \family typewriter 
815 \bar under 
817 \bar default 
818 ,rwx,r-x/---
819 \family default 
820 ' means that the owner of the file is the same as the effective user of
821  ROX-Filer (basically, you own the file), you and members of the file's
822  group have read, write and execute permission and other people have only
823  read and execute permission.
824  There are no special flags set.
825 \layout Standard
827 The rules which determine which permissions apply may vary slightly between
828  operating systems, but a rough guide is:
829 \layout Itemize
831 If the
832 \emph on 
833  effective user ID
834 \emph toggle 
835  of the process is equal to the file's owner, then the owner permissions
836  apply.
837 \layout Itemize
839 Otherwise, if the 
840 \emph on 
841 effective group ID
842 \emph toggle 
843  of the process is equal to the file's group OR the file's group is one
844  of the process's 
845 \emph on 
846 supplemental groups
847 \emph toggle 
848  then the group permissions apply.
849 \layout Itemize
851 Otherwise, the `other' permissions apply.
852  The 
853 \emph on 
854 real user ID
855 \emph toggle 
856  and 
857 \emph on 
858 real group ID
859 \emph toggle 
860  have no effect (except that a process may set its real IDs to its effective
861  IDs).
862 \layout Subsubsection
864 The selection menu
865 \layout Standard
867 All of these work in the same way - if you open the menu with some items
868  selected then the operation applies to those items.
869  If you open then menu over an item while there is no selection then that
870  item is temporarily selected.
871  If you choose one of these while there is no selection at all then the
872  window goes into `target mode' - the operation happens to the next item
873  you click on.
874  Click on the window background, press Escape, or click with the right mouse
875  button to cancel target mode.
876  Target mode is mainly useful with the `Single click navigation' option
877  and keys bound to the various menu entries.
878 \layout Standard
879 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
880 multicol5
881 20 2 0 0 -1 -1 -1 -1
882 1 1 0 0
883 1 1 0 0
884 0 1 0 0
885 0 1 0 0
886 0 1 0 0
887 0 1 1 0
888 0 1 1 0
889 0 1 1 0
890 0 1 0 0
891 0 1 1 0
892 0 1 0 0
893 0 1 0 0
894 0 1 0 0
895 0 1 0 0
896 0 1 1 0
897 0 1 1 0
898 0 1 0 0
899 0 1 1 0
900 0 1 0 0
901 0 1 0 0
902 8 1 0 "" ""
903 2 1 1 "10cm" ""
904 0 8 0 1 0 0 0 "" ""
905 0 8 0 1 0 0 0 "" ""
906 0 8 0 1 0 0 0 "" ""
907 0 8 0 1 0 0 0 "" ""
908 0 8 0 1 0 0 0 "" ""
909 0 2 0 1 0 0 0 "" ""
910 0 8 0 1 0 0 0 "" ""
911 0 8 0 1 0 0 0 "" ""
912 0 8 0 1 0 0 0 "" ""
913 0 2 0 1 1 0 0 "" ""
914 0 8 0 1 0 0 0 "" ""
915 0 2 0 1 1 0 0 "" ""
916 0 8 0 1 0 0 0 "" ""
917 0 2 0 1 1 0 0 "" ""
918 0 8 0 1 0 0 0 "" ""
919 0 8 0 1 0 0 0 "" ""
920 0 8 0 1 0 0 0 "" ""
921 0 8 0 1 1 0 0 "" ""
922 0 8 0 1 0 0 0 "" ""
923 0 8 0 1 0 0 0 "" ""
924 0 8 0 1 0 0 0 "" ""
925 0 8 0 1 0 0 0 "" ""
926 0 8 0 1 0 0 0 "" ""
927 0 8 0 1 0 0 0 "" ""
928 0 8 0 1 0 0 0 "" ""
929 0 8 0 1 0 0 0 "" ""
930 0 8 0 1 0 0 0 "" ""
931 0 8 0 1 1 0 0 "" ""
932 0 8 0 1 0 0 0 "" ""
933 0 8 0 1 1 0 0 "" ""
934 0 8 0 1 0 0 0 "" ""
935 0 8 0 1 0 0 0 "" ""
936 0 8 0 1 0 0 0 "" ""
937 0 8 0 1 1 0 0 "" ""
938 0 8 0 1 0 0 0 "" ""
939 0 8 0 1 0 0 0 "" ""
940 0 8 0 1 0 0 0 "" ""
941 0 8 0 1 0 0 0 "" ""
942 0 8 0 1 0 0 0 "" ""
943 0 8 0 1 0 0 0 "" ""
945 Entry
946 \newline 
947 Action
948 \newline 
949 Copy...
950 \newline 
951 Make a copy of this object in the same directory.
952 \newline 
953 Rename...
954 \newline 
955 Change the name used for this object.
956 \newline 
957 Link...
958 \newline 
959 Create a symbolic link to this name in the same directory.
960 \newline 
961 Shift Open
962 \newline 
963 Opens applications as directories, files as text/plain, mount points
964 \newline 
966 \newline 
967 by mounting or unmounting them and symlinks by opening the directory
968 \newline 
970 \newline 
971 containing the thing they point to.
972 \newline 
974 \newline 
975 This is the same as double-clicking with Shift held down.
976 \newline 
977 Help
978 \newline 
979 Explain what kind of thing is selected.
980  For applications,
981 \newline 
983 \newline 
984 display the help files.
985 \newline 
986 Info
987 \newline 
988 Display extra information about this object.
989 \newline 
990 Open VFS
991 \newline 
992 Open the file as if it was a directory --- see section 
993 \begin_inset LatexCommand \ref{sec: vfs}
995 \end_inset 
998 \newline 
999 Mount
1000 \newline 
1001 Mount or unmount each mount point selected.
1002 \newline 
1003 Delete
1004 \newline 
1005 Remove all the selected entries from the directory.
1006 \newline 
1008 \newline 
1009 Subdirectories will have their contents deleted first.
1010 \newline 
1012 \newline 
1013 Deleting symlinks only removes the link, not the thing it points to.
1014 \newline 
1015 Disk Usage
1016 \newline 
1017 Count the sizes of all the selected items.
1018  Directories also have their
1019 \newline 
1021 \newline 
1022 contents counted.
1023  Symlinks count themselves, not the things they point to.
1024 \newline 
1025 Permissions
1026 \newline 
1027 Allows you to change the permissions for the selected files.
1028 \newline 
1029 Find
1030 \newline 
1031 Search for files by specifying various conditions --- see section 
1032 \begin_inset LatexCommand \ref{sec: Searching}
1034 \end_inset 
1037 \layout Subsubsection
1039 The window menu
1040 \layout Standard
1041 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1042 multicol5
1043 10 2 0 0 -1 -1 -1 -1
1044 1 1 0 0
1045 1 1 0 0
1046 0 1 0 0
1047 0 1 0 0
1048 0 1 0 0
1049 0 1 0 0
1050 0 1 0 0
1051 0 1 0 0
1052 0 1 1 0
1053 0 1 0 0
1054 8 1 0 "" ""
1055 2 1 1 "8cm" ""
1056 0 8 0 1 0 0 0 "" ""
1057 0 8 0 1 0 0 0 "" ""
1058 0 8 0 1 0 0 0 "" ""
1059 0 2 0 1 0 0 0 "" ""
1060 0 8 0 1 0 0 0 "" ""
1061 0 8 0 1 0 0 0 "" ""
1062 0 8 0 1 0 0 0 "" ""
1063 0 8 0 1 0 0 0 "" ""
1064 0 8 0 1 0 0 0 "" ""
1065 0 8 0 1 0 0 0 "" ""
1066 0 8 0 1 0 0 0 "" ""
1067 0 8 0 1 0 0 0 "" ""
1068 0 8 0 1 0 0 0 "" ""
1069 0 8 0 1 0 0 0 "" ""
1070 0 8 0 1 0 0 0 "" ""
1071 0 8 0 1 1 0 0 "" ""
1072 0 8 0 1 0 0 0 "" ""
1073 0 8 0 1 0 0 0 "" ""
1074 0 8 0 1 0 0 0 "" ""
1075 0 8 0 1 0 0 0 "" ""
1077 Entry
1078 \newline 
1079 Action
1080 \newline 
1081 Parent, New Window
1082 \newline 
1083 Open a new window displaying this window's parent.
1084 \newline 
1085 Parent, Same Window
1086 \newline 
1087 As above, but reuse this window.
1088 \newline 
1089 New Window
1090 \newline 
1091 Open another window onto this directory.
1092 \newline 
1093 Close Window
1094 \newline 
1095 Close this window.
1096 \newline 
1097 Enter Path
1098 \newline 
1099 Open the path-entry box (see section 
1100 \begin_inset LatexCommand \ref{sec: mini}
1102 \end_inset 
1105 \newline 
1106 Shell Command
1107 \newline 
1108 Open the shell command box (see section 
1109 \begin_inset LatexCommand \ref{sec: mini}
1111 \end_inset 
1114 \newline 
1115 Set Run Action
1116 \newline 
1117 Allows you to set the program to use when double-clicking on a file.
1118 \newline 
1120 \newline 
1121 See section 
1122 \begin_inset LatexCommand \ref{sec: RunAction}
1124 \end_inset 
1126  for details.
1127 \newline 
1128 Show ROX-Filer help
1129 \newline 
1130 Same as selecting ROX-Filer and choosing `Help' from the menu.
1131 \layout Subsubsection
1133 The panel menu
1134 \layout Standard
1136 This is just a cut-down version of the window menu.
1137  The only new entry is `Open Panel as Directory', which displays the panel
1138  in a new, non-panel, window.
1139  `Remove Item' is a cut-down version of `Delete'; it only works for symbolic
1140  links and never asks for confirmation.
1141  Since dragging applications and directories to the panel creates symlinks
1142  it is very easy to change the panel contents to suit your needs.
1143 \layout Subsection
1146 \begin_inset LatexCommand \label{sec: vfs}
1148 \end_inset 
1150 Virtual file systems
1151 \layout Standard
1153 Some types of file can be represented as a directory.
1154  A typical example is a zip file, which contains an entire directory structure
1155  in compressed form.
1156  It is often useful to be able to open up such a file as if it was a real
1157  directory, and the VFS system allows you to do this.
1158 \layout Standard
1160 To use this feature you must have one or both of the following:
1161 \layout Itemize
1163 A system (such as PODFUK
1164 \begin_inset LatexCommand \cite{PODFUK}
1166 \end_inset 
1168 ) which causes the kernel to support various Virtual File Systems directly.
1169  This is the best option since all programs will be able to access the contents
1170  of the VFS.
1171  You will require root access to install such a system, however, and it
1172  is not available on all platforms.
1173 \layout Itemize
1175 Support for the Midnight Commander VFS library compiled into ROX-Filer.
1176  This happens automatically when you compile ROX-Filer if it can find the
1177  VFS library --- this means having 
1178 \family typewriter 
1179 libvfs.so
1180 \family default 
1181  (or 
1182 \family typewriter 
1183 libvfs.a
1184 \family default 
1185 ) in a system library directory or in the directory in the environment variable
1187 \family typewriter 
1188 LD_LIBRARY_PATH
1189 \family default 
1191  In this case, you will be able to view the directory structure and copy
1192  files out of it, but not change it.
1193  Support for this may be added later.
1194  Midnight Commander is part of the GNOME project.
1195 \layout Standard
1197 Note that using the `Open VFS' menu is simply a short-cut for using the
1198  path-entry box (explained below), so if you want to use a VFS not listed
1199  on the menu you can type in the path directly, eg:
1200 \layout Standard
1203 \family typewriter 
1204 /home/fred/archive.zip#uzip/
1205 \layout Standard
1208 \latex latex 
1210 \backslash 
1211 noindent 
1212 \latex default 
1213 Don't forget the final slash!
1214 \layout Subsubsection
1216 Step by step example of adding VFS support
1217 \layout Standard
1219 This assumes that you have the Midnight Commander source in a directory
1220  called `mc'.
1221  You might need to replace 
1222 \family typewriter 
1223 libvfs.so 
1224 \family default 
1225 with 
1226 \family typewriter 
1227 libvfs.a
1228 \family default 
1230 \layout LyX-Code
1232 $ cd mc
1233 \layout LyX-Code
1235 $ ./configure
1236 \layout LyX-Code
1238 $ cd vfs
1239 \layout LyX-Code
1241 $ make libvfs.so
1242 \layout Itemize
1244 If you have the root password then install the library in a system library
1245  directory as normal.
1246 \layout Itemize
1248 If not,
1249 \begin_deeper 
1250 \layout LyX-Code
1252 $ mkdir ~/lib
1253 \layout LyX-Code
1255 $ cp libvfs.so ~/lib
1256 \layout LyX-Code
1258 $ cd ~/Apps/ROX-Filer
1259 \layout Standard
1261 Edit the 
1262 \family typewriter 
1263 AppRun
1264 \family default 
1265  file to include this as the 
1266 \emph on 
1267 second
1268 \emph toggle 
1269  line:
1270 \layout LyX-Code
1272 LD_LIBRARY_PATH=${HOME}/lib; export LD_LIBRARY_PATH
1273 \layout Standard
1275 This will ensure that ROX-Filer will look for the library in the new 
1276 \family typewriter 
1277 ~/lib
1278 \family default 
1279  directory.
1280  Finally, recompile:
1281 \layout LyX-Code
1283 $ ./AppRun --compile
1284 \layout LyX-Code
1287 \layout LyX-Code
1289 checking for mc_stat in -lvfs...
1290  yes
1291 \layout Standard
1293 If you saw that line then it's worked! Well done!
1294 \end_deeper 
1295 \layout Subsection
1298 \begin_inset LatexCommand \label{sec: mini}
1300 \end_inset 
1302 The mini-buffer
1303 \layout Standard
1305 The mini-buffer is a white bar that appears along the bottom of the window
1306  and allows you to enter some text.
1307  Press Escape to get rid of it again.
1308  It behaves in different ways depending on how you invoked it:
1309 \layout Subsubsection
1311 The path-entry box
1312 \layout Standard
1314 This allows you to type in a path directly.
1315  As you type the display is updated to show the item entered visually.
1316  The main use is to find a file in a large directory quickly, but you can
1317  also use it for navigating between directories, or for selecting a full
1318  pathname from somewhere else and pasting it directly into the path-entry
1319  box.
1320 \layout Standard
1321 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1322 multicol5
1323 4 2 0 0 -1 -1 -1 -1
1324 1 1 0 0
1325 0 1 0 0
1326 0 1 0 0
1327 0 1 0 0
1328 8 1 0 "" ""
1329 2 1 1 "8cm" ""
1330 0 8 0 1 0 0 0 "" ""
1331 0 8 0 1 0 0 0 "" ""
1332 0 8 0 1 0 0 0 "" ""
1333 0 8 0 1 0 0 0 "" ""
1334 0 8 0 1 0 0 0 "" ""
1335 0 8 0 1 0 0 0 "" ""
1336 0 8 0 1 0 0 0 "" ""
1337 0 8 0 1 0 0 0 "" ""
1340 \newline 
1341 Action
1342 \newline 
1343 Return
1344 \newline 
1345 Open the currently selected item.
1346 \newline 
1348 \newline 
1349 Shell-style tab completion.
1350 \newline 
1351 Up, Down
1352 \newline 
1353 Select the previous/next matching entry.
1354 \layout Standard
1356 Tab completion tries to fill in as many characters for you as it can.
1357  For example, if there are two files in a directory called `save-mail-nov-1999'
1358  and `save-mail-dec-1999' then typing 'save' and pressing Tab will expand
1359  `save' to `save-mail-' and beep to indicate that the match is not complete.
1360  If you use tab completion on a directory and it is unique then the filer
1361  will automatically change into the directory.
1362  This behavior should be familiar to shell users.
1363 \layout Subsubsection*
1365 Example
1366 \layout Standard
1368 Let's say you want to locate the documentation for Wine in the directory
1369  /usr/doc (which is usually very large).
1370  Here's how you could do it:
1371 \layout Enumerate
1373 Open the minibuffer by choosing 'Enter Path' from the Window menu.
1374  I usually bind this function to the slash (`/') key.
1375 \layout Enumerate
1377 Press CTRL-U to delete the existing contents --- this moves you to the root
1378  directory.
1379 \layout Enumerate
1381 Type `u
1382 \latex latex 
1384 \backslash 
1385 Tab{}
1386 \latex default 
1388 \latex latex 
1390 \backslash 
1391 Tab{}
1392 \latex default 
1394 \latex latex 
1396 \backslash 
1397 Tab{}
1398 \latex default 
1400  As you type, the cursor will move to the correct subdirectory.
1401  If it beeps when you press Tab then you need to supply more letters.
1402 \layout Subsubsection
1405 \begin_inset LatexCommand \label{sec: RunAction}
1407 \end_inset 
1409 The run action box
1410 \layout Standard
1412 This box appears when you choose `Set Run Action' from the Window menu.
1413  You can now either drag a file onto an application, or you can enter a
1414  shell command.
1415  In either case, the action is not actually performed but instead becomes
1416  the default action for files of that type.
1417 \layout Standard
1419 All files have a MIME type in the form `
1420 \family typewriter 
1421 text/plain
1422 \family default 
1424  Here, `
1425 \family typewriter 
1426 text
1427 \family default 
1428 ' is the 
1429 \emph on 
1430 media type
1431 \emph toggle 
1432  and `
1433 \family typewriter 
1434 plain
1435 \family default 
1436 ' is the 
1437 \emph on 
1438 sub-type
1439 \emph toggle 
1441  Whichever method you use to set the action you will be given the choice
1442  of setting the run action just for that type, or setting the default for
1443  all files with that media-type which don't already have a specific action.
1444 \layout Standard
1446 For example, let's say you want to set things up so that double-clicking
1447  on a `.gif' file loads it into the Gimp:
1448 \layout Paragraph
1450 Setting the run action by drag-and-drop
1451 \newline 
1453 \layout Standard
1455 Choose `Set Run Action' from the Window menu and, while the minibuffer is
1456  still open, drag a GIF file from the filer window onto the Gimp's application
1457  directory (probably in another filer window).
1458 \layout Paragraph
1460 Setting the run action by entering a shell command
1461 \newline 
1463 \layout Standard
1465 Type:
1466 \layout LyX-Code
1468 gimp 
1469 \begin_inset Quotes erd
1470 \end_inset 
1473 \begin_inset Quotes erd
1474 \end_inset 
1477 \layout Standard
1479 and press Return.
1480  Note that the cursor (the black box) must be on the GIF file when you press
1481  Return.
1482 \layout Subsubsection
1484 The shell command box
1485 \layout Standard
1487 This provides a quick way of entering shell commands if you don't want to
1488  open an xterm.
1489  If you don't know what shell commands are, skip this section!
1490 \layout Standard
1492 Just type in the command and press Return to execute it.
1493  Up and Down arrows move through previously entered commands.
1494  Tab does shell-style completion.
1495  Clicking on an item inserts its name into the minibuffer.
1496  If some items are selected then they are assigned to the positional parameters
1498 \family typewriter 
1500 \family default 
1502 \family typewriter 
1504 \family default 
1505 , etc.
1506 \layout Subsubsection*
1508 Examples
1509 \layout Standard
1511 To untar a 
1512 \family typewriter 
1513 .tgz
1514 \family default 
1515  archive:
1516 \layout Enumerate
1518 Open the minibuffer by choosing `Shell Command' from the Window menu.
1519  I usually bind this to the bang (`!') key.
1520 \layout Enumerate
1522 Type `
1523 \family typewriter 
1524 tar xzf
1525 \family default 
1526 ' and click on the file.
1527  The leading space is automatically inserted.
1528 \layout Enumerate
1530 Press Return to execute it.
1531 \layout Standard
1533 To print all the selected files:
1534 \layout Enumerate
1536 Open the shell command minibuffer.
1537 \layout Enumerate
1539 Type 
1540 \family typewriter 
1541 `lpr $*
1542 \family default 
1543 ' and press Return.
1544 \layout Subsubsection*
1546 Notes
1547 \layout Itemize
1549 Be careful; you will not be asked to confirm! If in doubt, start the command
1550  with `
1551 \family typewriter 
1552 echo
1553 \family default 
1554 ' so that it will be displayed rather than executed.
1555 \layout Itemize
1557 The above command won't work if some of the files contain spaces --- use
1559 \family typewriter 
1560 lpr 
1561 \latex latex 
1563 \latex default 
1565 \latex latex 
1567 \family default 
1568 \latex default 
1569 ' instead to be safe.
1570 \layout Itemize
1572 `sh' is always used as the name of the shell to run (mainly because bash
1573  and csh treat positional parameters differently).
1574  However, PATH is searched to find it so you can still use another shell
1575  if you want by naming it sh and putting it in your path.
1576 \layout Itemize
1578 Commands execute in the background, so you can say:
1579 \begin_deeper 
1580 \layout LyX-Code
1582 sleep 240; xmessage Time to go!
1583 \end_deeper 
1584 \layout Subsection
1586 Action windows
1587 \layout Standard
1589 Action windows are those boxes that appear while you're doing a Copy/Move/Link/e
1590 tc operation.
1591  The status line at the top of the window shows the current directory or
1592  object that the window is processing.
1593  The scrolling area below is the log area --- it shows what has been done
1594  and may display questions here.
1595 \layout Standard
1597 At the bottom are four buttons and, sometimes, some options.
1598  The buttons work as follows:
1599 \layout Description
1601 Quiet will do simple operations without asking you to confirm each one.
1602  By turning this on and off during an operation you can use it like a pause
1603  button.
1604 \layout Description
1606 Yes answers yes to the question displayed in the log area.
1607 \layout Description
1609 No answers no to the question displayed in the log area.
1610 \layout Description
1612 Abort kills the current operation (if any) and closes the action window.
1613 \layout Standard
1615 You can control which actions get started automatically (without you having
1616  to click on Quiet at the start) from the Options window.
1617 \layout Subsubsection
1619 Action window options
1620 \layout Standard
1622 Some actions have options, which appear as option boxes at the bottom of
1623  the window.
1624  They are:
1625 \layout Itemize
1627 `Force' means that the filer won't treat non-writeable files as special.
1628  Normally, it confirms the deletion even if Quiet is pressed.
1629  Note that you still can't remove files from non-writeable directories because
1630  in that case you really don't have permission.
1631 \layout Itemize
1633 `Brief' prevents the filer logging a message every time it does something.
1634  Use this to speed things up if large numbers of messages are being logged.
1635 \layout Itemize
1637 `Recurse' means that doing something to a directory will also do the same
1638  thing to all its contents, and the contents of any subdirectories, and
1639  so on.
1640 \layout Subsection
1643 \begin_inset LatexCommand \label{sec: Searching}
1645 \end_inset 
1647 Searching
1648 \layout Standard
1650 The Find feature looks through all the selected files and directories and
1651  any subdirectories (recursively) looking for items that match a particular
1652  expression.
1653 \layout Standard
1655 If you know the name of a file then just enter it in the `Expression:' box,
1656  enclosed in single quotes.
1657  For example, to find a file called `log' you would enter:
1658 \layout LyX-Code
1660 'log'
1661 \layout Standard
1663 Remember to use normal quotes, not double quotes (
1664 \family typewriter 
1666 \begin_inset Quotes eld
1667 \end_inset 
1670 \family default 
1671 ) or back-quotes (
1672 \family typewriter 
1674 \family default 
1676 \layout Standard
1678 As the filer finds matching files they are added to the results list.
1679  Clicking on an entry in the list opens a viewer showing the file you clicked
1680  on.
1681  The filer will use the same window to view other results (so, if you want
1682  the results shown in separate windows you must explicitly create a new
1683  window from the Window menu).
1684 \layout Subsubsection
1686 Wildcards
1687 \layout Standard
1689 You can also put shell-style wildcard characters inside the quotes, for
1690  example:
1691 \layout LyX-Code
1693 '*.html'
1694 \layout LyX-Code
1696 'Report.*'
1697 \layout LyX-Code
1699 'Draft[1-5]'
1700 \layout LyX-Code
1702 'main.[ch]'
1703 \layout Standard
1705 Look at the 
1706 \family typewriter 
1707 glob(7)
1708 \family default 
1709  manpage if you want to know more about shell wildcards.
1710 \layout Standard
1712 If the pattern you enter contains a slash ('/') character then the pattern
1713  is matched against the file's full path, otherwise only the leafname is
1714  used.
1715  That is, 
1716 \family typewriter 
1717 '*tmp*'
1718 \family default 
1719  will find 'tmp' and 'tmpfile' but not '/tmp/file' --- 
1720 \family typewriter 
1721 '/*tmp*'
1722 \family default 
1723  will find all three.
1724 \layout Subsubsection
1726 Simple tests
1727 \layout Standard
1729 As well as finding files by their names you can also find them by various
1730  other attributes.
1731  Note that `file' is used here to mean anything that can appear in the filesyste
1732 m --- including directories, devices and so on.
1733 \layout Standard
1736 \latex latex 
1738 \backslash 
1739 smallskip
1740 \backslash 
1741 noindent 
1742 \latex default 
1743 These look at the type of the item being checked:
1744 \layout Description
1746 IsReg matches any regular (ie, normal) file.
1747 \layout Description
1749 IsLink matches symlinks.
1750 \layout Description
1752 IsDir matches directories.
1753 \layout Description
1755 IsChar matches character device files.
1756 \layout Description
1758 IsBlock matches block device files.
1759 \layout Description
1761 IsDev matches block or character device files.
1762 \layout Description
1764 IsPipe matches pipes.
1765 \layout Description
1767 IsSocket matches sockets.
1768 \layout Standard
1770 These look at the permissions set on the file - see section 
1771 \begin_inset LatexCommand \ref{sec: Permissions}
1773 \end_inset 
1776 \layout Description
1778 IsSUID matches files which have the Set-UID bit set.
1779 \layout Description
1781 IsSGID matches files which have the Set-GID bit set.
1782 \layout Description
1784 IsSticky matches files with the sticky bit set,
1785 \layout Description
1787 IsReadable matches files which you can read from.
1788 \layout Description
1790 IsWriteable matches files which you can write to.
1791 \layout Description
1793 IsExecutable matches files which you can execute.
1794 \layout Standard
1796 And a couple of other useful ones:
1797 \layout Description
1799 IsEmpty finds empty files (ie, those whose length is 0 bytes).
1800 \layout Description
1802 IsMine finds files which you own.
1803 \layout Subsubsection
1805 Logic operators
1806 \layout Standard
1808 You can combine the above tests in various ways to perform more advanced
1809  searches.
1810  An expression is actually made up of a list of 
1811 \emph on 
1812 cases
1813 \emph toggle 
1814 , separated by commas.
1815  The filer will try to match each case in turn until one matches or there
1816  are no more cases left.
1817  For example, to search for files with several possible endings:
1818 \layout LyX-Code
1820 '*.gif', '*.htm', '*.html'
1821 \layout Standard
1823 Further, each of the cases is actually a list of conditions.
1824  The case only matches if all of its conditions are met.
1825  So, to find a directory called 
1826 \family typewriter 
1828 \family default 
1829  or a regular file ending in 
1830 \family typewriter 
1832 \family default 
1834 \layout LyX-Code
1836 IsDir 'lib', IsReg '*.so'
1837 \layout Standard
1839 You can negate a condition by putting a 
1840 \family typewriter 
1842 \family default 
1843  in front of it and you can use a sub-expression as a condition by bracketing
1844  it, like this:
1845 \layout LyX-Code
1847 ! (IsDir, IsReg)
1848 \layout LyX-Code
1850 !IsDir !IsReg
1851 \layout LyX-Code
1853 Not isdir and not isreg
1854 \layout Standard
1856 All three do the same thing.
1857 \layout Subsubsection
1859 Comparisons
1860 \layout Standard
1862 You can also compare various values using the operators 
1863 \family typewriter 
1864 <, <=, =, !=, >, >=
1865 \family default 
1866  (for less-than, less-than-or-equal-to, equal-to, not-equal-to, greater-than
1867  and greater-than-or-equal-to).
1868  When comparing times, you may find it helpful to use 
1869 \family typewriter 
1870 after 
1871 \family default 
1872 and 
1873 \family typewriter 
1874 before
1875 \family default 
1876  instead of 
1877 \family typewriter 
1879 \family default 
1880  and 
1881 \family typewriter 
1883 \family default 
1884  to make things clearer.
1885 \layout Standard
1887 The following are read from the file being checked and may be used for the
1888  values being compared:
1889 \layout Description
1891 atime The time that the file was last accessed.
1892 \layout Description
1894 ctime The time that the file's status was last changed.
1895 \layout Description
1897 mtime The time that the file's contents were last modified.
1898 \layout Description
1900 size The size of the file.
1901 \layout Description
1903 inode The file's inode (index) number
1904 \layout Description
1906 nlinks The number of links to this file (that is, the number of directory
1907  entries which refer to this file.
1908  Note that symlinks don't count as references).
1909 \layout Description
1911 uid The User ID of the file.
1912 \layout Description
1914 gid The Group ID of the file.
1915 \layout Description
1917 blocks The number of disk blocks being used by the file.
1918 \layout Standard
1920 Times are measured as seconds since the Unix Epoch (00:00:00 UTC, January
1921  1, 1970).
1922  Sizes are in bytes.
1923  When specifying constants to compare these values with you may use various
1924  keywords to scale the value:
1925 \layout Description
1927 Byte(s) has no effect, but looks better.
1928 \layout Description
1930 Kb multiplies by 1024, so 2Kb is the same as 2048.
1931 \layout Description
1933 Mb multiplies by 
1934 \begin_inset Formula \( 1024^{2} \)
1935 \end_inset 
1937 , ie 1024 Kb.
1938 \layout Description
1940 Sec(s) has no effect, but looks nice.
1941 \layout Description
1943 Min(s) multiplies by 60 to get minutes.
1944 \layout Description
1946 Hour(s),
1947 \protected_separator 
1948 Day(s),
1949 \protected_separator 
1950 Week(s),
1951 \protected_separator 
1952 Year(s) likewise convert to the relevant unit.
1953 \layout Description
1955 Ago makes the time in the past relative to when the check is done.
1956 \layout Description
1958 Hence makes the time in the future.
1959 \layout Description
1961 Now is short for `
1962 \family typewriter 
1963 0 Secs Hence
1964 \family default 
1966 \layout Standard
1968 Some examples should make this all a bit clearer!
1969 \layout LyX-Code
1971 mtime after 1 day ago
1972 \layout LyX-Code
1974 size > 10 Mb
1975 \layout LyX-Code
1977 IsReg and nlinks > 1
1978 \layout Standard
1980 The first finds files modified within the last 24 hours.
1981  You could use 
1982 \family typewriter 
1984 \family default 
1985  instead of 
1986 \family typewriter 
1987 after,
1988 \family default 
1989 but it's not so clear what is meant.
1990  The second finds files larger than 10 Mb and the last finds regular files
1991  with more than one directory entry.
1992 \layout Standard
1994 Be careful though --- the filer doesn't check the context of the modifiers,
1995  so 
1996 \family typewriter 
1997 size > 1 day ago
1998 \family default 
1999  is allowed, although it doesn't make much sense! Also, forgetting to use
2001 \family typewriter 
2003 \family default 
2004  or 
2005 \family typewriter 
2006 hence
2007 \family default 
2008  will cause odd effects (the time will be measured relative to the Epoch
2009  rather than the current time).
2010  Finally, don't use = with times --- 
2011 \family typewriter 
2012 atime = 1 day ago
2013 \family default 
2014  looks for a file accessed 
2015 \emph on 
2016 exactly
2017 \emph toggle 
2018  86400 seconds ago...
2019 \layout Subsubsection
2021 Specials
2022 \layout Description
2024 System(Command) executes `Command' on the file.
2025  The test succeeds if the command returns an exit status of zero.
2026  A `%' character in `Command' is replaced by the full path of the file being
2027  checked.
2028  System is a very slow test to perform, so do it last if possible.
2029  For example, if you're looking for a .c file containing the word `main',
2030  do
2031 \begin_deeper 
2032 \layout LyX-Code
2034 '*.c' system(grep -q main
2035 \latex latex 
2037 \backslash 
2038 thinspace{}
2039 \latex default 
2041 \latex latex 
2043 \backslash 
2044 thinspace{}"
2045 \latex default 
2047 \layout Standard
2049 so that the grep is only performed for files ending in .c (as opposed to
2050  only checking that the file ends in .c if it contains the word `main').
2051 \end_deeper 
2052 \layout Description
2054 Prune Always fails!
2055 \begin_float footnote 
2056 \layout Standard
2058 Note that this is the opposite of the 
2059 \noun on 
2060 find(1)
2061 \noun toggle 
2062  command.
2063 \end_float 
2064  However, if it gets evaluated at all then it prevents the filer from checking
2065  inside the current directory.
2066  Remember the order in which the filer checks the expression!
2067 \layout Standard
2069 Examples:
2070 \layout LyX-Code
2072 '*.old' system(echo rm %)
2073 \layout LyX-Code
2075 'src' prune, '*.c'
2076 \layout Standard
2078 The first displays a command to delete each file ending in 
2079 \family typewriter 
2080 .old
2081 \family default 
2082 ; you can either paste the results into an xterm to execute them or run
2083  the search again without the 
2084 \family typewriter 
2085 echo
2086 \family default 
2088  It's always a good idea to use 
2089 \family typewriter 
2090 echo
2091 \family default 
2092  first with dangerous commands! The second looks for 
2093 \family typewriter 
2095 \family default 
2096  files, but does not bother checking inside directories called 
2097 \family typewriter 
2099 \family default 
2101  The expression is evaluated like this:
2102 \layout Standard
2103 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
2105 \begin_inset Figure size 216 180
2106 file Prune.eps
2107 height 2 2.5
2108 flags 9
2110 \end_inset 
2113 \layout Subsection
2115 Options
2116 \layout Standard
2118 You can configure various aspects of ROX-Filer from the Options box.
2119  Choose `Options...' from a filer window menu to open it.
2121 \layout Standard
2123 At the bottom of the window are four buttons:
2124 \layout Description
2126 Save puts all your choices into effect, and also saves them into your Choices
2127  directory for next time ROX-Filer is loaded.
2128  ROX-Filer will never save any preferences to disk unless you click on the
2129  `Save' button in the options window.
2130  Exactly where choices are loaded from and saved to is controlled by the
2132 \family typewriter 
2133 CHOICESPATH
2134 \family default 
2135  environment variable --- see 
2136 \begin_inset LatexCommand \cite{Choices}
2138 \end_inset 
2140  for details.
2141 \layout Description
2143 OK puts your choices into effect without writing anything to disk.
2144 \layout Description
2146 Apply works like OK, but without closing the Options window.
2147 \layout Description
2149 Cancel closes the options box and forgets any changes you made.
2150 \layout Subsubsection
2152 Action window options
2153 \layout Standard
2155 You can choose to start some operations automatically, without waiting for
2156  you to click on Quiet.
2157  Select each operation that you want to auto-start here.
2158 \layout Subsubsection
2160 Filer window options
2161 \layout Itemize
2163 `Ignore case when sorting' treats upper and lower case letters as equivalent
2164  when sorting.
2165  If this is off then `Zoo' comes before `animal', for example.
2166 \layout Itemize
2168 `New window on button 1' swaps the actions of the two non-menu buttons when
2169  opening directories.
2170  This is provided for people who are used to the RISC OS mouse bindings.
2171 \layout Itemize
2173 `Menu on button 2' swaps the actions of buttons 2 and 3 so that the middle
2174  button brings up the menus.
2175  This is provided for people who are used to the RISC OS mouse bindings.
2176 \layout Itemize
2178 `Single-click navigation' treats a single click over an item as if it was
2179  a double click.
2180  This allows you to move around, run applications and open files without
2181  double clicking.
2182  To select a file 
2183 \emph on 
2184 without
2185 \emph toggle 
2186  opening it you must hold down CTRL while you click.
2187 \layout Itemize
2189 `Unique windows' prevents you from having two windows showing the same directory.
2190  Opening a second view onto a directory closes the first.
2191 \layout Itemize
2193 `Toolbar type for new windows' allows you to choose what kind of toolbar
2194  will be used for future filer windows (the currently open windows are not
2195  affected).
2196  None means that new windows will not have a toolbar, Normal provides a
2197  small bar of icons, and GNOME displays larger icons with textual labels
2198  and allows the bar to be detached from the window by dragging it.
2199  See section 
2200 \begin_inset LatexCommand \ref{sec: Toolbar}
2202 \end_inset 
2204  for details.
2205 \layout Standard
2207 The last display style and sort type you chose will also be saved as the
2208  defaults for next time.
2209 \layout Subsubsection
2211 Drag-And-Drop options
2212 \layout Standard
2214 ROX-Filer uses the standard XDND protocol for drag-and-drop.
2215  This protocol recommends that URIs should contain the hostname of the computer
2216  that the resource is on so that the program receiving the data can determine
2217  whether it can get the data directly or whether it must go via the X-server.
2218  However, many older programs (particularly GNOME applications) get confused
2219  by the hostname and fail to load the data correctly.
2220  If `Don't use hostnames' is on then the hostname part is omitted and ROX-Filer
2221  will work with these applications BUT you can't drag data to a program
2222  running on a different machine.
2223 \layout Standard
2225 `Allow dragging to icons in filer windows' controls what happens when you
2226  drop files onto icons in filer windows.
2227  If on then drops onto directories will save the data inside the directory
2228  while dropping onto programs will invoke the program on that data.
2229  If off then drops anywhere inside a filer window act like drops onto the
2230  window background --- that is, the data will be saved into the directory
2231  being displayed.
2232 \layout Subsubsection
2234 Menu options
2235 \layout Standard
2237 The `Xterm here' program is the one used when you choose `Xterm here' from
2238  the menu.
2239  You can replace it with another program such as `gnome-terminal' if you
2240  like.
2241  In fact, any program will do, but note that you cannot pass any options
2242  to the program at present.
2243 \layout Section
2245 Filetypes
2246 \layout Standard
2248 ROX-Filer uses three sub-directories in your Choices directory for filetypes:
2249 \layout Description
2251 MIME-info contains files which specify what the MIME type for a file should
2252  be, based on its extention.
2253  All the files in all the MIME-info directories are scanned when the filer
2254  loads.
2255  In addition, ROX-Filer is now supplied with a file called `MIME-info' (inside
2256  its application directory), which is also scanned --- this allows new users
2257  to get started more easily.
2258  Many applications now come with a file called `something.mime'; copy these
2259  files into your MIME-info directory to make ROX-Filer automatically recognise
2260  the new extensions.
2261 \layout Description
2263 MIME-types contains symlinks, one for each MIME type, which point to programs
2264  that can handle files of that type.
2265  For example, to make opening an HTML file load it into Netscape:
2266 \begin_deeper 
2267 \layout Enumerate
2269 Find the Netscape application and go to `Link...' on the menu.
2270 \layout Enumerate
2272 Enter `text_html' as the name for the link and drag the icon from the Link
2273  box into the MIME-types directory.
2274 \layout Standard
2276 You can also put actual programs in here as well as links if you want to.
2277 \end_deeper 
2278 \layout Description
2280 MIME-icons contains the images used to display each type of file.
2281  So the filer will try to display an HTML file using the icon `MIME-icons/text_h
2282 tml.xpm'.
2283 \layout Standard
2285 Many sample files are supplied as part of the ROX desktop
2286 \begin_inset LatexCommand \cite{ROX}
2288 \end_inset 
2291 \layout Standard
2293 In both MIME-types and MIME-icons directories you can also provide default
2294  actions/images for each media type.
2295  For example, if `text_html' isn't found then the filer will try simply
2296  using `text'.
2297 \layout Section
2299 Application directories
2300 \layout Standard
2302 An application directory is a directory which can be run as an application.
2303  It contains all the resources of an application - source code, binaries,
2304  documentation and so on.
2305  Keeping everything in one place make installation and uninstallation much
2306  easier for users.
2307  You can also keep multiple versions of a program by simply having several
2308  application directories.
2309  You may move and rename them as you please.
2310  Application directories are easier to use and install and are more secure
2311  too
2312 \begin_float footnote 
2313 \layout Standard
2315 Because you can compile an application as a user and then simply copy it
2316  as root rather than having to run an install script you are free from the
2317  danger of running untrusted code as root.
2318  All you have to watch out for is setuid binaries.
2319 \end_float 
2321 \layout Standard
2323 To make a directory executable all you need to do is create a executable
2324  file called `AppRun' inside it.
2325  This file is run when the user double-clicks on the application.
2326  You should also provide `AppIcon.xpm' (which will be used as the image for
2327  the application) and `Help' (which is a directory that is opened when the
2328  user asks for help).
2329  Have a look at the ROX-Filer application directory for a full example.
2330 \layout Section
2332 Internationalisation
2333 \layout Subsection
2336 \begin_inset LatexCommand \label{sec: LANG}
2338 \end_inset 
2340 Selecting a translation
2341 \layout Standard
2343 ROX-Filer is able to translate many of its messages, provided suitable translati
2344 on files are provided.
2345  If you know that your language is supported then simply set the 
2346 \family typewriter 
2347 LANG
2348 \family default 
2349  environment variable to the appropriate code for your country before starting
2350  the filer, eg:
2351 \layout LyX-Code
2353 LANG=fr; export LANG
2354 \layout LyX-Code
2356 ROX-Filer/AppRun
2357 \layout Standard
2359 To see which translations are currently provided, open the ROX-Filer application
2360  directory (hold down Shift and double-click) and look inside the `
2361 \family typewriter 
2362 Messages
2363 \family default 
2364 ' subdirectory.
2365 \layout Subsection
2367 Creating a new translation
2368 \layout Enumerate
2370 Go into the 
2371 \family typewriter 
2373 \family default 
2374  directory and create the file `
2375 \family typewriter 
2376 messages.pot
2377 \family default 
2379 \begin_deeper 
2380 \layout LyX-Code
2382 $ cd ROX-Filer/src
2383 \layout LyX-Code
2385 $ make messages.pot
2386 \end_deeper 
2387 \layout Enumerate
2389 Copy the file into the `
2390 \family typewriter 
2392 \family default 
2393 ' subdirectory under 
2394 \family typewriter 
2396 \family default 
2397  as 
2398 \begin_inset Formula \( \langle \hbox {name}\rangle \hbox {\tt .po} \)
2399 \end_inset 
2402  Eg, if your language is referred to as `ml' (`my language'):
2403 \begin_deeper 
2404 \layout LyX-Code
2406 $ cp messages.pot po/ml.po
2407 \end_deeper 
2408 \layout Enumerate
2410 Load the copy into a text editor.
2411 \layout Enumerate
2413 Fill in the translations, which are all blank to start with.
2414 \layout Enumerate
2416 Run the `
2417 \family typewriter 
2418 make-mo
2419 \family default 
2420 ' script to create the binary file which ROX-Filer can use.
2421  You will need the GNU gettext package for this.
2422  If you don't have it then just send me the 
2423 \family typewriter 
2425 \family default 
2426  file and I'll convert it for you.
2427 \begin_deeper 
2428 \layout LyX-Code
2430 $ cd ROX-Filer/src/po
2431 \layout LyX-Code
2433 $ ./make-mo ml
2434 \layout LyX-Code
2436 Created file ../../Messages/ml.gmo OK
2437 \end_deeper 
2438 \layout Enumerate
2440 Set the LANG variable to `
2441 \family typewriter 
2443 \family default 
2444 ' and restart the filer (see section 
2445 \begin_inset LatexCommand \ref{sec: LANG}
2447 \end_inset 
2450 \layout Enumerate
2452 Submit the 
2453 \family typewriter 
2455 \family default 
2456  file to me so that I can include it in future releases of the filer.
2457 \layout Subsection
2459 Updating an existing translation
2460 \layout Enumerate
2462 Go into the directory containing the 
2463 \family typewriter 
2465 \family default 
2466  files and run the 
2467 \family typewriter 
2468 update-po
2469 \family default 
2470  script.
2471  This checks the source code for new and changed strings and updates all
2472  the translation files.
2473 \begin_deeper 
2474 \layout LyX-Code
2476 $ cd ROX-Filer/src/po
2477 \layout LyX-Code
2479 $ ./update-po
2480 \end_deeper 
2481 \layout Enumerate
2483 Edit the file by hand as before, filling in the new blanks and updating
2484  out-of-date translations.
2485  Look out for `fuzzy' entries where 
2486 \family typewriter 
2487 update-po
2488 \family default 
2489  has made a guess; check it's correct and remove the `fuzzy' line.
2490 \layout Enumerate
2492 Run 
2493 \family typewriter 
2494 make-mo
2495 \family default 
2496  as before.
2497 \layout Enumerate
2499 Submit the updated file to me.
2500 \layout Standard
2502 See the 
2503 \family typewriter 
2504 gettext
2505 \family default 
2506  info page for more instructions on creating a translation.
2507 \layout Section
2509 Hacking
2510 \layout Standard
2512 This is a quick start guide for people who want to modify the source code.
2513  If you make useful changes or fix bugs, please send patches to me or to
2514  the mailing list.
2515  Tell me which version you're using!
2516 \layout Subsection
2518 Compiling
2519 \layout Standard
2521 The first time you compile the program you need to do `
2522 \family typewriter 
2523 AppRun --compile
2524 \family default 
2525 ', but in future you only need to run `
2526 \family typewriter 
2527 make
2528 \family default 
2529 ' in the `
2530 \family typewriter 
2532 \family default 
2533 ' directory when you change the 
2534 \family typewriter 
2536 \family default 
2537  and 
2538 \family typewriter 
2540 \family default 
2541  files.
2542  You might want to run `
2543 \family typewriter 
2544 make depend
2545 \family default 
2546 ' too.
2547 \layout Subsection
2549 Creating and applying patches
2550 \layout Standard
2552 When people make small modifications to the sources they will often distribute
2553  them as 
2554 \emph on 
2555 patch files
2556 \emph toggle 
2557  --- usually on the mailing list.
2558  To apply a patch, go into the 'src' directory and run patch with the patch
2559  file.
2560  Then recompile, like this:
2561 \layout LyX-Code
2563 $ cd ROX-Filer/src
2564 \layout LyX-Code
2566 $ patch < patchfile
2567 \layout LyX-Code
2569 $ ../AppRun --compile
2570 \layout Standard
2572 You can remove the patch by simply repeating the above sequence - patch
2573  will detect that the patch is already applied and offer to remove it.
2574  To create a patch you need to take a copy of the old 'src' directory before
2575  you modify it (before you compile, even):
2576 \layout LyX-Code
2578 $ cd ROX-Filer
2579 \layout LyX-Code
2581 $ cp -r src old_src
2582 \layout Standard
2584 Now, modify and compile until it works they way you want it to.
2585  To make the patch:
2586 \layout LyX-Code
2588 $ cd ROX-Filer
2589 \layout LyX-Code
2591 $ diff -cr old_src src > my_patch
2592 \layout Standard
2594 This creates a human- and machine-readable patch file.
2595  Submit this to the mailing list.
2596  The are many reasons for posting patches rather that the modified files:
2597 \layout Itemize
2599 They are smaller, and hence shouldn't bounce.
2600  They are also quicker to download for people with slow connections.
2601 \layout Itemize
2603 People can see what they're getting into before applying them!
2604 \layout Itemize
2606 Patches can (usually) be applied to slightly modified versions of the sources.
2607  This means that people can apply several patches without each new one overwriti
2608 ng the others.
2609 \layout Subsection
2611 Autoconf
2612 \layout Standard
2614 Here's a quick explanation of the autoconf system in case you haven't used
2615  it before.
2616  See `info autoconf' for full details.
2617 \layout Standard
2619 There's a file called 'configure.in' which contains various tests (`info
2620  autoconf').
2621  You run `autoconf' and it reads through the file and generates a shell
2622  script to perform the tests, saving it as `configure'.
2623  `configure' is normally distributed with the program because not everyone
2624  has autoconf.
2625 \layout Standard
2627 You then run `configure' (in fact, let the `AppRun' script do it because
2628  it passes it some arguments), which performs all the tests.
2629  It reads in `Makefile.in' and `config.h.in' and fills in the missing values
2630  with the test results to produce `Makefile' and `config.h'.
2631 \layout Standard
2633 You run `make', which creates .o files from the .c files and links to produce
2634  ROX-Filer.
2635 \layout Subsection
2637 Data-structures
2638 \layout Standard
2640 The diagram below shows some of the major structures found in the filer
2641  along with their most important attributes and methods.
2642  Exactly which attributes have been included is a little hit-and-miss but
2643  it might help you get the overall picture.
2644  If you find it useful, please let me know and I'll try to keep it up-to-date
2645  (or even extend it!).
2646 \layout Standard
2648 To summarise, each window (or panel) has its own 
2649 \series bold 
2650 FilerWindow
2651 \series default 
2652  structure.
2653  This structure has pointers to a 
2654 \series bold 
2655 Collection
2656 \series default 
2657  (which is the widget which actually displays the files) and to a 
2658 \series bold 
2659 Directory
2660 \series default 
2661 , which is used to cache the directory contents.
2662  Both 
2663 \series bold 
2664 Collection
2665 \series default 
2666  and 
2667 \series bold 
2668 Directory
2669 \series default 
2670  have pointers to (the same) 
2671 \series bold 
2672 DirItem
2673 \series default 
2674 s, each of which corresponds to one filesystem object.
2675  Several 
2676 \series bold 
2677 FilerWindow
2678 \series default 
2679 s may share the same 
2680 \series bold 
2681 Directory
2682 \series default 
2684  While scanning is in progress the 
2685 \series bold 
2686 Directory
2687 \series default 
2688  keeps a list of the new items it has found (
2689 \emph on 
2690 new_items
2691 \emph toggle 
2692 ) and the items which have changed in some way (
2693 \emph on 
2694 up_items
2695 \emph toggle 
2697  It periodically notifies the filer window of the changes-so-far by calling
2698  all the functions in the 
2699 \emph on 
2700 users
2701 \emph toggle 
2702  list (use 
2703 \emph on 
2704 attach()
2705 \emph toggle 
2706  and 
2707 \emph on 
2708 detach()
2709 \emph toggle 
2710  to add and remove functions to or from the list).
2711 \layout Standard
2712 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center 
2714 \begin_inset Figure size 595 604
2715 file Structs.eps
2716 width 3 100
2717 flags 9
2719 \end_inset 
2722 \layout Bibliography
2723 \bibitem {ROX}
2726 \emph on 
2727 The ROX desktop
2728 \emph toggle 
2729 , <http://www.ecs.soton.ac.uk/~tal197/rox.php3>
2730 \layout Bibliography
2731 \bibitem {GTK+}
2734 \emph on 
2735 GTK+ Toolkit
2736 \emph toggle 
2737 , <http://www.gtk.org>
2738 \layout Bibliography
2739 \bibitem {GNOME}
2742 \emph on 
2743 The GNOME desktop
2744 \emph toggle 
2745 , <http://www.gnome.org>
2746 \layout Bibliography
2747 \bibitem {DND}
2750 \emph on 
2751 The Drag and Drop protocol
2752 \emph toggle 
2753 , <http://www.its.caltech.edu/~jafl/xdnd/>
2754 \layout Bibliography
2755 \bibitem {XDS}
2758 \emph on 
2759 The X Direct Save protocol
2760 \emph toggle 
2761 , <http://www.its.caltech.edu/~jafl/xds/>
2762 \layout Bibliography
2763 \bibitem {Choices}
2766 \emph on 
2767 The ROX Choices system
2768 \emph toggle 
2769 , <http://www.ecs.soton.ac.uk/~tal197/choices.php3>
2770 \layout Bibliography
2771 \bibitem {enlightenment}
2774 \emph on 
2775 Enlightenment,
2776 \emph toggle 
2777  <http://www.enlightenment.org>
2778 \layout Bibliography
2779 \bibitem {PODFUK}
2782 \emph on 
2783 POrtable Dodgy Filesystems in Userland (hacK), 
2784 \emph toggle 
2785 <http://atrey.karlin.mff.cuni.cz/~pavel/podfuk/podfuk.html>
2786 \layout Bibliography
2787 \bibitem {ImLib}
2790 \emph on 
2791 ImLib
2792 \emph toggle 
2793 , <http://www.gnome.org>
2794 \the_end