Wesley Schwengle Le moi

Freelance contracter & slacker

gitlab git-merge github gitlab box package linkedin

Latest posts

Latest Article

Workspace on Demand in i3wm

Published: September 24, 2025

TL;DR

I built a dynamic workspace loader for i3wm that lets me switch between multiple context-aware workspace groups (like “Client”, “Company”, and “Personal”) without losing state. It uses Perl, AnyEvent::I3, YAML config, and tick events to load layouts and launch apps on demand.

Workspaces on Demand

I have been using i3 as a Window Manager for years now. And while I love working with i3, there is one thing I found annoying. And that is that it lacks context awareness. What do I mean by this? I use it in several contexts: “Client”, “Company”, and “Personal”. Meaning, I’m in either client mode, company mode or personal mode. And ‘client mode’ can mean working with one or multiple clients at once. I pitched my initial idea on i3’s discussion pages and someone else asked about something similar as KDE’s “Activities”.

.... read more ....

See all Article posts

Latest Answerrit

Question: How to source your .profile with lightDM on Debian?

Published: November 18, 2025

I needed to have some defaults available in my i3 configuration and was using LightDM. I asked in the i3 github discussion pages if people knew why it was failing. It appears Debian stripped some functionality. So how do you solve this?

Answer

You want to have your own session wrapper for lightdm. I stole this recipe from Ubuntu:

#!/usr/bin/sh

for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
  [ ! -f "$file" ] && continue
  . $file
done

/etc/X11/Xsession $@

I install this in /usr/local/bin/lightdm-session. And then dpkg-divert the Debian version of lightdm.conf:

.... read more ....

See all Answerrit posts