D2wc - Devilspie2 Workspace Configurator

d2wc: a GTK configurator for Devilspie2 window rules

I have developed a configurator, d2wc, short for Devilspie2 Workspace Configurator, to manage Devilspie2.

The goal of d2wc is to make Devilspie2 window placement usable from a graphical interface, instead of requiring you to manually edit Lua rules. It is currently focused on Qubes OS with XFCE.

With d2wc, a user can configure things like:

  1. which workspace windows should open on
  2. create geometry profiles to apply to windows
  3. link a windows to a geometry profile
  4. pin a window to a workspace
  5. excluded windows that should not be managed
  6. optional automatic prompting when a new unconfigured window appears

The screenshot below shows the Workspace placement workflow, where a window can be linked to a saved geometry profile.

See the README for more details, and also the user documentation.

It is not necessary to run the GUI, or the installer, if you only want to use my Lua script. You will get exactly the same functionality if you place a copy of d2wc.lua in your ~/.config/devilspie2 folder in dom0, and edit it by hand. The Configurator simply reads and writes to d2wc.lua.

PLEASE NOTE: The current design does not yet take multi-monitor setups (or multi-monitor setups with different resolutions) into account automatically. That is still work in progress. You can still, however, use it on a multi-monitor setup.

The default template bundled with d2wc was created on a 2160 display, and the Default-hdpi theme in appMenu -> gear icon -> System Settings -> Window Manager. This is important because it changes window border size, which affects window placement.

2 Likes

Thanks, I feel good workspace management is pretty important for making Qubes feel comfortable beyond the beginner level. More so than for traditional OSes. A few other things I do with workspaces:

  • Many workspaces; not just like 4 or 6, but 16 or 25+, arranged in a grid (easy to do in XFCE, just tweak the “Number of rows” setting you can get to from right click on the workspace switcher widget → Properties)
  • Workspace navigation with vi-like jkl; keys or 3D shooter-like wasd (plus a modifier, probably Super is best).
  • VM launching script that ties the chosen VM’s windows to the current workspace, but just as a temporary association, lasting until shutdown or next launch.
  • Workspace groups, with WM keys for creating groups on the fly and cycling between workspaces in a group. Also other ways of switching among workspaces that make sense for my patterns of use.

I’ve got a lot of ugly scripting and glue to make my window/workspace management more fluid. (And a lot of experiments that seemed like a good idea for usability but didn’t turn out to be helpful in practice.) I imagine this is not too unusual for long-term Qubes users.

d2wc isn’t a desktop manager, it is a workspace organizer, so there are no plans to for it to change the amount of workspaces you have available. It does however read the number of workspaces you have configured from XFCE, so if you change this d2wc will know about it.

You don’t need a VM launching script to configure that VMs window(s) to go to a specific workspace, d2wc does that in the Workspace placement workflow. There you can select either a domain (all windows from that domain), window, or domain+window (to target something specific), to go to a workspace. Once you have added a rule for that it will always happen.

Did you try it?

1 Like

OMG YES, will try.

:+1: Sorry, I wasn’t meaning to suggest features, rather to cheer on your efforts and I guess chatter on about the sort-of untapped usefulness of workspaces with respect to Qubes.

Please let me know your thoughts on your experience.

There are many more improvement to come in the near future.

As all Qubes users know, XFCE is not the best at workspace management, which is the gap that d2wc is attempting to solve.

Also worth mentioning, although it should be evident from the default template installed with d2wc, is that you can use it to control dom0 windows as well. For exampe, the Qubes Application Menu, which i find is just to small.

yes, don’t worry, that is what i understood from your reply.

I would really appreciate feature suggestions. I have already taken your idea of a grid layout on-board, and i am busy working on it. I actually like this idea a lot.

1 Like