(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.
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:
-sudo yum install python2
-sudo alternatives --set python /usr/bin/python2
The 2 source rpm’s from 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, 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:
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.
-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.
-sudo dnf config-manager --set-enabled powertools
activates Rocky powertools repo.
sudo yum install lightdm
, installs 37 packages
-yum list rpmdevtools
to confirm that it is installed
-rpmdev-setuptree
to create /home/user/rpmbuild directory
-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.
e16 rebuild
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
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
lxterminal rebuild
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
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
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:
-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:
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:
#!/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:
#!/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:
## 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)
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.