<?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 icewm-download-http "&sourceforge-repo;/icewm/icewm-&icewm-version;.tar.gz">
  <!ENTITY icewm-download-ftp  " ">
<!--
  <!ENTITY icewm-download-ftp  "&gentoo-ftp-repo;/icewm-&icewm-version;.tar.gz">
-->
  <!ENTITY icewm-md5sum        "6d61aced3bd20b9e7caeb7e8380368c8">
  <!ENTITY icewm-size          "888 KB">
  <!ENTITY icewm-buildsize     "33 MB">
  <!ENTITY icewm-time          "0.3 SBU">
]>

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

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

  <title>IceWM-&icewm-version;</title>

  <indexterm zone="icewm">
    <primary sortas="a-icewm">icewm</primary>
  </indexterm>

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

    <para><application>IceWM</application> is a window manager with the goals of
    speed, simplicity, and not getting in the user&apos;s way.</para>

    &lfs77_checked;

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

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

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

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

   </sect2>

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

    <note>
      <para>This version of <application>IceWM</application> is nominally a
      development release, but it provides a stable working environment and can
      be built without using obsolete libraries.</para>
    </note>

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

<screen><userinput>sed -i '/^LIBS/s/\(.*\)/\1 -lfontconfig/' src/Makefile.in &amp;&amp;
./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         &amp;&amp;
make install-docs    &amp;&amp;
make install-man     &amp;&amp;
make install-desktop</userinput></screen>

  </sect2>

  <sect2 role="commands">
    <title>Command Explanations</title>

    <para>
      <parameter>sed -i '/^LIBS/s/\(.*\)/\1 -lfontconfig/'
      src/Makefile.in</parameter>: this fixes the build with recent versions of
      <application>binutils</application>.
    </para>

  </sect2>

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

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

      <para><filename>~/.icewm/keys</filename>,
        <filename>~/.icewm/menu</filename>, and
        <filename>~/.icewm/preferences</filename>, and
        <filename>~/.icewm/toolbar</filename>, and
        <filename>~/.icewm/winoptions</filename>. The default versions are
        installed in <filename class="directory">/usr/share/icewm/</filename>
        and will be used if you have not copied them to <filename
        class="directory">~/.icewm</filename>.
      </para>

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

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

      <indexterm zone="icewm icewm-config">
        <primary sortas="e-AA.icewm-preferences">~/.icewm/preferences</primary>
      </indexterm>

      <indexterm zone="icewm icewm-config">
        <primary sortas="e-AA.icewm-toolbar">~/.icewm/toolbar</primary>
      </indexterm>

      <indexterm zone="icewm icewm-config">
        <primary sortas="e-AA.icewm-winoptions">~/.icewm/winoptions</primary>
      </indexterm>

    </sect3>

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

      <para>If <application>IceWM</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="icewm icewm-config">
        <primary sortas="e-AA.xinitrc">~/.xinitrc</primary>
      </indexterm>

<screen><userinput>echo icewm-session &gt; ~/.xinitrc</userinput></screen>

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

<screen><userinput>mkdir -v ~/.icewm                                       &amp;&amp;
cp -v /usr/share/icewm/keys ~/.icewm/keys               &amp;&amp;
cp -v /usr/share/icewm/menu ~/.icewm/menu               &amp;&amp;
cp -v /usr/share/icewm/preferences ~/.icewm/preferences &amp;&amp;
cp -v /usr/share/icewm/toolbar ~/.icewm/toolbar         &amp;&amp;
cp -v /usr/share/icewm/winoptions ~/.icewm/winoptions</userinput></screen>

      <para>You can now edit these files to meet your requirements. In
      particular, review the <filename>preferences</filename> file. You can use
      <command>Logout -> Restart-IceWM</command> on the main menu to load your
      changed preferences, but changes to the background only take effect when
      <application>IceWM</application> is started.</para>

      <para>The syntax of the menus is explained in the help files, which you
      can access by running <command>help</command> from the menu, but some of
      the detail is out of date and the default selections in the menus (a few
      old applications on the main menu, everything else on the
      <command>Programs</command> menu) will benefit from being updated to meet
      your needs. The following examples are  provided to encourage you to
      think about how you wish to organise your menus. Please note the
      following:</para>

      <itemizedlist>
        <listitem>
          <para>If a program listed in the menu has not been installed, it will
          not appear when the menu is displayed. Similarly, if the program
          exists but the specified icon does not, no icon will be displayed in
          the menu.</para>
        </listitem>
        <listitem>
          <para>The icons can be either <filename>.xpm</filename> or
          <filename>.png</filename> files, and there is no need to specify the
          extension. If the icon is located in the &quot;library&quot;
          (<filename class="directory">/usr/share/icewm/icons</filename>) there
          is no need to specifiy the path.</para>
        </listitem>
        <listitem>
          <para>Most programs are in sub-menus, and the main menu will always
          append entries for <literal>windows, help, settings, logout</literal>
          at the bottom.</para> </listitem>
        <listitem>
          <para>An icon for <application>firefox</application> was copied to
          the library directory and given a meaningful name. The icon for
          <application>xine</application> is <filename>xine.xpm</filename>
          which was installed to a pixmap directory.</para>
        </listitem>
        <listitem>
          <para>The default toolbar is not altered.</para>
        </listitem>
      </itemizedlist>

      <para>It is unlikely that these examples meet your desires, but if you
      wish to use them run the following commands:</para>

<screen role="nodump"><userinput>cat &gt; ~/.icewm/menu &lt;&lt; "EOF" &amp;&amp;
<literal>prog Urxvt xterm urxvt
prog GVolWheel /usr/share/pixmaps/gvolwheel/audio-volume-medium gvolwheel
separator
menufile General folder general
menufile Multimedia folder multimedia
menufile Tool_bar folder toolbar</literal>
EOF
cat &gt; ~/.icewm/general &lt;&lt; "EOF" &amp;&amp;
<literal>prog Firefox firefox firefox
prog Epiphany /usr/share/icons/gnome/16x16/apps/web-browser epiphany
prog Midori /usr/share/icons/hicolor/24x24/apps/midori midori
separator
prog Gimp /usr/share/icons/hicolor/16x16/apps/gimp gimp
separator
prog Evince /usr/share/icons/hicolor/16x16/apps/evince evince
prog Epdfview /usr/share/epdfview/pixmaps/icon_epdfview-48 epdfview</literal>
EOF
cat &gt; ~/.icewm/multimedia &lt;&lt; "EOF"
<literal>prog Audacious /usr/share/icons/hicolor/48x48/apps/audacious audacious
separator
prog Parole /usr/share/icons/hicolor/16x16/apps/parole parole
prog Totem /usr/share/icons/hicolor/16x16/apps/totem totem
prog Vlc /usr/share/icons/hicolor/16x16/apps/vlc vlc
prog Xine /usr/share/pixmaps/xine xine</literal>
EOF</userinput></screen>

      <para>If you wish to put icons on your desktop, you will need to install
      a program such as <xref linkend="rox-filer"/> which provides a pinboard.
      If you do that you will no longer be able to access the menu by
      right-clicking on the desktop, you will have to use the
      <application>IceWM</application> button. To ensure that the
      <application>rox</application> pinboard is running, the following
      commands will put it in the startup file:</para>

<screen role="nodump"><userinput>cat &gt; ~/.icewm/startup &lt;&lt; "EOF"
<literal>rox -p Default &amp;
EOF &amp;&amp;
chmod +x ~/.icewm/startup</literal></userinput></screen>

     <tip>
      <para>There are a number of keyboard shortcuts in
      <application>IceWM</application>:</para>
      <itemizedlist>
        <listitem>
          <para>Ctrl + Alt + F<replaceable>N</replaceable> : go to
          <filename>tty<replaceable>N</replaceable></filename>.</para>
        </listitem>
        <listitem>
          <para>Ctrl + Alt + <replaceable>N</replaceable> : go to desktop
          number <replaceable>N</replaceable></para>
        </listitem>
        <listitem>
          <para>Ctrl + Alt + Space : open a box on the taskbar where you can
          key in the name of an application and run it.</para>
        </listitem>
      </itemizedlist>
     </tip>

    </sect3>

  </sect2>

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

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

      <seglistitem>
        <seg>icehelp, icesh, icewm, icewm-session, icewm-set-gnomewm, icewmbg,
        icewmhint, icewmtray</seg>
        <seg>None</seg>
        <seg>/usr/share/doc/icewm-&icewm-version;, /usr/share/icewm and ~/.icewm</seg>
      </seglistitem>
    </segmentedlist>

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

      <varlistentry id="icehelp">
        <term><command>icehelp</command></term>
        <listitem>
          <para>is used to display the html manual.</para>
          <indexterm zone="icewm icehelp">
            <primary sortas="b-icehelp">icehelp</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="icesh">
        <term><command>icesh</command></term>
        <listitem>
          <para>is a command-line window manager which can be used in
          <filename>~/.icewm/startup</filename>.</para>
          <indexterm zone="icewm icesh">
            <primary sortas="b-icesh">icesh</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="icewm-prog">
        <term><command>icewm</command></term>
        <listitem>
          <para>is the window manager.</para>
          <indexterm zone="icewm icewm-prog">
            <primary sortas="b-icewm">icewm</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="icewm-session">
        <term><command>icewm-session</command></term>
        <listitem>
          <para>runs icewmbg, icewm, icewmtray, startup, shutdown (i.e. startup
          and shutdown scripts are run if installed).</para>
          <indexterm zone="icewm icewm-session">
            <primary sortas="b-icewm-session">icewm-session</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="icewm-set-gnomewm">
        <term><command>icewm-set-gnomewm</command></term>
        <listitem>
          <para>is a script to set the <application>GNOME</application> to
          <application>icewm</application> using <application>gconftool</application>.
          </para>
          <indexterm zone="icewm icewm-set-gnomewm">
            <primary sortas="b-icewm-set-gnomewm">icewm-set-gnomewm</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="icewmbg">
        <term><command>icewmbg</command></term>
        <listitem>
          <para>is used to set the background, according to the various
          <literal>DesktopBackground</literal> settings in the preferences.</para>
          <indexterm zone="icewm icewmbg">
            <primary sortas="b-icewmbg">icewmbg</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="icewmhint">
        <term><command>icewmhint</command></term>
        <listitem>
          <para>is used internally.</para>
          <indexterm zone="icewm icewmhint">
            <primary sortas="b-icewmhint">icewmhint</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="icewmtray">
        <term><command>icewmtray</command></term>
        <listitem>
          <para>provides the tray.</para>
          <indexterm zone="icewm icewmtray">
            <primary sortas="b-icewmtray">icewmtray</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
