2025.43

freedesktop.org is a great place to draw inspiration when authoring a Desktop Environment. For a start, they host projects upon which labwc and teallach are built, like Cairo, Mesa, Pixman, libinput, wlroots and Wayland. Further, they promote specifications and standards to help DEs co-exist, for example the Base Directory Specification.

First things first, we set XDG_CURRENT_DESKTOP=teallach;wlroots because otherwise it does not feel like we are a Desktop Environment. This enables xdg-desktop-portal and tools like xdg-open to operate in a teallach centric way. For example, we can now use teallach-mimeapps.list so that pcmanfm-qt and others can associate the right apps with files without affecting other DEs with whom teallach may co-exist.

We use the following wrappers to support setting favorite apps:

We ought to consider something like tl-terminal-exec too. There does not appear to be anything generic for opening a terminal. We like xdg-terminal-exec which is packaged on debian trixie, but weirdly not on Arch.

It is tempting to write our own alternative to xdg-open, but it feels better to just stick with the fd.o standard. slopen would have been quite a nice starting point for this.

Interestingly, for already established DEs, xdg-open invokes to their respective resource openers (e.g. exo-open on Xfce). For us, the xdg-open-script does the hard work (see open_generic()).

2025.42

A spin with trixie.

  1. Boot the trixie net-install iso
  2. Choose install rather than graphical install
  3. Untick debian desktop environment and GNOME
  4. As root, install sudo and run usermod -a -G sudo <user>
  5. Reboot
  6. Log in as yourself and do the following:
sudo apt install labwc git pkg-config make gcc scdoc meson dialog swaybg \
    foot wlr-randr wtype pyqt6-dev wf-recorder xdg-utils xfce4-panel \
    featherpad

# To build+install labwc-tweaks you'll also need the packages listed
# below. You can of course run labwc/teallach without it, but suggest
# just going with it to get a feel for the setup.

sudo apt install cmake qt6-base-dev qt6-tools-dev qt6-wayland-dev \
    libglib2.0-dev libxkbcommon-dev libxml2-dev

# We've installed xfce4-panel above, but if you want teallach's tint panel
# you'll additionally need:

sudo apt install layer-shell-qt liblayershellqtinterface-dev libsfdo-dev \
    qt6-wayland-private-dev qt6-base-private-dev

mkdir bin

# logout and login again for .profile to add ~/bin to $PATH

git clone https://github.com/teallach-desktop/teallach
cd teallach
./install-subprojects
./configure
make
make install

# In the teallach-welcome script, choose either xfce4-panel or tint depending
# on what you've installed and then hit 'Apply'
teallach-welcome
teallach

# In way of post-installation steps, consider the following:

./contrib/post-installation-01-foot.sh
sudo apt install qt-style-kvantum qt6ct papirus-icon-theme

# - Run qt6ct and set style=kvantum
# - Run kvantummanager, and under 'change theme', choose KvGnomeDark and hit
#   'use this theme'
# - Run labwc-tweaks and set icon-theme=Papirus
# - Finally select 'reconfigure' in the compositor root menu

2025.41

@01micko has created a logo for this. Thanks! We have loosely named it shebang-redirect.

2025.38

It appears that not all users like to install things in their $HOME directory. Teallach can now be install on Arch Linux like this:

  1. Boot from an Arch Linux iso
  2. Run archinstall and use profile Labwc
  3. Install git
  4. Download the bootstrap script with
git clone https://github.com/teallach-desktop/bootstrap-arch.git
  1. Run the script with cd bootstrap-arch ; ./bootstrap.sh
  2. Run teallach-welcome to populate ~/.config/teallach/
  3. Reboot and choose Teallach at the display manager prompt (I used SDDM)

Note: All the bootstrap script does is to build arch packages for tint, labwc-menu-generator, labwc-tweaks and teallach using the PKGBUILD files in the boostrap repo.

2025.35

So far, teallach consists of only some scaffoldnig. A rough shape is starting to emerge.

This week saw the addition of a rudimentary wallpaper setter client - in a mere 129 lines of python code. We do not need too many helper apps like that, but setting the wallpaper by editing files manually is just hard work.

teallach-nitrogen

We use the Kvantum theme KvGnomeDark.

2025.34

Post-installation Script

It is not great for a packaged program to install files in $HOME. So when considering how teallach files should be organised, it seems like a post-installation script is required to write files like ~/.config/teallach/autostart

teallach-welcome

As this matures, we may consider using the --merge-config flag and use a script to start the compositor which first adds /usr/share/teallach/... into XDG_CONFIG_DIRS.

Theming

Let us favour Server Side Decoration.

2025.33

We have a menu! It is generated by teallach-menu, which coverts a human-readable menu format (example below) into openbox compliant XML.

item Browser firefox
item Terminal foot
item Tweaks labwc-tweaks

sepr

exec labwc-menu-generator -b -t foot

sepr

menu Preferences
  item "Edit rc.xml" "featherpad ~/.config/labwc/rc.xml"
  item "Edit autostart" "featherpad ~/.config/labwc/autostart"

menu Exit
  conf Reconfigure
  exit Logout

Palette

I think this palette looks good. It is not too dissimilar to that of CrunchBang and works fine with Adwaita Dark.

foot -o colors.background=505050
tl-view-palette ~/.local/share/themes/teallach/labwc/palette.txt

2025.32

If we start with a bare Alpine Linux installation, how much glue is needed to turn labwc into something that feels like a Desktop Environment?

labwc is running on Alpine 3.22 with only the following packages: doas, labwc, ttf-dejavu, seatd, mesa-dri-gallium, dbus, dbus-x11, xwayland.