A minimal but functional IceWM rice script for Debian-based systems.
Installs all core packages, window manager configs, and themes — ready to go out of the box.
Part of the JustAGuy Linux window manager collection.
git clone https://github.com/drewgrif/icewm-setup.git
cd icewm-setup
chmod +x install.sh
./install.shThe installer supports the following options:
./install.sh [OPTIONS]
Options:
--only-config Only copy config files (skip packages and external tools)
--export-packages Export package lists for different distros and exit
--help Show help messageNew Features:
- Export packages: Use
--export-packagesto see equivalent package lists for Arch Linux and Fedora - Streamlined installation: Simpler, more reliable installation process
- Better error handling: Installation fails fast on errors to prevent partial setups
Package Installation: Packages are installed in logical groups (core, UI, file manager, audio, utilities, terminal, fonts) for better organization.
⚠️ UNSUPPORTED: Instructions for other distributions (click to expand)
IMPORTANT: These instructions are provided as-is for advanced users. Non-Debian distributions are NOT officially supported. Package names and availability may vary. Use at your own risk.
Arch Linux:
# Install dependencies (package names may differ)
sudo pacman -S icewm rofi dunst picom thunar \
xorg-xbacklight pamixer pavucontrol feh flameshot firefox \
network-manager-applet xfce4-power-manager ttf-font-awesome
# Copy configuration files
./install.sh --only-configFedora:
# Install dependencies (package names may differ)
sudo dnf install icewm rofi dunst picom thunar \
xbacklight pamixer pavucontrol feh flameshot firefox \
network-manager-applet xfce4-power-manager fontawesome-fonts
# Copy configuration files
./install.sh --only-configopenSUSE:
# Install dependencies (package names may differ)
sudo zypper install icewm rofi dunst picom thunar \
xbacklight pamixer pavucontrol feh flameshot firefox \
NetworkManager-applet xfce4-power-manager fontawesome-fonts
# Copy configuration files
./install.sh --only-config# Export package lists for other distributions
./install.sh --export-packages
# Update only configuration files (useful for non-Debian systems)
./install.sh --only-configNote: The script can be run from any location - it automatically detects its directory.
| Component | Purpose |
|---|---|
icewm |
Traditional window manager |
icewm-themes |
Additional themes for IceWM |
picom (FT-Labs) |
Compositor for transparency |
rofi |
Application launcher |
dunst |
Notifications |
wezterm |
Terminal emulator |
firefox-esr |
Default web browser |
thunar + plugins |
File manager |
nala |
Better apt frontend |
pipewire |
Audio handling |
flameshot, |
Screenshot tools |
micro |
Terminal text editor |
redshift |
Night light |
qimgv |
Lightweight image viewer |
fzf, etc. |
Utilities & enhancements |
Optional during install:
geany+ plugins - Lightweight IDE (installer will prompt)
📄 Need help with Geany? See the full guide at justaguylinux.com/documentation/software/geany
- Minimal theme with custom wallpapers
- Native IceWM taskbar with system tray and workspace switching
- Dunst, rofi, and GTK themes preconfigured
- Wallpapers stored in
~/.config/icewm/wallpaper - GTK Theme: Orchis
- Icon Theme: Colloid
💡 Special thanks to vinceliuice for the excellent GTK and icon themes.
| Key Combo | Action |
|---|---|
Super + Return |
Launch terminal (wezterm) |
Super + Shift + Return |
Launch floating terminal |
Super + Space |
Launch rofi application launcher |
Super + r |
Launch rofi run dialog |
Super + Tab |
Show window switcher |
Super + b |
Launch Firefox |
Super + f |
Launch file manager (Thunar) |
Super + l |
Lock screen |
Print |
Take screenshot (GUI) |
Shift + Print |
Take full screenshot to clipboard |
Keybindings are configured via IceWM's native configuration system.
~/.config/icewm/
├── preferences # Main IceWM preferences
├── keys # Keybinding configuration
├── menu # Application menu
├── toolbar # Toolbar configuration
├── theme # Theme selection
├── startup # Startup applications
├── themes/
│ └── (custom themes)
├── scripts/
│ ├── autostart.sh
│ ├── changevolume
│ └── power
└── wallpaper/
└── (wallpaper images)
~/.config/dunst/
└── dunstrc
~/.config/rofi/
├── config.rasi
├── keybinds.rasi
└── power.rasi
~/.config/picom/
└── picom.conf
The setup uses wezterm as the default terminal emulator, launched via:
Super + Return: Launch terminal- Application menu or desktop shortcuts
Terminal configuration can be customized through:
~/.config/wezterm/wezterm.lua- Main terminal configuration- IceWM preferences for default terminal application
This IceWM setup uses a clean configuration approach for better organization:
- preferences: Main IceWM configuration and behavior settings
- keys: Custom keybinding definitions
- menu: Application menu structure
- toolbar: Taskbar and system tray configuration
- theme: Visual appearance and themes
- startup: Autostart applications and scripts
This organized approach makes it easy to:
- Understand and modify specific aspects of the configuration
- Customize the desktop experience to your preferences
- Maintain a clean and functional desktop environment
Want to see how it looks and works?
🎥 Check out JustAGuy Linux on YouTube