Search code examples
linuxwindow-managers

What window manager should I use as example?


I want to implement a simple specialized window manager for presentations (not user-controllable) that supports only the following operations:

  1. Moving and resizing of windows
  2. Switching desktops
  3. Starting applications not on current desktop (in background) without disrupting current image.

I don't need any user input, button/titles, ...

What existing window manager should I use as example? There are many little "hello world" window managers, but they usually does not support desktop switching.


Solution

  • You don't need to reimplement the wheel.

    • openbox will do everything you mention and more besides.

      Simply edit the rc.xml to disable the root menu, and re-launch.

      Openbox also allows per app setting so that certain applications can open on a particular desktop by default, or with a particular size, or open hidden.

      It also supports wildcards in the window selection, so that settings can apply to all windows.

    • devilspie2 is a window matching utility that can perform actions whenever a window opens.

      It is highly hackable and the code is available on github. It will match windows by name/class/etc when they open, and perform actions on them. (including matching all windows and moving them to a different desktop. It will work with most window managers.

      Based on the original devilspie which does not have Lua scripting, but is configured using s-exprs instead.

    • xdotool will also allow you to perform complex actions on windows without hacking any code. It will even fake user input (mouse/kbd) if you need it.