rox-filer is a fast, lightweight, gtk2 file manager.
Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://downloads.sourceforge.net/rox/rox-filer-2.11.tar.bz2
Download MD5 sum: 0eebf05a67f7932367750ebf9faf215d
Download size: 1.8 MB
Estimated disk space required: 19 MB
Estimated build time: 0.3 SBU
If you want rox-filer to be able to update the contents of a directory when changes are made to the files by other applications (eg, if a script is running) you will need to enable dnotify support in your kernel. In make menuconfig:
File systems ---> [*] Dnotify support [DNOTIFY]
Save the new .config
and then compile the kernel.
Compile rox-filer with the following commands:
cd ROX-Filer && sed -i 's:g_strdup(getenv("APP_DIR")):"/usr/share/rox":' src/main.c && sed -i 's/gboolean/extern &/' src/session.h && mkdir build && pushd build && ../src/configure LIBS="-lm -ldl" && make && popd
Now install it as the root
user:
mkdir -p /usr/share/rox && cp -av Help Messages Options.xml ROX images style.css .DirIcon /usr/share/rox && cp -av ../rox.1 /usr/share/man/man1 && cp -v ROX-Filer /usr/bin/rox && chown -Rv root:root /usr/bin/rox /usr/share/rox && cd /usr/share/rox/ROX/MIME && ln -sv text-x-{diff,patch}.png && ln -sv application-x-font-{afm,type1}.png && ln -sv application-xml{,-dtd}.png && ln -sv application-xml{,-external-parsed-entity}.png && ln -sv application-{,rdf+}xml.png && ln -sv application-x{ml,-xbel}.png && ln -sv application-{x-shell,java}script.png && ln -sv application-x-{bzip,xz}-compressed-tar.png && ln -sv application-x-{bzip,lzma}-compressed-tar.png && ln -sv application-x-{bzip-compressed-tar,lzo}.png && ln -sv application-x-{bzip,xz}.png && ln -sv application-x-{gzip,lzma}.png && ln -sv application-{msword,rtf}.png
sed -i 's:g_strdup(getenv("APP_DIR")):"/usr/share/rox":' src/main.c: This command hard codes /usr/share/rox as the directory for rox-filer's private files. Without this sed rox needs the environment variable ${APP_DIR} to be set.
sed -i 's/gboolean/extern &/' src/session.h: This command fixes a multiple definition flagged as an error by GCC 10 and higher.
ln -sv application-...: These commands duplicate the icons for some common mime types. Without these links rox-filer would just display the default "unknown binary blob" icon.
Most of the configuration of rox-filer is
achieved by right clicking on a rox-filer
window and choosing "Options" from the menu. It stores its settings in
~/.config/rox.sourceforge.net
.
A rox-filer feature is that if there is an
executable file called AppRun
in a directory
rox-filer will first run
AppRun before it opens the folder.
As an example of how this may be used, if you have ssh access to another computer (perhaps another computer on your local network) with ssh configured for passwordless logins and you have sshfs-3.7.3 installed you can use AppRun to mount the remote computer in a local folder using sshfs. For this example AppRun script to work the folder must have the same name as the hostname of the remote computer:
cat > /path/to/hostname/AppRun << "HERE_DOC" #!/bin/bash MOUNT_PATH="${0%/*}" HOST=${MOUNT_PATH##*/} export MOUNT_PATH HOST sshfs -o nonempty ${HOST}:/ ${MOUNT_PATH} rox -x ${MOUNT_PATH} HERE_DOC chmod 755 /path/to/hostname/AppRun
That works fine for mounting, but to unmount it the
command fusermount -u ${MOUNTPOINT} is ran. You could set
that as your default umount command in your rox preferences, but you
would then be unable to unmount any normal mountpoints (that need
umount). A script is needed that will unmount a Fuse mountpoint
with fusermount -u ${MOUNTPOINT} and everything else
with umount. As the
root
user:
cat > /usr/bin/myumount << "HERE_DOC" && #!/bin/bash sync if mount | grep "${@}" | grep -q fuse then fusermount -u "${@}" else umount "${@}" fi HERE_DOC chmod 755 /usr/bin/myumount
Now, to make Rox use this simple script, open a Rox window, right click on it and choose Options from the menu. In the left hand list choose "Action windows" and then on the right hand side, where it says "Unmount command" change umount to myumount.
If you use a desktop environment like
Gnome or KDE you
may like to create a rox.desktop
file so that
rox-filer appears in the panel's menus. As
the root
user:
ln -s ../rox/.DirIcon /usr/share/pixmaps/rox.png && mkdir -p /usr/share/applications && cat > /usr/share/applications/rox.desktop << "HERE_DOC" [Desktop Entry] Encoding=UTF-8 Type=Application Name=Rox Comment=The Rox File Manager Icon=rox Exec=rox Categories=GTK;Utility;Application;System;Core; StartupNotify=true Terminal=false HERE_DOC