<?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 fluxbox-download-http "&sourceforge-repo;/fluxbox/fluxbox-&fluxbox-version;.tar.xz">
  <!ENTITY fluxbox-download-ftp
           "&jaist-ftp-repo;/f/fl/fluxbox/fluxbox/&fluxbox-version;/fluxbox-&fluxbox-version;.tar.xz">
  <!ENTITY fluxbox-md5sum        "b44afd10ee1e64624c23115aa51dcd55">
  <!ENTITY fluxbox-size          "772 KB">
  <!ENTITY fluxbox-buildsize     "101 MB">
  <!ENTITY fluxbox-time          "0.9 SBU">
]>

<sect1 id="fluxbox" xreflabel="Fluxbox-&fluxbox-version;">
  <?dbhtml filename="fluxbox.html" ?>

  <sect1info>
    <othername>$LastChangedBy: ken $</othername>
    <date>$Date: 2015-02-27 19:25:31 -0500 (Fri, 27 Feb 2015) $</date>
  </sect1info>

  <title>Fluxbox-&fluxbox-version;</title>

  <indexterm zone="fluxbox">
    <primary sortas="a-Fluxbox">Fluxbox</primary>
  </indexterm>

  <sect2 role="package">
    <title>Introduction to Fluxbox</title>

    <para>The <application>Fluxbox</application> package contains a window
    manager.</para>

    &lfs77_checked;

    <bridgehead renderas="sect3">Package Information</bridgehead>
    <itemizedlist spacing="compact">
      <listitem>
        <para>Download (HTTP): <ulink url="&fluxbox-download-http;"/></para>
      </listitem>
      <listitem>
        <para>Download (FTP): <ulink url="&fluxbox-download-ftp;"/></para>
      </listitem>
      <listitem>
        <para>Download MD5 sum: &fluxbox-md5sum;</para>
      </listitem>
      <listitem>
        <para>Download size: &fluxbox-size;</para>
      </listitem>
      <listitem>
        <para>Estimated disk space required: &fluxbox-buildsize;</para>
      </listitem>
      <listitem>
        <para>Estimated build time: &fluxbox-time;</para>
      </listitem>
    </itemizedlist>

    <bridgehead renderas="sect3">Fluxbox Dependencies</bridgehead>

    <bridgehead renderas="sect4">Required</bridgehead>
    <para role="required"><xref linkend="x-window-system"/></para>

    <bridgehead renderas="sect4">Optional</bridgehead>
    <para role="optional">
      <xref linkend="dbus"/> (runtime),
      <xref linkend="fribidi"/>, and
      <xref linkend="imlib2"/> (if you wish to use other image formats in addition to XPM)
    </para>

    <para condition="html" role="usernotes">User Notes:
    <ulink url="&blfs-wiki;/fluxbox"/></para>

   </sect2>

  <sect2 role="installation">
    <title>Installation of Fluxbox</title>

    <para>Install <application>Fluxbox</application> by running the following
    commands:</para>

<screen><userinput>./configure --prefix=/usr &amp;&amp;
make</userinput></screen>

    <para>This package does not have a working testsuite.</para>

    <para>Now, as the <systemitem class="username">root</systemitem> user:</para>

<screen role="root"><userinput>make install</userinput></screen>

  </sect2>

  <sect2 role="configuration">
    <title>Configuring Fluxbox</title>

    <sect3 id="fluxbox-config">
      <title>Config Files</title>

      <para><filename>~/.fluxbox/init</filename>,
      <filename>~/.fluxbox/keys</filename>, and
      <filename>~/.fluxbox/menu</filename></para>

      <indexterm zone="fluxbox fluxbox-config">
        <primary sortas="e-AA.fluxbox-init">~/.fluxbox/init</primary>
      </indexterm>

      <indexterm zone="fluxbox fluxbox-config">
        <primary sortas="e-AA.fluxbox-keys">~/.fluxbox/keys</primary>
      </indexterm>

      <indexterm zone="fluxbox fluxbox-config">
        <primary sortas="e-AA.fluxbox-menu">~/.fluxbox/menu</primary>
      </indexterm>

    </sect3>

    <sect3>
      <title>Configuration Information</title>

      <para>If <application>Fluxbox</application> is the only Window Manager
      you want to use, you can start it with an <filename>.xinitrc</filename>
      file in your home folder. Be sure to backup your
      current <filename>.xinitrc</filename> before proceeding.</para>

      <indexterm zone="fluxbox fluxbox-config">
        <primary sortas="e-AA.xinitrc">~/.xinitrc</primary>
      </indexterm>

<screen><userinput>echo startfluxbox &gt; ~/.xinitrc</userinput></screen>

      <para>Or alternatively, if you use a login manager like
      <application>GDM</application> or <application>KDM</application> and would
      like to be able to choose <application>Fluxbox</application> at the login
      prompt, create a <filename>fluxbox.desktop</filename> file like this.</para>

      <para>As <systemitem class="username">root</systemitem>:</para>

<screen><userinput>cat &gt; /usr/share/xsessions/fluxbox.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
Encoding=UTF-8
Name=Fluxbox
Comment=This session logs you into Fluxbox
Exec=startfluxbox
Type=Application</literal>
EOF</userinput></screen>

      <para>If you didn't install <application>GDM</application> or
      <application>KDM</application> in <filename class='directory'>/usr</filename>,
      then change that command to fit the prefix you chose.</para>

      <para>Now create the <application>Fluxbox</application> configuration
      files:</para>

<screen><userinput>mkdir -v ~/.fluxbox &amp;&amp;
cp -v /usr/share/fluxbox/init ~/.fluxbox/init &amp;&amp;
cp -v /usr/share/fluxbox/keys ~/.fluxbox/keys</userinput></screen>

      <para>To generate the application menu, first you may wish to run
      <command>fluxbox-generate_menu -h</command>, in order to choose any
      <replaceable>&lt;user_options&gt;</replaceable>, then issue:</para>

<screen><userinput>cd ~/.fluxbox &amp;&amp;
fluxbox-generate_menu <replaceable>&lt;user_options&gt;</replaceable></userinput></screen>

      <para>Alternately, copy a pregenerated menu:</para>

<screen><userinput>cp -v /usr/share/fluxbox/menu ~/.fluxbox/menu</userinput></screen>

      <para>Menu items are added by editing <filename>~/.fluxbox/menu</filename>.
      The syntax is explained on the <command>fluxbox</command> man page.</para>

      <para>If you want to use an image as your desktop background, copy the
      theme you like into <filename class='directory'>~/.fluxbox</filename>.
      Then add a line to make it use the correct image. In the following
      command, change <replaceable>&lt;theme&gt;</replaceable> for the name of
      the theme you want and change
      <replaceable>&lt;/path/to/nice/image.ext&gt;</replaceable> to point to
      the actual image you want to use, where <replaceable>ext</replaceable>
      must be <quote>xpm</quote>, if <xref linkend="imlib2"/> is not installed
      to allow other image formats.</para>

<screen><userinput>cp /usr/share/fluxbox/styles/&lt;theme&gt; ~/.fluxbox/theme &amp;&amp;

sed -i 's,\(session.styleFile:\).*,\1 ~/.fluxbox/theme,' ~/.fluxbox/init &amp;&amp;

[ -f ~/.fluxbox/theme ] &amp;&amp;
echo "background.pixmap: &lt;/path/to/nice/image.ext&gt;" >> ~/.fluxbox/theme ||
[ -d ~/.fluxbox/theme ] &amp;&amp;
echo "background.pixmap: &lt;/path/to/nice/image.ext&gt;" >> ~/.fluxbox/theme/theme.cfg</userinput></screen>

      <para>In some locales the font specified in the theme may not contain the
      needed characters. This results in menus with blank items. You can fix
      this by editing <filename>~/.fluxbox/theme</filename> with a text editor
      and altering it so that it names a suitable font.</para>

    </sect3>

  </sect2>

  <sect2 role="content">
    <title>Contents</title>

    <segmentedlist>
      <segtitle>Installed Programs</segtitle>
      <segtitle>Installed Libraries</segtitle>
      <segtitle>Installed Directories</segtitle>

      <seglistitem>
        <seg>fluxbox, fbsetbg, fbsetroot, fluxbox-generate_menu, startfluxbox,
        fbrun, fluxbox-remote, and fluxbox-update_configs</seg>
        <seg>None</seg>
        <seg>/usr/share/fluxbox and ~/.fluxbox</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="fluxbox-prog">
        <term><command>fluxbox</command></term>
        <listitem>
          <para>is a window manager for <application>X11</application> based
          on <application>Blackbox</application> 0.61.0.</para>
          <indexterm zone="fluxbox fluxbox-prog">
            <primary sortas="b-fluxbox">fluxbox</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="fbsetbg">
        <term><command>fbsetbg</command></term>
        <listitem>
          <para>is a utility that sets the background image. It requires one of:
          <command>display</command>, <command>Esetroot</command>, <command>wmsetbg</command>,
          <command>xv</command>, <command>qiv</command> or <command>xsri</command>.
          It also requires <command>which</command> if <command>Esetroot</command> is
          found.</para>
          <indexterm zone="fluxbox fbsetbg">
            <primary sortas="b-fbsetbg">fbsetbg</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="fbsetroot">
        <term><command>fbsetroot</command></term>
        <listitem>
          <para>is a utility to change root window appearance based on the
          <application>Blackbox</application> application bsetroot.</para>
          <indexterm zone="fluxbox fbsetroot">
            <primary sortas="b-fbsetroot">fbsetroot</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="fluxbox-generate">
        <term><command>fluxbox-generate_menu</command></term>
        <listitem>
          <para>is a utility that generates a menu by scanning your
          <envar>PATH</envar>.</para>
          <indexterm zone="fluxbox fluxbox-generate">
            <primary sortas="b-fluxbox-generate">fluxbox-generate_menu</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="startfluxbox">
        <term><command>startfluxbox</command></term>
        <listitem>
          <para>is a session startup script that allows for command
          executions prior to <command>fluxbox</command> starting.</para>
          <indexterm zone="fluxbox startfluxbox">
            <primary sortas="b-startfluxbox">startfluxbox</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="fbrun">
        <term><command>fbrun</command></term>
        <listitem>
          <para>displays a run dialog window.</para>
          <indexterm zone="fluxbox fbrun">
            <primary sortas="b-fbrun">fbrun</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="fluxbox-remote">
        <term><command>fluxbox-remote</command></term>
        <listitem>
          <para>provides command line access to key commands for
          <application>Fluxbox</application>.</para>
          <indexterm zone="fluxbox fluxbox-remote">
            <primary sortas="b-fluxbox-remote">fluxbox-remote</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
