1 #This file was created by <tal197> Sat Apr 8 16:21:26 2000
2 #LyX 0.12 (C) 1995-1998 Matthias Ettrich and the LyX Team
12 \paperpackage widemarginsa4
15 \paperorientation portrait
18 \paragraph_separation indent
20 \quotes_language english
24 \paperpagestyle default
31 Thomas Leonard, tal197@ecs.soton.ac.uk
41 ROX-Filer is a graphical file manger for the X Window System.
42 Its user interface is based on the RISC OS filer and it supports similar
43 features such as application directories and drag-and-drop loading and
48 \begin_inset LatexCommand \tableofcontents
58 ROX-Filer is a simple and easy to use graphical file manager for X11, the
59 windowing system used on Unix and Unix-like operating systems.
60 It is also the core component of the ROX Desktop
61 \begin_inset LatexCommand \cite{ROX}
71 XDND A common drag-and-drop protocol used, for example, by the GNOME desktop
72 \begin_inset LatexCommand \cite{GNOME}
77 This allows data to be loaded into an application by dragging it from a
78 filer window to a program.
79 The full specification is given in
80 \begin_inset LatexCommand \cite{DND}
87 XDS An extension to XDND that allows applications to save data by dragging
88 an icon back to a filer window.
89 The full specification is given in
90 \begin_inset LatexCommand \cite{XDS}
99 Choices A simple, but flexible, system for managing user choices.
101 \begin_inset LatexCommand \cite{Choices}
110 directories Self contained relocatable applications, where installation
111 is as simple as copying it to where you want it and uninstalling it is
112 just a matter of deleting a directory.
113 Described later in this documentation.
119 This program is free software; you can redistribute it and/or modify it
120 under the terms of the GNU General Public License as published by the Free
121 Software Foundation; either version 2 of the License, or (at your option)
125 This program is distributed in the hope that it will be useful, but WITHOUT
126 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
127 FOR A PARTICULAR PURPOSE.
128 See the GNU General Public License for more details.
131 You should have received a copy of the GNU General Public License along
132 with this program; if not, write to the Free Software Foundation, Inc.,
133 59 Temple Place, Suite 330, Boston, MA, 02111-1307, USA.
142 ROX-Filer is usually supplied in source-only form.
143 To compile and run it, you will require
146 Unix or Linux (root access is not required),
149 The X Window system (supplied as standard on all modern systems),
152 GTK+ 1.2.0 or later (libraries and headers) - get the latest version from
154 \begin_inset LatexCommand \cite{GTK+}
161 A C compiler (standard on most systems).
164 All of the above are standard on most modern Linux distributions.
165 To check which version of GTK+ you have installed, run the gtk-config command,
166 like this ($ is the shell prompt):
169 $ gtk-config --version
178 Change to the directory containing the ROX-Filer subdirectory.
181 Run the AppRun script with the --compile option, like this:
185 $ ROX-Filer/AppRun --compile
189 ROX-Filer will perform various checks to find out what kind of system it
190 is being run on and will then compile.
191 If it doesn't work then please e-mail me and complain! Tell me what kind
192 of system you have and what errors were reported.
193 If you manage to fix the problem yourself then please e-mail me the fix.
196 You can now run the filer by running the AppRun script without any options,
203 A window should appear and display the contents of your home directory.
206 The executables files are stored inside the ROX-Filer directory in a different
207 subdirectory for each platform.
208 Therefore, you can compile the same application on several different types
209 of machine and then run it from any of them using the AppRun script.
210 This is particularly useful in a network environment.
216 By default, ROX-Filer will start by displaying your home directory.
217 You can get it to display other directories instead by listing them after
221 $ ROX-Filer/AppRun /home /usr /usr/local
224 If you want one of the directories to be opened as a panel put
232 before the directory (for `bottom' or `top' panels).
233 If you don't know what a panel is, try it and see! To run the filer in
234 the background, put an & at the end of the line.
240 $ ln -s $HOME ~/Panel/Home
243 $ ROX-Filer/AppRun -b ~/Panel &
246 The panel should be displayed in a window without a title bar.
247 If this does not work then you may need to update your window manager.
248 The filer was designed and tested using the Enlightenment window manager
249 \begin_inset LatexCommand \cite{enlightenment}
254 You could also try using the -o option which bypasses the window manager
255 entirely (also use this if the panel appears in the wrong place):
258 $ ROX-Filer/AppRun -o -b ~/Panel &
261 Mouse button and key bindings
264 By default, the mouse button bindings are different to fit in better with
266 You can get the old RISC OS bindings by opening the Options window and
267 clicking on a few toggle buttons.
270 By default, the mouse buttons and key bindings for filer windows are as
348 Select (only) the item clicked on, or clear the selection.
352 Toggle the item between being selected and unselected.
357 Hold down Ctrl while clicking to go directly to
361 the Selection submenu.
365 Copy the file(s) to the destination (an application or another filer window)
369 Hold down Shift to move the file, or Ctrl+Shift to create a symbolic link.
371 Drag (not over an item)
373 Select a group of items by dragging a box around them.
377 If you use the left button then the boxed items only are selected, otherwise
381 the boxes items are toggled between selected and unselected.
383 Double click left button
385 Open the file or directory or run the application.
389 Holding down Shift while clicking does the same thing as choosing
393 `Shift Open' from the menu.
395 Double click middle button
397 Open the file and close the directory viewer,
401 or open the directory in a new window.
405 Change to viewing the parent directory.
409 Move the cursor around.
413 Move up and down in steps of ten rows at a time.
417 Move to the first/last entry in the directory.
421 Open the item under the cursor.
422 With Shift held down this acts like choosing 'Shift Open' from the menu.
426 Toggles the item under the cursor between being selected and unselected.
429 You can simulate a click of the middle mouse button by clicking with Ctrl
431 Other keys can easily be defined by opening the menu, moving the pointer
432 over the item you want to use and pressing a key.
433 The key will appear in the menu and can be used from then on.
434 To make the new key bindings permanent, open the Options box from the menu
441 While items are selected in a ROX-Filer window the filer has the global
443 You can then paste into another window to get the pathnames of the selected
445 For example, to extract the files from a .tgz archive on a floppy disk into
449 Choose `Xterm here' from the menu in your home directory.
452 Type `tar xzf ' (but don't press Return)
455 Click on the .tgz file to select it.
458 Click the middle button in the xterm window to paste the name of the file
462 Press Return in the xterm to execute the command.
466 \begin_inset LatexCommand \label{sec: Toolbar}
473 By default, each window has a toolbar along the top.
474 You can disable this from the Options window.
475 The three buttons on the toolbar are:
477 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
501 Change to parent directory
505 Change to home directory
509 Reread the directory contents
515 You can open a menu by right clicking
516 \begin_float footnote
519 If the Use `RISC OS mouse bindings' option is on then use the middle button
522 over a panel or filer window.
523 Here is a full description of each choice and what it does:
525 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
555 Select every item in this window.
559 Unselect every item in this window.
567 Create a new directory in this one.
571 Open an xterm with its current directory set to this directory.
572 \layout Subsubsection
576 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
621 Each object in the directory is shown as a large icon with its name below.
625 Each entry is shown as the top part of its icon with the name beside it.
629 Entries are displayed with their icon, name, type, permissions, owner and
634 Items are arranged in ASCII order.
635 Note that `Z' is considered to come before `a'.
639 Items are grouped by their MIME-types and sorted by name within the groups.
643 Most recently modified first.
651 If on, files beginning with a dot are shown, otherwise they are hidden.
655 Rereads the contents of the directory and details of all the files in it.
659 Use this if the display becomes out-of-date.
660 \layout Subsubsection
663 \begin_inset LatexCommand \label{sec: Permissions}
670 The permissions display is made up of four groups of three flags.
671 Each flag is displayed as a letter if it is on and a dash (-) if not.
672 The first three characters show the permissions for the owner of the file,
673 the second for other members of the file's group and the third for everyone
675 Whichever group applies to the ROX-Filer process itself is shown underlined.
676 The fourth group shows any special flags.
679 The meanings of the characters are:
682 r Permission to read the contents of a file, or the names of files in a
686 w Permission to alter the contents of a file, or change which names appear
690 x Permission to run the file as a program, or refer to the files listed
691 within the directory.
694 U This program executes with the
698 of its owner rather than the person who ran it.
701 G This program executes with the
705 of its group, regardless of who ran it.
708 T Entries in this directory can only be altered or removed by the people
709 who own the files even if they have write permission on the directory itself.
719 ' means that the owner of the file is the same as the effective user of
720 ROX-Filer (basically, you own the file), you and members of the file's
721 group have read, write and execute permission and other people have only
722 read and execute permission.
723 There are no special flags set.
726 The rules which determine which permissions apply may vary slightly between
727 operating systems, but a rough guide is:
734 of the process is equal to the file's owner, then the owner permissions
742 of the process is equal to the file's group OR the file's group is one
747 then the group permissions apply.
750 Otherwise, the 'other' permissions apply.
759 have no effect (except that a process may set its real IDs to its effective
761 \layout Subsubsection
766 All of these work in the same way - if you open the menu with some items
767 selected then the operation applies to those items.
768 If you open then menu over an item while there is no selection then that
769 item is temporarily selected.
770 If you choose one of these while there is no selection at all then the
771 window goes into `target mode' - the operation happens to the next item
773 Click on the window background, press Escape, or click with the right mouse
774 button to cancel target mode.
775 Target mode is mainly useful with the `Single click navigation' option
776 and keys bound to the various menu entries.
778 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
853 Make a copy of this object in the same directory.
857 Change the name used for this object.
861 Create a symbolic link to this name in the same directory.
865 Opens applications as directories, files as text/plain, mount points
869 by mounting or unmounting them and symlinks by opening the directory
873 containing the thing they point to.
877 This is the same as double-clicking with Shift held down.
881 Explain what kind of thing is selected.
886 display the help files.
890 Display extra information about this object.
894 Open the file as if it was a directory --- see section
895 \begin_inset LatexCommand \ref{sec: vfs}
903 Mount or unmount each mount point selected.
907 Remove all the selected entries from the directory.
911 Subdirectories will have their contents deleted first.
915 Deleting symlinks only removes the link, not the thing it points to.
919 Count the sizes of all the selected items.
920 Directories also have their
925 Symlinks count themselves, not the things they point to.
929 Allows you to change the permissions for the selected files.
937 Search for files by specifying various conditions --- see section
938 \begin_inset LatexCommand \ref{sec: Searching}
943 \layout Subsubsection
947 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
980 Open a new window displaying this window's parent.
984 As above, but reuse this window.
988 Open another window onto this directory.
996 Open the path-entry box (see section
997 \begin_inset LatexCommand \ref{sec: mini}
1005 Same as selecting ROX-Filer and choosing `Help' from the menu.
1006 \layout Subsubsection
1011 This is just a cut-down version of the window menu.
1012 The only new entry is `Open Panel as Directory', which displays the panel
1013 in a new, non-panel, window.
1014 `Remove Item' is a cut-down version of `Delete'; it only works for symbolic
1015 links and never asks for confirmation.
1016 Since dragging applications and directories to the panel creates symlinks
1017 it is very easy to change the panel contents to suit your needs.
1021 \begin_inset LatexCommand \label{sec: vfs}
1025 Virtual File Systems
1028 Some types of file can be represented as a directory.
1029 A typical example is a zip file, which contains an entire directory structure
1031 It is often useful to be able to open up such a file as if it was a real
1032 directory, and the VFS system allows you to do this.
1035 To use this feature you must have one or both of the following:
1038 A system (such as PODFUK
1039 \begin_inset LatexCommand \cite{PODFUK}
1043 ) which causes the kernel to support various Virtual File Systems directly.
1044 This is the best option since all programs will be able to access the contents
1046 You will require root access to install such a system, however, and it
1047 is not available on all platforms.
1050 Support for the Midnight Commander VFS library compiled into ROX-Filer.
1051 This happens automatically when you compile ROX-Filer if it can find the
1052 VFS library --- this means having
1060 ) in a system library directory or in the directory in the environment variable
1066 In this case, you will be able to view the directory structure but not
1067 change it or access individual files.
1068 Support for this may be added later.
1069 Midnight Commander is part of the GNOME project.
1072 Note that using the `Open VFS' menu is simply a short-cut for using the
1073 path-entry box (explained below), so if you want to use a VFS not listed
1074 on the menu you can type in the path directly, eg:
1079 /home/fred/archive.zip#uzip/
1088 Don't forget the final slash!
1089 \layout Subsubsection
1091 Step by step example of adding VFS support
1094 This assumes that you have the Midnight Commander source in a directory
1096 You might need to replace
1119 If you have the root password then install the library in a system library
1120 directory as normal.
1130 $ cp libvfs.so ~/lib
1133 $ cd ~/Apps/ROX-Filer
1140 file to include this as the
1147 LD_LIBRARY_PATH=${HOME}/lib; export LD_LIBRARY_PATH
1150 This will ensure that ROX-Filer will look for the library in the new
1158 $ ./AppRun --compile
1164 checking for mc_stat in -lvfs...
1168 If you saw that line then it's worked! Well done!
1173 \begin_inset LatexCommand \label{sec: mini}
1180 The path-entry box is a white bar that appears along the bottom of the window.
1181 It allows you to type in a path directly.
1182 As you type the display is updated to show the item entered visually.
1183 The main use is to find a file in a large directory quickly, but you can
1184 also use it for navigating between directories, or for selecting a full
1185 pathname from somewhere else and pasting it directly into the path-entry
1188 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
1215 Close the path-entry box.
1219 Open the currently selected item.
1223 Shell-style tab completion.
1227 Select the previous/next matching entry.
1230 Tab completion tries to fill in as many characters for you as it can.
1231 For example, if there are two files in a directory called `save-mail-nov-1999'
1232 and `save-mail-dec-1999' then typing 'save' and pressing Tab will expand
1233 `save' to `save-mail-' and beep to indicate that the match is not complete.
1234 If you use tab completion on a directory and it is unique then the filer
1235 will automatically change into the directory.
1236 This behavior should be familiar to shell users.
1237 \layout Subsubsection
1242 Let's say you want to locate the documentation for Wine in the directory
1243 /usr/doc (which is usually very large).
1244 Here's how you could do it:
1247 Open the minibuffer by choosing 'Enter Path' from the Window menu.
1248 I usually bind this function to the slash (`/') key.
1251 Press CTRL-U to delete the existing contents - this moves you to the root
1255 Type `u<Tab>do<Tab>wi<Tab>'.
1256 As you type, the cursor will move to the correct subdirectory.
1257 If it beeps when you press Tab then you need to supply more letters.
1263 Action windows are those boxes that appear while you're doing a Copy/Move/Link/e
1265 The status line at the top of the window shows the current directory or
1266 object that the window is processing.
1267 The scrolling area below is the log area - it shows what has been done
1268 and may display questions here.
1271 At the bottom are four buttons and, sometimes, some options.
1272 The buttons work as follows:
1275 Quiet will do simple operations without asking you to confirm each one.
1276 By turning this on and off during an operation you can use it like a pause
1280 Yes answers yes to the question displayed in the log area.
1283 No answers no to the question displayed in the log area.
1286 Abort kills the current operation (if any) and closes the action window.
1289 You can control which actions get started automatically (without you having
1290 to click on Quiet at the start) from the Options window.
1291 \layout Subsubsection
1293 Action Window Options
1296 Some actions have options, which appear as option boxes at the bottom of
1301 `Force' means that the filer won't treat non-writeable files as special.
1302 Normally, it confirms the deletion even if Quiet is pressed.
1303 Note that you still can't removed files from non-writeable directories
1304 because in that case you really don't have permission.
1307 `Brief' prevents the filer logging a message every time it does something.
1308 Use this to speed things up if large numbers of messages are being logged.
1311 `Recurse' means that doing something to a directory will also do the same
1312 thing to all its contents, and the contents of any subdirectories, and
1317 \begin_inset LatexCommand \label{sec: Searching}
1324 The Find feature looks through all the selected files and directories and
1325 any subdirectories (recursively) looking for items that match a particular
1329 If you know the name of a file then just enter it in the `Expression:' box,
1330 enclosed in single quotes.
1331 For example, to find a file called `log' you would enter:
1337 Remember to use normal quotes, not double quotes (
1340 \begin_inset Quotes eld
1352 As the filer finds matching files they are added to the results list.
1353 Clicking on an entry in the list opens a viewer showing the file you clicked
1355 The filer will use the same window to view other results (so, if you want
1356 the results shown in separate windows you must explicitly create a new
1357 window from the Window menu).
1358 \layout Subsubsection
1363 You can also put shell-style wildcard characters inside the quotes, for
1383 manpage if you want to know more about shell wildcards.
1386 If the pattern you enter contains a slash ('/') character then the pattern
1387 is matched against the file's full path, otherwise only the leafname is
1393 will find 'tmp' and 'tmpfile' but not '/tmp/file' ---
1397 will find all three.
1398 \layout Subsubsection
1403 As well as finding files by their names you can also find them by various
1405 Note that `file' is used here to mean anything that can appear in the filesyste
1406 m --- including directories, devices and so on.
1417 These look at the type of the item being checked:
1420 IsReg matches any regular (ie, normal) file.
1423 IsLink matches symlinks.
1426 IsDir matches directories.
1429 IsChar matches character device files.
1432 IsBlock matches block device files.
1435 IsDev matches block or character device files.
1438 IsPipe matches pipes.
1441 IsSocket matches sockets.
1444 These look at the permissions set on the file - see section
1445 \begin_inset LatexCommand \ref{sec: Permissions}
1452 IsSUID matches files which have the Set-UID bit set.
1455 IsSGID matches files which have the Set-GID bit set.
1458 IsSticky matches files with the sticky bit set,
1461 IsReadable matches files which you can read from.
1464 IsWriteable matches files which you can write to.
1467 IsExecutable matches files which you can execute.
1470 And a couple of other useful ones:
1473 IsEmpty finds empty files (ie, those whose length is 0 bytes).
1476 IsMine finds files which you own.
1477 \layout Subsubsection
1482 You can combine the above tests in various ways to perform more advanced
1484 An expression is actually made up of a list of
1488 , separated by commas.
1489 The filer will try to match each case in turn until one matches or there
1490 are no more cases left.
1491 For example, to search for files with several possible endings:
1494 '*.gif', '*.htm', '*.html'
1497 Further, each of the cases is actually a list of conditions.
1498 The case only matches if all of its conditions are met.
1499 So, to find a directory called
1503 or a regular file ending in
1510 IsDir 'lib', IsReg '*.so'
1513 You can negate a condition by putting a
1517 in front of it and you can use a sub-expression as a condition by bracketing
1527 Not isdir and not isreg
1530 All three do the same thing.
1531 \layout Subsubsection
1536 You can also compare various values using the operators
1540 (for less-than, less-than-or-equal-to, equal-to, not-equal-to, greater-than
1541 and greater-than-or-equal-to).
1542 When comparing times, you may find it helpful to use
1558 to make things clearer.
1561 The following are read from the file being checked and may be used for the
1562 values being compared:
1565 atime The time that the file was last accessed.
1568 ctime The time that the file's status was last changed.
1571 mtime The time that the file's contents were last modified.
1574 size The size of the file.
1577 inode The file's inode (index) number
1580 nlinks The number of links to this file (that is, the number of directory
1581 entries which refer to this file.
1582 Note that symlinks don't count as references).
1585 uid The User ID of the file.
1588 gid The Group ID of the file.
1591 blocks The number of disk blocks being used by the file.
1594 Times are measured as seconds since the Unix Epoch (00:00:00 UTC, January
1597 When specifying constants to compare these values with you may use various
1598 keywords to scale the value:
1601 Byte(s) has no effect, but looks better.
1604 Kb multiplies by 1024, so 2Kb is the same as 2048.
1608 \begin_inset Formula \( 1024^{2} \)
1614 Sec(s) has no effect, but looks nice.
1617 Min(s) multiplies by 60 to get minutes.
1621 \protected_separator
1623 \protected_separator
1625 \protected_separator
1626 Year(s) likewise convert to the relevant unit.
1629 Ago makes the time in the past relative to when the check is done.
1632 Hence makes the time in the future.
1642 Some examples should make this all a bit clearer!
1645 mtime after 1 day ago
1651 IsReg and nlinks > 1
1654 The first finds files modified within the last 24 hours.
1663 but it's not so clear what is meant.
1664 The second finds files larger than 10 Mb and the last finds regular files
1665 with more than one directory entry.
1668 Be careful though --- the filer doesn't check the context of the modifiers,
1673 is allowed, although it doesn't make much sense! Also, forgetting to use
1682 will cause odd effects (the time will be measured relative to the Epoch
1683 rather than the current time).
1684 Finally, don't use = with times ---
1688 looks for a file accessed
1692 86400 seconds ago...
1698 You can configure various aspects of ROX-Filer from the Options box.
1699 Choose `Options...' from a filer window menu to open it.
1703 At the bottom of the window are four buttons:
1706 Save puts all your choices into effect, and also saves them into your Choices
1707 directory for next time ROX-Filer is loaded.
1708 ROX-Filer will never save any preferences to disk unless you click on the
1709 `Save' button in the options window.
1712 OK puts your choices into effect without writing anything to disk.
1715 Apply works like OK, but without closing the Options window.
1718 Cancel closes the options box and forgets any changes you made.
1719 \layout Subsubsection
1721 Action window options
1724 You can choose to start some operations automatically, without waiting for
1725 you to click on Quiet.
1726 Select each operation that you want to auto-start here.
1727 \layout Subsubsection
1729 Filer window options
1732 `New window on button 1' swaps the actions of the two non-menu buttons when
1733 opening directories.
1734 This is provided for people who are used to the RISC OS mouse bindings.
1737 `Menu on button 2' swaps the actions of buttons 2 and 3 so that the middle
1738 button brings up the menus.
1739 This is provided for people who are used to the RISC OS mouse bindings.
1742 `Single-click navigation' treats a single click over an item as if it was
1744 This allows you to move around, run applications and open files without
1750 opening it you must hold down CTRL while you click.
1753 `Unique windows' prevents you from having two windows showing the same directory.
1754 Opening a second view onto a directory closes the first.
1757 `Toolbar type for new windows' allows you to choose what kind of toolbar
1758 will be used for future filer windows (the currently open windows are not
1760 None means that new windows will not have a toolbar, Normal provides a
1761 small bar of icons, and GNOME displays larger icons with textual labels
1762 and allows the bar to be detached from the window by dragging it.
1764 \begin_inset LatexCommand \ref{sec: Toolbar}
1771 The last display style and sort type you chose will also be saved as the
1772 defaults for next time.
1773 \layout Subsubsection
1775 Drag and Drop options
1778 ROX-Filer uses the standard XDND protocol for drag-and-drop.
1779 This protocol recommends that URIs should contain the hostname of the computer
1780 that the resource is on so that the program receiving the data can determine
1781 whether it can get the data directly or whether it must go via the X-server.
1782 However, many older programs (particularly GNOME applications) get confused
1783 by the hostname and fail to load the data correctly.
1784 If `Don't use hostnames' is on then the hostname part is omitted and ROX-Filer
1785 will work with these applications BUT you can't drag data to a program
1786 running on a different machine.
1789 `Allow dragging to icons in filer windows' controls what happens when you
1790 drop files onto icons in filer windows.
1791 If on then drops onto directories will save the data inside the directory
1792 while dropping onto programs will invoke the program on that data.
1793 If off then drops anywhere inside a filer window act like drops onto the
1794 window background --- that is, the data will be saved into the directory
1796 \layout Subsubsection
1801 The `Xterm here' program is the one used when you choose `Xterm here' from
1803 You can replace it with another program such as `gnome-terminal' if you
1805 In fact, any program will do, but note that you cannot pass any options
1806 to the program at present.
1812 The filer needs some files in your choices directory to allow it to determine
1813 the MIME-types to give files and the images to display for them.
1814 These files are supplied as part of the ROX desktop
1815 \begin_inset LatexCommand \cite{ROX}
1820 This should give you two directories in your Choices directory - `MIME-types'
1824 The file `MIME-types/guess' allows the filer to work out MIME-types from
1825 file extensions; the format is the same as the `gnome.mime' file from the
1829 The other items in the `MIME-types' directory are links to programs which
1830 are run when you double click on files.
1831 For example, to run Netscape when you double click on an HTML file there
1832 should be a file in this directory called `text_html' which is a symlink
1833 to the netscape binary or application directory.
1836 The `MIME-icons' directory contains images to use for the various types.
1837 For example, the filer will use the file `MIME-icons/text_html' for HTML
1841 In both directories you can also provide default actions/images for each
1843 For example, if `text_html' isn't found then the filer will try simply
1847 Application directories
1850 An application directory is a directory which can be run as an application.
1851 It contains all the resources of an application - source code, binaries,
1852 documentation and so on.
1853 Keeping everything in one place make installation and uninstallation much
1855 You can also keep multiple versions of a program by simply having several
1856 application directories.
1857 You may move and rename them as you please.
1858 Application directories are easier to use and install and are more secure
1860 \begin_float footnote
1863 Because you can compile an application as a user and then simply copy it
1864 as root rather than having to run an install script you are free from the
1865 danger of running untrusted code as root.
1866 All you have to watch out for is setuid binaries.
1871 To make a directory executable all you need to do is create a executable
1872 file called `AppRun' inside it.
1873 This file is run when the user double-clicks on the application.
1874 You should also provide `AppIcon.xpm' (which will be used as the image for
1875 the application) and `Help' (which is a directory that is opened when the
1876 user asks for help).
1877 Have a look at the ROX-Filer application directory for a full example.
1883 This is a quick start guide for people who want to modify the source code.
1884 If you make useful changes or fix bugs, please send patches to me or to
1886 Tell me which version you're using!
1892 The first time you compile the program you need to do `AppRun --compile',
1893 but in future you only need to run `make' in the `src' directory when you
1894 change the .c and .h files.
1895 You might want to run `make depend' too.
1898 Creating and applying patches
1901 When people make small modifications to the sources they will often distribute
1906 --- usually on the mailing list.
1907 To apply a patch, go into the 'src' directory and run patch with the patch
1909 Then recompile, like this:
1918 $ ../AppRun --compile
1921 You can remove the patch by simply repeating the above sequence - patch
1922 will detect that the patch is already applied and offer to remove it.
1923 To create a patch you need to take a copy of the old 'src' directory before
1924 you modify it (before you compile, even):
1933 Now, modify and compile until it works they way you want it to.
1940 $ diff -cr old_src src > my_patch
1943 This creates a human- and machine-readable patch file.
1944 Submit this to the mailing list.
1945 The are many reasons for posting patches rather that the modified files:
1948 They are smaller, and hence shouldn't bounce.
1949 They are also quicker to download for people with slow connections.
1952 People can see what they're getting into before applying them!
1955 Patches can (usually) be applied to slightly modified versions of the sources.
1956 This means that people can apply several patches without each new one overwriti
1963 Here's a quick explanation of the autoconf system in case you haven't used
1965 See `info autoconf' for full details.
1968 There's a file called 'configure.in' which contains various tests (`info
1970 You run `autoconf' and it reads through the file and generates a shell
1971 script to perform the tests, saving it as `configure'.
1972 `configure' is normally distributed with the program because not everyone
1976 You then run `configure' (in fact, let the `AppRun' script do it because
1977 it passes it some arguments), which performs all the tests.
1978 It reads in `Makefile.in' and `config.h.in' and fills in the missing values
1979 with the test results to produce `Makefile' and `config.h'.
1982 You run `make', which creates .o files from the .c files and links to produce
1989 The diagram below shows some of the major structures found in the filer
1990 along with their most important attributes and methods.
1991 Exactly which attributes have been included is a little hit-and-miss but
1992 it might help you get the overall picture.
1993 If you find it useful, please let me know and I'll try to keep it up-to-date
1994 (or even extend it!).
1997 To summarise, each window (or panel) has its own
2002 This structure has pointers to a
2006 (which is the widget which actually displays the files) and to a
2010 , which is used to cache the directory contents.
2019 have pointers to (the same)
2023 s, each of which corresponds to one filesystem object.
2028 s may share the same
2033 While scanning is in progress the
2037 keeps a list of the new items it has found (
2041 ) and the items which have changed in some way (
2046 It periodically notifies the filer window of the changes-so-far by calling
2047 all the functions in the
2059 to add and remove functions to or from the list).
2061 \added_space_top 0.3cm \added_space_bottom 0.3cm \align center
2063 \begin_inset Figure size 595 585
2071 \layout Bibliography
2078 , <http://www.ecs.soton.ac.uk/~tal197/rox.php3>
2079 \layout Bibliography
2086 , <http://www.gtk.org>
2087 \layout Bibliography
2094 , <http://www.gnome.org>
2095 \layout Bibliography
2100 The Drag and Drop protocol
2102 , <http://www.its.caltech.edu/~jafl/xdnd/>
2103 \layout Bibliography
2108 The X Direct Save protocol
2110 , <http://www.its.caltech.edu/~jafl/xds/>
2111 \layout Bibliography
2116 The ROX Choices system
2118 , <http://www.ecs.soton.ac.uk/~tal197/choices.php3>
2119 \layout Bibliography
2120 \bibitem {enlightenment}
2126 <http://www.enlightenment.org>
2127 \layout Bibliography
2132 POrtable Dodgy Filesystems in Userland (hacK),
2134 <http://atrey.karlin.mff.cuni.cz/~pavel/podfuk/podfuk.html>