Desktop Environment

There are a ton options when it comes to desktop environments including GNOME, KDE, with lightweight derivatives such as XFCE, MATE and Cinnamon. The major ones, trying to be everything to everyone, comes with a broad suite of tools and utilizes are provided such as systray applets, network-managers, file-browsers, screensavers, session-managers, key-chains, printer-configurators, system configuration etc. in addition to the essential task of “window management”.

For the core task of window management one is spoiled for choice as well, FluxBox, Awesome, i3, i3-gaps and xmonad. On the other end are a bunch of choices such as OpenBox, before-mentioned desktop-environments or replace the window-manager part. with tiling window-managers being one of the main reasons to replace the

All of the above are based on the X Window System, a replacement for which has been underway for 10+ years called Wayland.

DE using XFCE4 and i3-gaps

../../../_images/screenshot-i3-gaps.png ../../../_images/screenshot-i3-gaps-rofi.png

Tiling with i3-gaps

i3-gaps is a fork of i3 which is actively maintained as a set of patches on top of i3.

At the time of writing/updating this, then i3-gaps version v4.20.1 was the latest. Which in addition to the toolbelt packages requires installation of the following:

sudo apt-get -qy install \
  libcairo2-dev \
  libev-dev \
  libpango1.0-dev \
  libpcre3-dev \
  libstartup-notification0-dev \
  libxcb-cursor-dev \
  libxcb-icccm4-dev \
  libxcb-keysyms1-dev \
  libxcb-randr0-dev \
  libxcb-shape0-dev \
  libxcb-util0-dev \
  libxcb-util0-dev \
  libxcb-xinerama0-dev \
  libxcb-xkb-dev \
  libxcb-xrm-dev \
  libxkbcommon-x11-dev \
  libyajl-dev

Then clone the i3-gaps repos, build and install it from source:

cd git
git clone https://github.com/Airblader/i3.git i3-gaps
cd i3-gaps
git checkout 4.20.1
meson setup builddir
meson compile -C builddir
sudo meson install -C builddir

The annoying thing here is that you have to maintain i3-gaps on your system, that is updating it as new releases come out make sure it is still working as intended.

i3ipc-glib

This is needed for the i3-workspaces-plugin. It too has dependencies:

sudo apt-get install \
  gobject-introspection \
  gtk-doc-tools \
  libjson-glib-dev

Do this:

cd -/git
git clone https://github.com/altdesktop/i3ipc-glib.git
cd i3ipc-glib
git checkout v1.0.1

./autogen.sh --prefix-/usr
make
sudo make install

i3-workspaces-plugin

Requirements:

sudo apt-get install \
  libxfce4panel-2.0-dev \
  libxfce4ui-2-dev \
  xfce4-dev-tools

i3 provides stuff like: i3bar, i3status, i3pystatus, i3blocks etc. however, the XFCE4 provides the same with a bunch of well-supported applets like the gnome-network-manager. So instead of using the i3bar, this setup favors using the xfce-panel instead, and then integrating the i3 workspaces via a plugin:

cd -/git
git clone https://github.com/denesb/xfce4-i3-workspaces-plugin.git
cd xfce4-i3-workspaces-plugin
git checkout 1.4.0

./autogen.sh --prefix-/usr
make
sudo make install

i3 - aux

Application launcher:

sudo apt-get install rofi

Backgrounds:

sudo apt-get install nitrogen