Skip to content
schade edited this page Jan 23, 2013 · 5 revisions

Introduction

Having searched for many years for a usable Linux window manager that both appealed to my sense of aesthetics and had at least some of the features I feel necessary for a 'proper' WM; in all that time I only came across one which, at least partially, fit the bill.

mavosxwm was the creation of Martin Vollrathson and hadn't been updated since sometime in 2003. His website for mavosxwm has long since stopped working; but here is an image of the about page that I have managed to find.

After obtaining permission from him in 2007, I forked Mavosxwm v0.2.1 to use as the base from which I will write kowm. I will be recycling and rearranging some of its parts and pieces; these bits are, even now, making their way into various locations in kowm-core.

For the record, kowm itself stands for Kobol's Own Window Manager; in like manner all related icons, artwork, and documentation should reflect this.

The modules themselves are to be named for the twelve colonies of man and various non-aligned colonies from the original Battlestar Galactica, circa 1978-1979.

kowm

kowm ( /kōm/ ) never wanted to be anything more when she grew up than the only X window manager that even I would take home to Mom. kowm has decided that 'extensible simplicity' is the wave of the future; and we tend to agree.

kowm-core

kowm-core is made up of six modular desktop libraries; five handle the basic features that make for a beautifully simple window manager and the sixth is a framework for building, attaching, and manipulating new modular extensions. Since speed is of the essence here, we're planning on writing kowm-core in C++.

  • caprica provides low-level constructs shared by all 'windows'; including the root window.
  • gemoni provide basic workspace management and functionality.
  • leonis provides the graphics subsystem from which all graphics toolkit modules can hook into and manipulate objects.
  • sagitara provides a basic module structure, attachment points and shared asset management funtions.
  • piscera provides automatic menu generation of the system menu, the desktop menu and the application menus.
  • virgon provides all remaining mid- and high-level 'window' management

kowm-opts

komw-opts /kōm-äpts/ currently has six additional modular libraries planned. These libraries - along with any others we think are needed - will provide additional services that, while not absolutely necessary, would probably be appreciated by the end user. These libraries will most likely be written in Ruby; however additional bindings for Python and Lua are currently on the RoadMap.

  • aeries provides ...
  • aquarus provides ...
  • libris provides ...
  • orion provides ...
  • scorpion provides ...
  • taura provides ...

kowm-apps

Finally, we're planning other apps the we deem useful to the overall desktop experience. These will reside within the kowm-apps project. kowm-apps can use any language for which exists a language binding or a new one if you or a friend have the knowledge to write one; don't fret too much, it's not a difficult task. That being said, we definitely are expecting the first few to be all Ruby.

  • acheron provides ...
  • erebos provides ...
  • hestia provides ...
  • icarus provides ...
  • kronos provides ...
  • ouranos provides ...
  • pallas provides ...
  • persephone provides ...
  • phoebe provides ...
  • styx provides ...
  • thanatos provides ...
  • troy provides ...

So, to recap...

  • Want to make a new application or extension for kowm?
    • Simply, write your new module in any of the available language bindings already written.
  • No binding for the language you prefer to code in?
    • Well then, write yourself a binding module for that language and continue on.

Oh yeah, one last thing I'd like to say... please... don't forget to submit a pull request once you're done, so others can enjoy the new language, application, or extension you just made possible.

============ Copyright (c) 2009-2013, Jerry W Jackson
All rights reserved.