openSUSE and IceWM adventures - minimalist computing
IceWM was an accidental discovery made during my quest for a minimal openSUSE system. I had previously experimented with Xfce and Mate and both were not to my liking, at least on openSUSE. I chose the Generic Desktop
option in the installer expecting a minimal, barely usable system. I assumed I would build upon it just like I do on Arch. What I got was a minimal IceWM system. However, it was totally usable and more. It blew my mind.
What is IceWM
IceWM is a Window Manager (WM) for the X Window System:
The goal of IceWM is speed, simplicity, and not getting in the user’s way. It comes with a taskbar with pager, global and per-window keybindings and a dynamic menu system.
A WM is the foundation on which a Desktop Environment (DE) stands. KDE Plasma 5 DE, for example, uses KWin while GNOME uses Mutter as default WMs. However, these can be swapped out for other WMs.
A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface.
Why not a Desktop Environment?
Desktop Environments (DE) are great for people who want a fully-configured, working system right after install. I had been using KDE Plasma 5 for a very long time. I would run it on old hardware too without much trouble. I have used Xfce too.
There are a few reasons for not wanting to use a DE:
- Complexity
Desktop Environments are very complex systems. Complexity means too many moving parts. Too many moving parts means huge potential for bugs and breakages. Especially important if one intends to use a rolling release GNU Linux distribution. - Black Box
Presented with a computer running GNOME or KDE Plasma 5, a normal user may not even be able to tell what lies beneath the GUI glitz. Is this GNOME abstracting away a GNU Linux or a FreeBSD running on x86 or x86_64 or ARM? A normal user does not know and does not care as long as their computing needs are met. For a student, this may not be the ideal situation. - Control
Since a good DE abstracts away the underlying system software, the hardware and does almost everything on behalf of the user, there is a loss of control for the power user.
How to get IceWM during openSUSE installation
Very simple. Choose the Generic Desktop
option during installation:
IceWM also powers the YaST Installer (image above). So, it is quite important.
Setting up the workstation
VirtualBox Extension Pack
Since no polkit exists in base IceWM install, elevation prompt does not work and error occurs:
> sudo VBoxManage extpack install --replace '<Path_To_Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack'
which results in
--accept-license=33d7284dc4a0ece381196fda3cfe2ed0e1e8e7ed7f27b9a9ebc4ee22e24bd23c
to the VBoxManage command line.
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully installed "Oracle VM VirtualBox Extension Pack".
Screenshot application
Tried gnome-screenshot
> sudo zypper in gnome-screenshot
Does not list in IceWM menu. Can be launched from command line, takes screenshot, but no control whatsoever:
> gnome-screenshot
** Message: 01:38:15.430: Unable to use GNOME Shell's builtin screenshot interface, resorting to fallback X11.
Tried flameshot
> sudo zypper in flameshot
Works flawlessly. Has all the desired bells and whistles.
Networking
Wicked
did not work properly with my Broadcom BCM43228
wifi card. Installed NetworkManager
.
> sudo zypper in NetworkManager
The nmcli
works flawlessly. In any case, I use NetworkManager
in Arch also. So, it is easy to work with.
Audio
Followed openSUSE documentation and tried to install PulseAudio:
> sudo zypper in pulseaudio pavucontrol paprefs padevchooser paman
The last two, padevchooser
and pamando
do not exist.
> sudo zypper in pulseaudio pavucontrol paprefs
Everything works. pavucontrol
lets me control everything.
Archiver
Downloaded and tried to run peazip
> ./peazip
./peazip: error while loading shared libraries: libgthread-2.0.so.0: cannot open shared object file: No such file or directory
Who provides libgthread-2.0.so.0
?
> zypper se --provides libgthread-2.0.so.0
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
--+------------------------+------------------------------------------------+--------
| libgthread-2_0-0 | Portable API from glib wrapping system threads | package
| libgthread-2_0-0-32bit | Portable API from glib wrapping system threads | package
Installed libgthread-2.0.so.0
> sudo zypper in libgthread-2_0-0
Remove Display Manager
Got rid of lightdm
and xdm
. The sequence is important. First get rid of lightdm
and all its dependencies:
> sudo zypper rm --clean-deps lightdm
Then, get rid of xdm
. Running --clean-deps
for xdm
will nuke the X Window System. So, no --clean-deps
:
> sudo zypper rm xdm