glfs/x/wm/icewm.xml
2024-02-19 18:11:28 -06:00

531 lines
18 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!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 "https://github.com/ice-wm/icewm/archive/&icewm-version;/icewm-&icewm-version;.tar.gz">
<!ENTITY icewm-download-ftp " ">
<!ENTITY icewm-md5sum "09fd852e60087f22d9404c48ff1b3c81">
<!ENTITY icewm-size "2.4 MB">
<!ENTITY icewm-buildsize "47 MB">
<!ENTITY icewm-time "0.4 SBU">
]>
<sect1 id="icewm" xreflabel="IceWM-&icewm-version;">
<?dbhtml filename="icewm.html" ?>
<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>
&lfs121_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="cmake"/>,
<xref linkend="imlib2"/>, and
<xref linkend="x-window-system"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="asciidoc"/> (for regenerating the HTML documentation),
<xref linkend="fribidi"/> (for languages written right to left),
<xref linkend="librsvg"/>,
<xref linkend="libao"/>,
<xref linkend="libsndfile"/>,
<xref linkend="alsa-lib"/> (for the experimental icesound program),
and <ulink url='https://gitlab.gnome.org/Archive/gdk-pixbuf-xlib'>
gdk-pixbuf-xlib</ulink>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of IceWM</title>
<!--
<note>
<para>
The tarball is compressed with <command>lzip</command>, and cannot be
processed with the <command>tar</command> program. It can be unpacked
with the <command>bsdtar</command> program from the libarchive
package.
</para>
</note>
-->
<para>
Install <application>IceWM</application> by running the following
commands:
</para>
<screen><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DCFGDIR=/etc \
-DENABLE_LTO=ON \
-DDOCDIR=/usr/share/doc/icewm-&icewm-version; \
.. &amp;&amp;
make</userinput></screen>
<para>
This package does not have a working test suite.
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<!--
<screen role="root"><userinput>cp ../lib/IceWM.jpg lib &amp;&amp;
make install &amp;&amp;
rm /usr/share/xsessions/icewm.desktop</userinput></screen>
-->
<screen role="root"><userinput>make install</userinput></screen>
<para>
This package creates two <filename>.desktop</filename> files in the
<filename class="directory">/usr/share/xsessions/</filename> directory.
Both are not needed in a BLFS system, so prevent the extra file showing
up as an option in a display manager. As the &root; user:
</para>
<screen role="root"><userinput>rm -v /usr/share/xsessions/icewm.desktop</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<parameter>-DENABLE_LTO=ON</parameter>: This option enables Link
Time Optimization and is required for this package.
</para>
<!--
<para>
<command>rm /usr/share/xsessions/icewm.desktop</command>: The package
ships with both icewm.desktop and icewm-xsession.desktop. The former has
apparently been used in the past, but it will hang if used with a modern
desktop-manager<phrase revision='sysv'> such as
<xref linkend="lightdm"/></phrase>.
</para>
<para>
<command>cp ../lib/IceWM.jpg lib</command>: This instruction fixes an
install problem.
</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 -pv ~/.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>
At this point you can <emphasis>either</emphasis> modify the
traditional menu files to suit your requirements,
<emphasis>or</emphasis> use the newer
<command>icewm-menu-fdo</command> described later.
</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 specify 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>
If you wish to use this traditional method, there are more examples in
previous releases of this book (e.g. BLFS-7.8).
</para>
<para>
<emphasis>Alternatively</emphasis>, you can create a menu which
conforms to the FDO Desktop Menu Specifications, where programs can be
found because they have a .desktop file in the XDG_DATA_HOME or
XDG_DATA_DIR directories. Unlike most windowmanagers,
<application>icewm</application> does not search for programs when the
menu is invoked, so if you take this route you will need to rerun the
following command after installing or removing programs:
</para>
<screen><userinput>icewm-menu-fdo >~/.icewm/menu</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, icesound, icewm, icewm-menu-fdo, icewm-menu-xrandr,
icewm-session, icewm-set-gnomewm, icewmbg, and 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="icesound">
<term><command>icesound</command></term>
<listitem>
<para>
plays audio files on GUI events raised by IceWM
</para>
<indexterm zone="icewm icesound">
<primary sortas="b-icesound">icesound</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-menu-fdo">
<term><command>icewm-menu-fdo</command></term>
<listitem>
<para>
can create a file in a format suitable for an IceWM menu, which
lists those programs currently installed in a layout conforming to
the FDO Desktop Menu Specifications
</para>
<indexterm zone="icewm icewm-menu-fdo">
<primary sortas="b-icewm-menu-fdo">icewm-menu-fdo</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="icewm-menu-xrandr">
<term><command>icewm-menu-xrandr</command></term>
<listitem>
<para>
is a helper program used to manage multi-screen configurations
</para>
<indexterm zone="icewm icewm-menu-xrandr">
<primary sortas="b-icewm-menu-xrandr">icewm-menu-xrandr</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> window
manager 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 to provide hints to the user
</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>