Introducing cwm2

Firstly it is a pleasure to introduce myself to the community. I've been a long standing advocate of many things Open Source, and the after-life Unix community.

I currently run a multi-purpose FreeBSD backbone server as part of my financial trading business. It does everything from networking, routing, web-server, and electronic trading, R&D, among other things (such as file and database-server). The system runs multiple subsystems as virtual machines.

I want to introduce a piece of windowing software that I have been working on, on and off, for the last two years. It is a modicum of my tooling, that forms part of my Open Source initiative. There are very specific reasons as to why the project is the way it is. Hopefully it will be clear from the description. This is a project very much rooted in the traditions of Unix. But I am happy to elaborate further.

Give it a spin and let me know what you think...

 
So, I tried. I created a VirtualBox 7.2 VM running FreeBSD 15 on my FreeBSD 15 host. I installed Xorg. I downloaded your wm. I compiled it successfully but, when I executed it, the result was not what the example screenshot of your github shows. The blue birdie was somewhere and the toolbar also, both with the standard title bars of X11, which doesn't seem to be the intended result, and everything went quite crazy. It's difficult to describe. I guess I've had the bad luck of trying the hypervisor you didn't try (VirtualBox), but it's what I had at hand. Or maybe I did something wrong; I don't know. X11 was working okay.
 
So, I tried. I created a VirtualBox 7.2 VM running FreeBSD 15 on my FreeBSD 15 host. I installed Xorg. I downloaded your wm. I compiled it successfully but, when I executed it, the result was not what the example screenshot of your github shows. The blue birdie was somewhere and the toolbar also, both with the standard title bars of X11, which doesn't seem to be the intended result, and everything went quite crazy. It's difficult to describe. I guess I've had the bad luck of trying the hypervisor you didn't try (VirtualBox), but it's what I had at hand. Or maybe I did something wrong; I don't know. X11 was working okay.
Could you take a screenshot please?
 
Screenshot_20260208_165218.png
 
Your setup is slightly incorrect. You're actually running it within twm. This is still a small bug on my part.
cwm2.bin needs to be started independently (not from another wm). You are currently running twm.

You can set a wm by creating an .xinitrc (or .xsession) in your home directory and then startx from the tty.
.xinitrc is a shell script that X calls when it starts up. You set the command to your wm in .xinitrc.
Code:
#! /bin/sh

# Any pre-wm commands for X

cwm2.bin

#twm
#


Thanks for the feedback. The wm should check if it is the only wm running but clearly it's not the case.
 
It's just bad luck that I'm exactly the wrong user for your project. I have no experience with window managers. I come from MsDOS, then a professional lifetime in Windows, then desktop Linux on XFCE, Gnome, and Plasma, then desktop FreeBSD on Gnome and Plasma, so I made what is clearly a newbie's mistake (even a laughable one, I would say).

Maybe some users with more experience in Unix-like systems and windows managers can take this opportunity to try your project.

I expect to find time during the week to keep trying and I'm sure I'll do better this time. In the meantime, if you added an example (or more) on Github of how to create a custom configuration to accomplish a certain goal (and you explained what that goal is and how it is accomplished by the configuration), that would be useful for me.
 
Create an .xinitrc in your home directory. Add the executable with file path to your .xinitrc. Presumably you are starting X from a tty?

It does work. Clone the most current repo, as there are on-going improvements to the project. The project has turned out well, and is almost complete for its intended purpose.
 
Create an .xinitrc in your home directory. Add the executable with file path to your .xinitrc. Presumably you are starting X from a tty?

It does work. Clone the most current repo, as there are on-going improvements to the project. The project has turned out well, and is almost complete for its intended purpose.
I'm starting X from a tty, yes. I'm glad to know that the project has met its goals. Are you interested in further feedback or was your intention just to make the project known to the community? Either way it's fine for me.
 
This has been created for a general audience in mind. The use case is largely my own. I wanted a wm that would be simple to maintain (if at all) and simple to extend, ie. a fit-and-forget solution. Something that would effectively be coded in stone and run forever.

I'm not short of features when it comes to a window manager. In fact a wm under X is really just a bonus, a way to organise and manipulate windows.
On that note, I wanted something totally transparent and out of the way. And I don't want to be fixing bugs in the wm either.

The performance is great with many enhancements under the hood that would not have been apparent at the outset.

Have you run the program? Where are you stuck exactly?
The program runs mainly via the keyboard but you can still use a mouse for some actions. The keys are defined in the config.h file. After making changes to config.h, you need to rebuild the program. If you want to launch programs, the default launcher is dmenu via the Windows+Escape key. You will need a launcher installed, or run programs from a terminal.
 
Where are you stuck exactly?
I'm not stuck. I was asking in general. Anyway, it's okay. I don't think I can provide the kind of input you were asking in your first post when you said "Give it a spin and let me know what you think..." Again, I'm not the right kind of user. I can't compare it to other WMs. But I tried it because curious and I thought maybe letting you know what happened was useful, but it was me being a noob, so it wasn't useful.

I think I understand your goals. So no more feedback from me. :)
 
Giving it a try in my VM. I access my VM via RDP. I downloaded and compiled the program from my local user profile, but it didn't want to run from startwm.sh. I moved the cwm2.bin file to /usr/local/bin, and changed ownership to root:wheel, and now it is working.

It took me a little investigating through the config.h file to find some keybindings that allowed me to launch anything. This could use some more user-friendly documentation. I would be willing to help out on that front; writing knowledgebase articles is a part of my day job. I don't have a lot of spare time right now, so it could be a little slow going.

Overall, this is an interesting project, and looks like it could be really good. I am fully in favor of more available tools!
 
Hi! I really liked your cwm2. My main WM is dmw from the suckless.org project, so figuring out the settings was quite easy.
I really like the concept of window management; in my opinion, it's very convenient.
I truly hope that your project continues to develop and gains recognition and popularity as soon as possible.
I also want to express my gratitude for the work you have already done.
 
Giving it a try in my VM. I access my VM via RDP. I downloaded and compiled the program from my local user profile, but it didn't want to run from startwm.sh. I moved the cwm2.bin file to /usr/local/bin, and changed ownership to root:wheel, and now it is working.

It took me a little investigating through the config.h file to find some keybindings that allowed me to launch anything. This could use some more user-friendly documentation. I would be willing to help out on that front; writing knowledgebase articles is a part of my day job. I don't have a lot of spare time right now, so it could be a little slow going.

Overall, this is an interesting project, and looks like it could be really good. I am fully in favor of more available tools!
There is no obligation, but thanks for the feedback. Putting this to the community is certainly helpful in rounding off some of the edges. Thanks
 
There is no obligation, but thanks for the feedback. Putting this to the community is certainly helpful in rounding off some of the edges. Thanks
One of the positive things of Open Source, regardless of license. Put it out there, as people use it, you get feedback and hopefully pull requests. All of it advances the project.
 
I'm continuing to figure it out; is it possible to expand the collapsed window of calls_cli_raise_toggle again without using the mouse?
 
Back
Top