untitledwm, a small window manager
Simply put, untitledwm is a window manager for the X window system. It currently only uses Xlib and the Cairo vector graphics library. There aren't any widget sets or anything like that being used in this project. The following list is a basic set of features that this project currently supports.
- frames for toplevel windows that are children of the root window
- the ability to move, resize, hide and restore windows
- no hideous icons, pictures, menus or buttons to clutter valuable screen space
- no virtual desktop, toolbars or integrated applications for "configuration"
In other words, pretty much the bare minimum. If you want a fancy custom configuration, open a text editor and edit the C code yourself. If this seems too involved, I'd recommend staying with staying with the default configuration of your Unix-like operating system.
Sounds pretty minimal doesn't it? Well, it's with good reason. I wanted a sensible user interface to work with for getting things done. Not to sit and stare and some pretty eye candy. Nothing more, nothing less. Of course, there are countless other minimal window managers out there, why sacrifice the time and effort to write yet another one? Because it's more fun than modifying some random configuration files for some other program. That, and I wanted to have a nice long term C programming project that I could come back to continuously for a nice change of pace from using dynamically typed languages continuously. However, the best reasoning would probally be because I can.
To build and install untitledwm, simply use 'make' and 'make install'. Thats it. Of course, I assume that you're using a Unix machine with X libaraies and a C compiler such as gcc. You will need a mouse with at least one button. Untitledwm does not currently have support for multiscreen displays since I do not have the means to test this potential feature. It shoud be included later, though (that is if I ever do get a multi-screen display).
- Why would anyone write a window manager for themselves from scratch?
That's a good question-- when I started this project in December 2008 I was in college taking non-programming oriented classes, and wanted to start something that I could work on where I could at least make some significant contributions every couple days. Basically, a nice distraction from school and the formal computer science I was studying at the time.
- Is this considered a stable project? Does it leak memory or hang frequently?
Not at the current moment, no. It doesn't leak memory-- I've checked the code continueously with valgrind to ensure it can be used continueously without any problems.
- Where does one learn how to write of all things-- a window manager?
I bought the Xlib Programming Manual, Rel. 5 from Amazon. Getting a used copy of this book is pretty easy, for not a lot of money. Basically I reasoned, "Hey what the hell, it'll be fun getting some behind the scenes X11 programming experience". Well, one things for sure-- this type of programming definately isn't for the weak of heart. It's true Unix programming. If you'd like to see what I mean, or are curious at all about the content of this book it's freely avilable online.
- I was using untitledwm, and it crashed. Should I e-mail you about it?
Absolutely! Please do so. If possible, please provide a reasonably detailed description of what happned so the error can be reproduced.
- Is this project actively maintained? Or has the code been untouched for years?
It was basically untouched in 2009, I was preoccupied with other things at the time. However as of early 2010, I've started to get things back on track with the development of this project. Basically, as a nice side project.
- What's with the project name?
All the other really neat creative names were already taken from the countless other window managers. I had absolutely no idea what to name this thing, and tried to put it off as long as possible. When the time came to start maintaining the code in a repisitory, I decided not to waste my time thinking of useless names that didn't really mean anything in the first place. In the off chance that this project becomes popular or gains any sort of user base, I thought untitledwm would be a nice tounge and cheek name to sort of make fun of all the software projects with stupidly over thought out names. I'm sure you can think of some to fill in that blank to illustrate what I mean.