# E16 and icewm light-weight desktops for Rocky 8.6

**URL:** <https://forums.rockylinux.org/t/e16-and-icewm-light-weight-desktops-for-rocky-8-6/7612>\
**Category:** Rocky Linux Help & Support\
**Created:** [October 20, 2022, 11:34pm UTC](https://forums.rockylinux.org/t/e16-and-icewm-light-weight-desktops-for-rocky-8-6/7612 "2022-10-20T23:34:05Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![LenE](https://avatars.discourse-cdn.com/v4/letter/l/7bcc69/32.png) [@LenE](https://forums.rockylinux.org/u/LenE)\
**Post date:** [October 20, 2022, 11:34pm UTC](https://forums.rockylinux.org/t/e16-and-icewm-light-weight-desktops-for-rocky-8-6/7612/1 "2022-10-20T23:34:05Z")

</div>

(About e16: It is somewhat old-fashioned and tricky to set up, but is light  
and very reliable. Kim Woelders has carefully maintained it for the past  
decade, and continues to do so.)

Testing Hardware

The test PC was a HP Compaq DC5800 which has all-Intel device  
controllers, so that there were no graphics card or SATA disk controller  
problems.

* * *

Software sources

The applicable source for the e16 desktop is the e16-1.0.25-1.fc36.src.rpm  
file downloadable from [Download](https://www.enlightenment.org/download).

The EPEL repository contains most of the packages required, in addition to  
a desktop environment (DE), to build a functional installation.

Unlike with an XFCE DE, which can be directly installed from the EPEL  
repository (sudo yum group install XFCE), there is no available group  
definition for the MATE DE, but fortunately, most if not all of the component  
packages are available. This fact greatly simplified the construction of the  
installation. Other than with e16, the only other component requiring a  
2-step build (rpm -ivh --nomd5 package.src.rpm, rpmbuild -bb package.spec)  
was lxterminal. (Terminal emulators from other environments usually worked  
but were accompanied by warning messages about missing libraries).

Initial attempts to rebuild lxterminal (and some other packages) were  
conducted on fc29 src.rpm’s, but python-related problems were encountered  
because direct references to /usr/bin/python were not acceptable.  
To overcome this difficulty with lxterminal, fc31 src.rpm’s were used and the  
following 2 preparatory steps were necessary:

```auto
 -sudo yum install python2
 -sudo alternatives --set python /usr/bin/python2

```

The 2 source rpm’s from [https://archives.fedoraproject.org](https://archives.fedoraproject.org), Fedora 31  
Releases required for the lxterminal rebuild are:  
-vte-0.28.2-29.fc31.src.rpm, for the main lxterminal dependency  
-lxterminal-0.3.2-4.D20190717gitcb2992e.fc31.src.rpm, for lxterminal itself

* * *

REQUIRED EXTRAS

* * *

Signing Key Collection

From [https://archives.fedoraproject.org](https://archives.fedoraproject.org), Fedora 36 Releases,  
the package fedora-gpg-keys-36-1.noarch.rpm, when installed, loads a  
large number of fedora-version keys into /etc/pki/rpm-gpg. From there,  
the Fedora 31 and 36 required-keys can be imported into the rpm database:

```auto
sudo rpm --import RPM-GPG-KEY-fedora-31-x86_64 
sudo rpm --import RPM-GPG-KEY-fedora-36-x86_64

```

When the EPEL repo is activated, sudo yum install epel-release,  
the EPEL public key, RPM-GPG-KEY-EPEL-8, is placed in /etc/pki/rpm-gpg.

The RPM-GPG-KEY-rockyofficial public key is in /etc/pki/rpm-gpg as  
part of the Rocky8.6 installation.

* * *

INSTALLATION PROCEDURE

* * *

The Initial Hard Drive Installation is routine. When installing the Rocky8.6-  
minimal .iso, the Server option with basic Development Tools is selected.

The majority of software installs are from the command line without a GUI,  
and then the GUI is activated for the DE setup procedure.

```auto
-sudo yum group install ‘RPM Development Tools’, installs 68 packages.
-sudo yum group install Fonts, installs 41 packages.
-sudo yum group install base-x, installs 94 packages.
-sudo yum epel-release, to activate the EPEL repository

```

From a USB stick containing the 3 .src rpm’s and fedora-gpg-keys-36-1.noarch.rpm, as mentioned above, sudo mount /dev/sdb1 /mnt,  
upload them and localinstall fedora-gpg-keys-36-1.noarch.rpm

rpm --import the keys as mentioned in the Signing Key Collection section  
above.

```auto
-sudo dnf config-manager --set-enabled powertools

```

activates Rocky powertools repo.

```auto
sudo yum install lightdm

```

, installs 37 packages

```auto
-yum list rpmdevtools

```

to confirm that it is installed

```auto
-rpmdev-setuptree

```

to create /home/user/rpmbuild directory

```auto
-sudo yum install python2
-sudo alternatives --set python /usr/bin/python2

```

* * *

Installing Specific DE Packages

The 3 packages that are to be rebuilt from .src.rpm’s each require  
a group of dependencies that would be shown as missing after the  
rpmbuild -bb package.spec command. To avoid this delay, the  
dependencies are listed for each, to allow pre-installation and  
timely completion. After build completion, the x86\_64.rpm’s are  
locally installed, omitting the debug packages.

```auto
e16 rebuild

```

```auto
sudo yum install freetype-devel imlib2-devel cpp gcc
rpm -ivh --nomd5 e16-1.0.25-1.fc36.src.rpm

```

-from /home/user/rpmbuild/SPECS, rpmbuild -bb e16.spec

vte rebuild

```auto
sudo yum install gobject-introspection-devel intltool gtk2-devel
 libXt-devel ncurses-devel pango-devel pygtk2-devel python2-devel
rpm -ivh --nomd5 vte-0.28.2-29.fc31.src.rpm

```

from /home/user/rpmbuild/SPECS, rpmbuild -bb vte.spec

```auto
lxterminal rebuild

```

```auto
sudo yum install libxslt desktop-file-utils docboook-style-xsl docbook-utils git
rpm -ivh --nomd5 lxterminal-0.3.2-4.D20190717gitcb2992e.fc31.src.rpm

```

-from /home/user/rpmbuild/SPECS, rpmbuild -bb lxterminal.spec

remaining installs

```auto
sudo yum install dbus-x11
sudo yum install pluma
sudo yum install caja
sudo yum install mate-polkit
sudo yum install gparted
sudo yum install icewm

```

activate GUI

```auto
sudo systemctl set-default graphical.target
sudo systemctl enable lightdm
sudo reboot

```

* * *

DE Setup Procedure

Once the GUI has been activated, the e16 DE works sufficiently well to  
support file manipulations to tailor/optimize the environment for regular  
use. The main drawback at this stage is that shutdown/reboot are not  
available from the menu, but are easily invoked from an lxterminal command  
line, sudo shutdown -h 0 or sudo reboot.

(The e16 application menu pops up after a left-mouse-button click anywhere  
on the screen.  
The e16 maintenance menu pops up after a right-mouse-button click  
anywhere on the screen. A regular use of the maintenance menu is the  
regenerate menus option. e16 does not update the application menu  
automatically after installation of additional software; the regenerate  
menus option does this quickly.)

* * *

The following steps are applicable to both e16 and icewm:

Eliminate extraneous sessions in /usr/share/xsessions

After the installation procedure, the /usr/share/xsessions  
directory contains the following:

```auto
-rw-r--r-- 1 user user 787 Oct 17 09:33 e16-session.desktop
-rw-r--r-- 1 user user 984 Oct 17 09:33 e16-gnome2-session.desktop
-rw-r--r-- 1 user user 211 Oct 17 09:33 e16-gnome3-session.desktop
-rw-r--r-- 1 user user 969 Oct 17 09:33 e16-kde-session.desktop
-rw-r--r-- 1 user user 3094 Oct 3 00:48 icewm-session.desktop
-rw-r--r-- 1 user user 130 Apr 11 2021 xinit-compat.desktop

```

The e16-gnome2, e16-gnome3 and e16-kde entries are not required  
and should be deleted.

Polkit Authentication

The last 9 lines of the  
/etc/xdg/autostart/polkit-mate-authentication-agent-1.desktop file are as  
follows:

```auto
Comment[zh_CN]=MATE 桌面的 PolicyKit 认证代理
Comment[zh_TW]=MATE 桌面環境的 PolicyKit 驗證代理程式
Comment=PolicyKit Authentication Agent for the MATE Desktop
Exec=/usr/libexec/polkit-mate-authentication-agent-1
Terminal=false
Type=Application
NoDisplay=true
NotShowIn=TDE;
X-MATE-AutoRestart=true

```

The original second-to-last line was OnlyShowIn=MATE;  
The Trinity DE (TDE) is not used; therefore, the effect of the change is  
to make the Polkit Authentication active for any DE in actual use.

The Exec statement is copy/pasted or entered into 2 startup-related files:

i) /usr/share/e16/misc/starte16, as follows:

```auto
#!/bin/sh

s=$1
test -z "$s" && s=$0

case "$s" in
*gnome|GNOME)
	test -x /usr/bin/gconftool-2 && gconftool-2 --set /desktop/gnome/session/required_components/windowmanager --type string e16
	WINDOW_MANAGER=e16
	export WINDOW_MANAGER
	exec gnome-session
	;;
*kde|KDE)
	KDEWM=e16
	export KDEWM
	exec startkde
	;;
*window)
	exec /usr/libexec/polkit-mate-authentication-agent-1 &
	exec /usr/bin/e16 -w ${SIZE:-800x600}
	;;
*)
	exec /usr/libexec/polkit-mate-authentication-agent-1 &
	exec /usr/bin/e16
	;;
esac
```

ii) create /usr/share/icewm/startup as follows:

```auto
#!/bin/bash

# polkit authentication

  /usr/libexec/polkit-mate-authentication-agent-1 &
```

make the file executable: sudo chmod 755 startup

* * *

Activate Shutdown/Reboot from the menu

i) Additions to /etc/sudoers file.

```
(To edit the sudoers file, sudo chmod 640 sudoers, to enable
  standard pluma access to the file. After editing, 
  sudo chmod 440 sudoers, to restore the original setting.
  If a syntax error is made during editing, logging in as
  root is required to re-edit the file and correct the problem.)

 The Commands section of the sudoers file is as follows:

```

```auto
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere 
root	ALL=(ALL) ALL

## Allows members of the 'sys' group to run networking, software, 
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

## Allows people in group wheel to run all commands
%wheel	ALL=(ALL)	ALL

## Same thing without a password
# %wheel	ALL=(ALL)	NOPASSWD: ALL

## Allows members of group wheel to execute shutdown/reboot/poweroff without a password
%wheel ALL=(ALL) NOPASSWD: /sbin/shutdown -h 0
%wheel ALL=(ALL) NOPASSWD: /sbin/reboot
%wheel ALL=(ALL) NOPASSWD: /sbin/poweroff

## Allows members of the users group to mount and unmount the 
## cdrom as root
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

## Allows members of the users group to shutdown this system
# %users localhost=/sbin/shutdown -h now

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d
```

The commands for executing shutdown/reboot/poweroff without a password  
are an insertion to the original file.

ii) For e16 only, alterations to the /home/user/.e16/e\_config–0.0.cfg file.

```
The file contains a large number of setup parameters; what is shown here
is only the small number that should be modified: (1 means on/active, 2
means off)

```

desktops.edge\_flip\_mode = 0 turn off (cosmetic)

```auto
misc.session.enable_script = 1 turn on
misc.session.script = $EROOT/scripts/session.sh
misc.session.enable_logout_dialog = 1
misc.session.enable_reboot_halt = 1 turn on
misc.session.cmd_reboot = sudo /sbin/reboot enter command
misc.session.cmd_halt = sudo /sbin/shutdown -h 0 enter command 
tooltips.enable = 0 turn off (cosmetic)

```

* * *

For e16 only, enlarging menu text size

The default menu text size is quite small, so the following are the steps  
to enlarge it.

-from /usr/share/e16/themes/winter, copy the fonts.theme.cfg file  
into /home/user/.e16, rename it to fonts.cfg.  
-edit the fonts.cfg file, change the font-menu value from “normal/7“  
to “normal/12“ or larger.  
-on reboot, the menu text size is enlarged.

* * *

caja file manager handling of USB sticks

-when a USB stick is inserted into a port, caja detects the presence of the  
device but doesn’t automount it, and it doesn’t have a mount command  
-mounting is done by quickly opening and closing the device  
-when a USB stick is to be unmounted, caja has an eject command.

Len E.

---

<div class="post-metadata">

**Author:** ![sspencerwire](https://avatars.discourse-cdn.com/v4/letter/s/c2a13f/32.png) [@sspencerwire](https://forums.rockylinux.org/u/sspencerwire)\
**Post date:** [October 21, 2022, 12:34pm UTC](https://forums.rockylinux.org/t/e16-and-icewm-light-weight-desktops-for-rocky-8-6/7612/2 "2022-10-21T12:34:45Z")

</div>

@LenE Have you considered writing this procedure up officially for Rocky Linux documentation? It would fit nicely into the “Desktop” category [here](https://docs.rockylinux.org/guides/)

---

<div class="post-metadata">

**Author:** ![gerry666uk](https://avatars.discourse-cdn.com/v4/letter/g/dbc845/32.png) [@gerry666uk](https://forums.rockylinux.org/u/gerry666uk)\
**Post date:** [October 21, 2022, 9:35pm UTC](https://forums.rockylinux.org/t/e16-and-icewm-light-weight-desktops-for-rocky-8-6/7612/3 "2022-10-21T21:35:00Z")

</div>

Do these desktops work with Wayland?

---

<div class="post-metadata">

**Author:** ![LenE](https://avatars.discourse-cdn.com/v4/letter/l/7bcc69/32.png) [@LenE](https://forums.rockylinux.org/u/LenE)\
**Post date:** [October 22, 2022, 4:34pm UTC](https://forums.rockylinux.org/t/e16-and-icewm-light-weight-desktops-for-rocky-8-6/7612/4 "2022-10-22T16:34:33Z")

</div>

Hi Gerry: As with the LXDE installation, I installed xorg-X11-server-Xwayland.  
I didn’t notice any operational difference, but nothing was broken with the addition.  
The short answer to your question: I don’t know.

Hi Steven: I appreciate your interest in my providing “official” Rocky documentation,  
but I’m quite new to working with Rocky, and not really qualified to do that.  
Two recent small incidents illustrate my lack of depth with Rocky:  
i) Gerry’s latest question and my vague answer to it.  
ii) In perusing the Documentation category, I found that I was totally unaware of the  
Standard package group which is obviously very useful in constructing proper  
desktop environments.

Len E.

---

<div class="post-metadata">

**Author:** ![jlehtone](https://avatars.discourse-cdn.com/v4/letter/j/e9a140/32.png) [@jlehtone](https://forums.rockylinux.org/u/jlehtone)\
**Post date:** [October 22, 2022, 4:51pm UTC](https://forums.rockylinux.org/t/e16-and-icewm-light-weight-desktops-for-rocky-8-6/7612/5 "2022-10-22T16:51:14Z")

</div>

> [@LenE](#):
>
> xorg-X11-server-Xwayland  
> I didn’t notice any operational difference, but nothing was broken with the addition.

> _Xwayland_ is an X server and a Wayland client. It plays the role of a proxy between legacy X clients which do not support the Wayland protocols and the Wayland server.

If the DE runs on X11 session, then Xwayland (xorg-X11-server-Xwayland) is not used and hence no difference.  
If the DE runs on Wayland, then legacy X client programs cannot run at all, if you don’t have Xwayland.

You can start Gnome in both Wayland and X11 modes\*. Then you can look what processes are running.  
Similarly, you can start E16 session and check which server processes you get.

\*No, I have no idea how Gnome does it.

---

<div class="post-metadata">

**Author:** ![gerry666uk](https://avatars.discourse-cdn.com/v4/letter/g/dbc845/32.png) [@gerry666uk](https://forums.rockylinux.org/u/gerry666uk)\
**Post date:** [October 22, 2022, 5:54pm UTC](https://forums.rockylinux.org/t/e16-and-icewm-light-weight-desktops-for-rocky-8-6/7612/6 "2022-10-22T17:54:29Z")

</div>

I think Xwayland is a compatibility wrapper to cope with things that can’t talk to Wayland direct, which tend to be older applications. Some defaults are changing, for example SDL2 are planning to have Wayland as the default.

---

<div class="post-metadata">

**Author:** ![LenE](https://avatars.discourse-cdn.com/v4/letter/l/7bcc69/32.png) [@LenE](https://forums.rockylinux.org/u/LenE)\
**Post date:** [October 23, 2022, 10:08pm UTC](https://forums.rockylinux.org/t/e16-and-icewm-light-weight-desktops-for-rocky-8-6/7612/7 "2022-10-23T22:08:16Z")

</div>

(Two situations in the past which Kim Woelders guided me  
through).

i) After installation of htop process viewer (sudo yum install htop, and menu  
regeneration), htop does not work from the normal System sub-menu.

It needs to be added to the User Application List, the first/top entry in the  
main menu as follows:

-in directory /home/user/.e16/menus, edit the user\_apps menu, add the  
following line at the end of the file:  
“Htop” NULL exec “xterm -geometry 120x60 htop"

(NB – make sure xterm is installed).  
-regenerate menus

When htop is invoked from the User Application List, the text size of the  
screen output is very small. Move the cursor near the top edge of the htop  
window, press the Ctrl key and right-click the mouse. A pop-up menu gives  
the choices of small, medium, large or huge text size. Select huge, and the  
screen detail will be very legible.

(Further to the previous 2 entries on this post, the htop output on the test  
machine showed no entries related to xorg-x11-server-Xwayland).

* * *

ii) Normally, at the bottom right corner of the screen, e16 has an Iconbox for  
application windows which have been minimized, and from which  
applications can be restored to the screen.

```
  Sometimes the iconbox disappears. From the desktop sub-menu of the
  maintenance (Settings) menu, there is a Create new Iconbox option.

```

* * *

Len E.

---

<div class="post-metadata">

**Author:** ![brian](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/brian/32/5777_2.png) [@brian](https://forums.rockylinux.org/u/brian)\
**Post date:** [August 25, 2023, 3:36am UTC](https://forums.rockylinux.org/t/e16-and-icewm-light-weight-desktops-for-rocky-8-6/7612/8 "2023-08-25T03:36:49Z")

</div>


