CentOS 8 with IceWM Desktop Environment

Do you need CentOS 8 with IceWM as desktop Operating System? Most likely not. Especially if you want it to work smoothly without any worries and troubles. However, if you enjoy playing with new desktop environments, you might find it fun.

CentOS 8 with IceWM desktop environment

My reasons were as follows:

  1. I wanted to use the same Linux distribution for server and desktop. Just to minimize possible surprises during the deployment.
  2. I wanted to know what is going on in the RPM-based part of Linux world. The only way to achieve this is to use such distribution every day.
  3. I was tired of problems with the Virtual Box guest additions in CentOS 7 (yes , I run it all as a virtual machine), especially after the 3.10 kernel updates. It was time to move on.
  4. I didn’t want to use Gnome 3, because it’s slow and ugly (however it’s fully functional!). And there were no other DEs in CentOS 8 repositories at that time.

So, I tried CentOS 8 with IceWM (installed it from source) and it worked. IceWM is small, very fast, ascetic, and in some ways quite intuitive. There were some problems with the clipboard (in xTerm and with VBox shared clipboard) and with language switching, but I figured it out and I think that I would probably continue to use it. Below are some notes on how I installed it and resolved the issues.

Basic installation of CentOS 8

I took the NetInstall x86_64 image of CentOS-8-x86_64-1905-boot.iso. For some reason, it didn’t choose the package mirror automatically. I had to enter it manually. Quite a funny bug, the thread is here.

Gnome desktop

After the basic installation, I just installed the X server and Gnome 3 (workstation). I didn’t want to use Gnome, I just wanted to test something that 100% works.

# dnf update
# dnf upgrade
# dnf groupinstall workstation

Btw, bye-bye yum, and hello dnf!

Virtualbox Guest Additions

I use CentOS 8 in a virtual machine on Windows, so it was important for me to make VirtualBox Guest Additions work:

# dnf install kernel-devel gcc make perl elfutils-libelf-devel
# cd /run/media/aleonov/VBox_GAs_6.0.12
# ./VBoxLinuxAdditions.run

After that, I’ve got something usable:

СentOS 8 Gnome 3

Additional repositories:

EPEL

Just install this rpm package from fedoraproject:

# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

If you have problems with certificates, you can disable the verification as follows:

# vi /etc/dnf/dnf.conf #Add a new line:
sslverify=0

PowerTools

On CentOS 8 it is recommended to enable the PowerTools repository since EPEL packages may depend on packages from it:

dnf config-manager --set-enabled PowerTools

ICE WM

The main thing that upset me in CentOS8 was the lack of alternative desktop environments in the repositories, even in EPEL. There was only a slooow Gnome 3 with terrible junk animations. 😢 So, I decided to try IceWM, because of intuitive configs and straightforward installation procedure from the source code.

NB: the package for IceWM is available in the CentOS 8 repository, but the dependencies are broken:

# dnf install icewm 
Last metadata expiration check: 2:48:03 ago on Sat 28 Sep 2019 08:37:11 PM MSK.
Error: 
 Problem: conflicting requests
  - nothing provides gnome-icon-theme needed by icewm-1.6.1-4.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

That’s why I decided to install IceWM from sources.

  • A description how to do this is available on the main site https://ice-wm.org.
  • All releases are available on github. Url with sources.
  • I took all necessary dependencies from the script here and added also lzip
# dnf install lzip asciidoc alsa-lib-devel autoconf automake cmake fontconfig-devel fribidi-devel gcc-c++ gdk-pixbuf2-devel gdk-pixbuf2-xlib-devel librsvg2-devel gettext gettext-devel git glib2-devel libSM-devel libX11-devel libXext-devel libXft-devel libXinerama-devel libXpm-devel libXrandr-devel libXrender-devel libXcomposite-devel libXdamage-devel libXfixes-devel libjpeg-turbo-devel libpng-devel libtool make perl-Pod-Html xterm xdg-utils libao-devel libsndfile-devel

Don’t forget to add the PowerTools repo (above), or you will face problems with the packages gdk-pixbuf2-xlib-devel, libao-devel and libsndfile-devel.

I decided to install IceWM in my home directory to make it easier to manage:

$ curl -k -L -s https://github.com/ice-wm/icewm/releases/download/1.6.2/icewm-1.6.2.tar.lz | tar xvpf - --lzip
$ cd icewm-1.6.2
$ ./configure --prefix=/usr
$ make
$ mkdir /home/aleonov/ice-wm/
$ make DESTDIR="/home/aleonov/ice-wm/" install

Installed:

[aleonov@localhost ice-wm]$ find | grep "/bin"
./usr/bin
./usr/bin/icewm
./usr/bin/icewm-session
./usr/bin/icesh
./usr/bin/icehelp
./usr/bin/icewmhint
./usr/bin/icewmbg
./usr/bin/icesound
./usr/bin/icewm-menu-fdo
./usr/bin/icewm-set-gnomewm
./usr/bin/icewm-menu-xrandr

To start IceWM create .xinitrc file like this:

$ cat .xinitrc
#-----------------------------------------------------------
# .xinitrc
#-----------------------------------------------------------

PATH="$PATH:$HOME/ice-wm/usr/bin/"

# run profile to set $PATH and other env vars correctly
. $HOME/.bash_profile

# setup background
xsetroot -solid '#056'

# setup mouse acceleration
xset m 7 2

# start icewm, and run xterm if it crashes (just to be safe)
exec icewm || exec xterm -fg red
#-----------------------------------------------------------

Theme installation

The default IceWM theme looks pretty ugly, so I downloaded a new one here and installed it:

mkdir ~/.icewm/themes/
mv Downloads/Araita.tar.bz2 .icewm/themes/
tar xjf Araita.tar.bz2 

It looks like this:

CentOS 8 with IceWM desktop environment

Clipboard

If Virtualbox shared clipboard doesn’t work, make sure that VBoxClient with the key clipboard is running:

 /usr/bin/VBoxClient --clipboard 

Menu

You can easily create a launch menu in IceWM by creating such file (syntax):

$ cat ~/.icewm/menu 
prog pycharm pycharm pycharm
prog term term xterm
prog gedit gedit gedit
prog firefox firefox firefox

Keys

Similarly you can add key strokes in IceWM (syntax). For example, I created key strokes to check different input languages and start Xterm terminal:

$ cat ~/.icewm/keys 
key "Alt+Shift+1" setxkbmap us
key "Alt+Shift+2" setxkbmap ru
key "Ctrl+t" xterm

Terminal

Copying to clipboard from Xterm terminal will be much more comfortable if you configure it in .Xresources like this:

$ cat .Xresources
XTerm.vt100.geometry: 80x32
XTerm.vt100.faceName: Liberation Mono:size=10:antialias=false
XTerm.vt100.font: 7x13

XTerm*vt100.translations: #override \
    Shift Ctrl <Key> C: copy-selection(CLIPBOARD) \n\
    Shift Ctrl <Key> V: insert-selection(CLIPBOARD)

That’s all for now. Thanks for your attention!

1 thought on “CentOS 8 with IceWM Desktop Environment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.