IceWM on AlmaLinux 9 - automated install script

A bash script to install a minimal graphical environment on AlmaLinux 9 minimal: Xorg + IceWM 4.0.0 (compiled from source) + xfce4-terminal.

Designed for VirtualBox VMs or lab environments where you need a lightweight GUI without the overhead of a full desktop environment.

Requirements

  • AlmaLinux 9 minimal (no GUI installed)
  • I'm not sure if this runs on other Red Hat derivatives, but let's find out!
  • Root or sudo access
  • Internet connection

What it installs

Component Version Source
Xorg from AlmaLinux 9 repos dnf
IceWM 4.0.0 (2026-01-01) compiled from source
xfce4-terminal from EPEL 9 dnf

How to

1. Download the script

wget https://maulonobile.codeberg.page/linux-scripts/install-icewm-alma9.sh

or manually copy it to the VM (scp, shared folder, copy-paste).

2. Run

sudo bash install-icewm.sh

The script automatically:

  • updates the system and enables CRB + EPEL repos
  • installs Xorg and build dependencies
  • downloads, compiles and installs IceWM 4.0.0
  • installs xfce4-terminal
  • creates ~/.xinitrc and IceWM config files for the current user

Change IceWM version

The version is defined at the top of the script:

ICEWM_VERSION="4.0.0"

Change this value to compile and install a different release (e.g. "4.1.0"). The download URL, build path and install directories adapt automatically.

3. Start the GUI

startx

4. Exit

From the IceWM menu: Logout > Logout or Ctrl+Alt+Backspace.

Customization

IceWM config files are located in ~/.icewm/:

~/.icewm/
├── keys           # keyboard shortcuts
├── menu           # application menu
├── preferences    # general settings
├── toolbar        # toolbar buttons
└── winoptions     # per-window rules

For xfce4-terminal: right-click > Preferences or edit ~/.config/xfce4/terminal/terminalrc.

After editing IceWM configs: Menu > Logout > Restart IceWM (no need to restart X).

Notes

  • IceWM 4.0.0 is the latest upstream release (2026-01-01). Now EPEL 9 only provides 3.9.0
  • The video driver in VirtualBox is modesetting (built into Xorg) or vboxvideo (Guest Additions)
  • xorg-x11-drv-vesa does not exist on AlmaLinux 9, it is not needed
  • The script is idempotent: it can be re-run safely
  • Compilation takes about 2-3 minutes depending on VM resources