glfs/xsoft/other/rox-filer.xml
2023-08-24 18:54:26 -05:00

301 lines
10 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY rox-filer-download-http "&sourceforge-dl;/rox/rox-filer-&rox-filer-version;.tar.bz2">
<!ENTITY rox-filer-download-ftp " ">
<!ENTITY rox-filer-md5sum "0eebf05a67f7932367750ebf9faf215d">
<!ENTITY rox-filer-size "1.8 MB">
<!ENTITY rox-filer-buildsize "19 MB">
<!ENTITY rox-filer-time "0.3 SBU">
]>
<sect1 id="rox-filer" xreflabel="Rox-Filer-&rox-filer-version;">
<?dbhtml filename="rox-filer.html"?>
<title>Rox-Filer-&rox-filer-version;</title>
<indexterm zone="rox-filer">
<primary sortas="a-rox-filer">rox-filer</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Rox-Filer</title>
<para>
<application>rox-filer</application> is a fast, lightweight, gtk2 file
manager.
</para>
&lfs120_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&rox-filer-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&rox-filer-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &rox-filer-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &rox-filer-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &rox-filer-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &rox-filer-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">rox-filer Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="libglade"/> and
<xref linkend="shared-mime-info"/>
</para>
</sect2>
<sect2 role="kernel" id="rox-filer-kernel">
<title>Kernel Configuration</title>
<para>
If you want <application>rox-filer</application> 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 <command>make menuconfig</command>:
</para>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="rox-filer-kernel.xml"/>
<para>
Save the new <filename>.config</filename> and then compile the kernel.
</para>
<indexterm zone="rox-filer rox-filer-kernel">
<primary sortas="d-rox-filer">rox-filer</primary>
</indexterm>
</sect2>
<sect2 role="installation">
<title>Installation of Rox-Filer</title>
<para>
Compile <application>rox-filer</application> with the following commands:
</para>
<screen><userinput>cd ROX-Filer &amp;&amp;
sed -i 's:g_strdup(getenv("APP_DIR")):"/usr/share/rox":' src/main.c &amp;&amp;
sed -i 's/gboolean/extern &amp;/' src/session.h &amp;&amp;
mkdir build &amp;&amp;
pushd build &amp;&amp;
../src/configure LIBS="-lm -ldl" &amp;&amp;
make &amp;&amp;
popd</userinput></screen>
<para>
Now install it as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>mkdir -p /usr/share/rox &amp;&amp;
cp -av Help Messages Options.xml ROX images style.css .DirIcon /usr/share/rox &amp;&amp;
cp -av ../rox.1 /usr/share/man/man1 &amp;&amp;
cp -v ROX-Filer /usr/bin/rox &amp;&amp;
chown -Rv root:root /usr/bin/rox /usr/share/rox &amp;&amp;
cd /usr/share/rox/ROX/MIME &amp;&amp;
ln -sv text-x-{diff,patch}.png &amp;&amp;
ln -sv application-x-font-{afm,type1}.png &amp;&amp;
ln -sv application-xml{,-dtd}.png &amp;&amp;
ln -sv application-xml{,-external-parsed-entity}.png &amp;&amp;
ln -sv application-{,rdf+}xml.png &amp;&amp;
ln -sv application-x{ml,-xbel}.png &amp;&amp;
ln -sv application-{x-shell,java}script.png &amp;&amp;
ln -sv application-x-{bzip,xz}-compressed-tar.png &amp;&amp;
ln -sv application-x-{bzip,lzma}-compressed-tar.png &amp;&amp;
ln -sv application-x-{bzip-compressed-tar,lzo}.png &amp;&amp;
ln -sv application-x-{bzip,xz}.png &amp;&amp;
ln -sv application-x-{gzip,lzma}.png &amp;&amp;
ln -sv application-{msword,rtf}.png</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<command>sed -i 's:g_strdup(getenv("APP_DIR")):"/usr/share/rox":'
src/main.c</command>: This command hard codes /usr/share/rox as the
directory for <application>rox-filer</application>'s private files.
Without this sed rox needs the environment variable ${APP_DIR} to be set.
</para>
<para>
<command>sed -i 's/gboolean/extern &amp;/' src/session.h</command>:
This command fixes a multiple definition flagged as an error
by GCC 10 and higher.
</para>
<para>
<command>ln -sv application-...</command>: These commands duplicate the
icons for some common mime types. Without these links
<application>rox-filer</application> would just display the default
"unknown binary blob" icon.
</para>
</sect2>
<sect2 role="configuration">
<title>Configuring RoxFiler</title>
<sect3><title>Configuration Information</title>
<para>
Most of the configuration of <application>rox-filer</application> is
achieved by right clicking on a <application>rox-filer</application>
window and choosing "Options" from the menu. It stores its settings in
<filename class="directory">~/.config/rox.sourceforge.net</filename>.
</para>
<para>
A <application>rox-filer</application> feature is that if there is an
executable file called <filename>AppRun</filename> in a directory
<application>rox-filer</application> will first run
<command>AppRun</command> before it opens the folder.
</para>
<para>
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
<xref linkend="sshfs"/> installed you can use AppRun to mount the
remote computer in a local folder using <command>sshfs</command>. For
this example AppRun script to work the folder must have the same name as
the hostname of the remote computer:
</para>
<screen role="nodump"><userinput>cat &gt; /path/to/hostname/AppRun &lt;&lt; "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</userinput></screen>
<para>
That works fine for mounting, but to unmount it the
command <command>fusermount -u ${MOUNTPOINT}</command> 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 <command>fusermount -u ${MOUNTPOINT}</command> and everything else
with <command>umount</command>. As the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>cat &gt; /usr/bin/myumount &lt;&lt; "HERE_DOC" &amp;&amp;
#!/bin/bash
sync
if mount | grep "${@}" | grep -q fuse
then fusermount -u "${@}"
else umount "${@}"
fi
HERE_DOC
chmod 755 /usr/bin/myumount</userinput></screen>
<para>
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 <command>umount</command> to
<command>myumount</command>.
</para>
<para>
If you use a desktop environment like
<application>Gnome</application> or <application>KDE</application> you
may like to create a <filename>rox.desktop</filename> file so that
<application>rox-filer</application> appears in the panel's menus. As
the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>ln -s ../rox/.DirIcon /usr/share/pixmaps/rox.png &amp;&amp;
mkdir -p /usr/share/applications &amp;&amp;
cat &gt; /usr/share/applications/rox.desktop &lt;&lt; "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</userinput></screen>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>rox</seg>
<seg>None</seg>
<seg>/usr/share/rox</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="rox-filer-prog">
<term><command>rox</command></term>
<listitem>
<para>
is the rox file manager
</para>
<indexterm zone="rox-filer rox-filer-prog">
<primary sortas="b-rox-filer">rox-filer</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>