You are not logged in.

#1 2012-06-26 03:39:11

aerosuidae
Member
Registered: 2009-03-10
Posts: 248

goomwwm: Get out of my way, window manager!

A couple years ago I built Musca, which some people liked and others hacked on. I've been quiet since then, and fairly busy elsewhere, but I've never left my beloved Arch Linux smile  Here is my current thinking on window management.  This project may become the code base for Musca 2 but right now I'm still experimenting.  Any ideas, testers, and bug reports welcome...

goomwwm: Get out of my way, window manager!

https://aur.archlinux.org/packages.php?ID=61093

https://aur.archlinux.org/packages.php?ID=60305 (git version)

goomwwm is an X11 window manager implemented in C as a cleanroom software project. It manages windows in a minimal floating layout with normal mouse controls, while also providing flexible keyboard-driven controls for window switching, sizing, moving, tagging, and tiling. It is also fast, lightweight, modeless, Xinerama/XRandR-aware, and EWMH compatible wherever possible.

Keyboard window movement occurs on a 3x3 fullscreen grid. For example, a top-left aligned window moved to the right would reappear top-center, and if moved again, top-right.

Keyboard window sizing moves windows through four basic sizes that tile well: 1/9th of screen (1/3 width, 1/3 height), 1/4th, 4/9th, and fullscreen. Combined with EWMH horizontal and vertical maxmimization, plus some snap-to-edge and expand-to-fill-space controls, manual tiling is easy.

Windows are grouped by tags. Activating a tag raises all windows in the tag. A window may have multiple tags. EWMH panels, pagers, and taskbars see tags as desktops.

Window switching can be done by a built-in Alt-Tab switcher (think window titles in dmenu, but prettier, centred, and tightly integrated); or with a few fast, customizable key combinations that better suit muscle-memory; or with your favourite external tool.

For more detail, see this tutorial and the included man page.

goomwwm screen shot

Last edited by aerosuidae (2012-07-22 02:37:20)

Offline

#2 2012-06-26 08:00:11

Army
Member
Registered: 2007-12-07
Posts: 1,784

Re: goomwwm: Get out of my way, window manager!

Sounds VERY cool, I will try it out immediately. Good to see you back dude smile

Offline

#3 2012-06-26 08:52:09

ElderSnake
Member
From: Australia
Registered: 2010-12-09
Posts: 93

Re: goomwwm: Get out of my way, window manager!

So it's basically a minimalistic floating window manager that can also just as easily tile? Or did I interpret that wrong.

Either way, whilst I'm not in the market to try a new WM right now, it sounds pretty cool. Will watch this space.

Last edited by ElderSnake (2012-06-26 08:52:56)


Arch Linux - Intel E5200 Desktop (Cinnamon 2.0) - Debian Testing - Netbook EeePC AMD C-50 (Xfce)

Offline

#4 2012-06-26 09:53:33

Runiq
Member
From: Germany
Registered: 2008-10-29
Posts: 1,053

Re: goomwwm: Get out of my way, window manager!

I had to do a double take when I saw the username. Good to have you back, aerosuidae!

Offline

#5 2012-06-26 15:35:48

Inxsible
Forum Fellow
From: Chicago
Registered: 2008-06-09
Posts: 9,079

Re: goomwwm: Get out of my way, window manager!

Hey... I was also one of the early adopters of Musca. Loved it until dual head made me move to i3.

I see we still have the same bunch of guys hanging around -- Army, Runiq. Glad to see you back aerosuidae.


Forum Rules

There's no such thing as a stupid question, but there sure are a lot of inquisitive idiots !

Offline

#6 2012-06-26 16:36:14

bgc1954
Member
From: Edmonton, AB, Canada
Registered: 2006-03-14
Posts: 1,122

Re: goomwwm: Get out of my way, window manager!

I too was an early user of Musca and stuck with it for some time, but have been swayed by i3 of late.  Couldn't wait to test this puppy out and so far it's very interesting.  I've been using i3 for quite a while now --longer than all the others I've tried and abandoned-- so am used to it --maybe too much-- but I'll keep goomwwm running for now to see if it's for me or not.  As others have said, welcome back aerosuidae smile


Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz

Offline

#7 2012-06-26 16:38:17

Inxsible
Forum Fellow
From: Chicago
Registered: 2008-06-09
Posts: 9,079

Re: goomwwm: Get out of my way, window manager!

its funny how many of us musca users moved to i3 and still stick with i3 smile


Forum Rules

There's no such thing as a stupid question, but there sure are a lot of inquisitive idiots !

Offline

#8 2012-06-26 19:38:55

Army
Member
Registered: 2007-12-07
Posts: 1,784

Re: goomwwm: Get out of my way, window manager!

I actually switched to dwm and I love it a lot (but only with my patches tongue )! But I still think manual tiling makes a lot of sense. But musca was my first contact with tiling window management which I will never forget. I still think its way of managing windows is awesome! But right now the automatic tiling of dwm is better for me.

After musca I switched to i3 like most of you guys. But I didn't like the new version with its changed usability, I still don't really like it...

For me, there are 3 wm's which I have a use for (I tried every wm I could find, so this list is based on experience): dwm, i3 and openbox (best floater imo). Maybe now I get a 4th member in this group smile

Last edited by Army (2012-06-26 19:40:23)

Offline

#9 2012-06-26 20:11:30

chneukirchen
Member
Registered: 2010-02-11
Posts: 100

Re: goomwwm: Get out of my way, window manager!

Very interesting!

Offline

#10 2012-06-27 01:49:39

aerosuidae
Member
Registered: 2009-03-10
Posts: 248

Re: goomwwm: Get out of my way, window manager!

ElderSnake wrote:

So it's basically a minimalistic floating window manager that can also just as easily tile? Or did I interpret that wrong.

That's the gist. I'm not a fan of automatic tilers, nor of stacking/tiling "modes" (which I tried in Musca), nor of external scripted tiling solutions grafted onto floating WMs.

I'm trying to end up with a floating wm that makes me think I'm using a tiling wm, but only when I want it to.  If I can get to the point of being able to tile floating windows without using the mouse, and more importantly, without having had to think much about it along the way, I'll be happy smile  Think of goomwwm like having the convenience of an automatic tiler wm, but with the flexibility of a floating wm, and without windows ever jumping around.

goomwwm is not there yet, but the many odd key combinations in the goomwwm man page are a start.

Inxsible wrote:

Hey... I was also one of the early adopters of Musca. Loved it until dual head made me move to i3. smile

i3 has some nice ideas, and indeed dual-head was lacking in Musca.  Hence the early Xinerama code in goomwwm.

I'm keen to see how many tiling wm ideas I can sneak into a floating wm just by cunning design, and without most non-tiling people realising they're being corrupted by the tiling wm ideal until it is too late wink

Offline

#11 2012-06-27 03:40:46

aspidites
Member
Registered: 2011-03-11
Posts: 30

Re: goomwwm: Get out of my way, window manager!

Yeah, I LOVED Musca. Got so desperate I was using patched versions until I finally "snapped". I tried i3, and it was ok, but in the end, it was too quirky for my test. I'm currently using herbstluftwm right now and loving it.

The tiling mechanism as described doesn't sound as appealing to me, but given the creator, I HAVE to try it tongue

[edit]
Alright, so I didn't get the same warm-fuzzies that I got from Musca, but the concept is definitely very nice, especially the expanding to full width/height features. I'll stick with my herbs for now, but good luck with the project, and welcome back!

Last edited by aspidites (2012-06-27 03:51:56)


coder formally known as EnvoyRising

Offline

#12 2012-06-27 05:46:25

aerosuidae
Member
Registered: 2009-03-10
Posts: 248

Re: goomwwm: Get out of my way, window manager!

aspidites wrote:

Alright, so I didn't get the same warm-fuzzies that I got from Musca, but the concept is definitely very nice...

Warm-fuzzies!  Couldn't describe it better myself  smile

I'm trying to get some of the same feel here too. For example:

  • Mod-c - In Musca, it cycles window in the current frame. In Goomwwm, it cycles windows with the same size & position.

  • Mod-h and Mod+v - In Musca, they split the current frame in two and fill the new frame with a hidden window. In Goomwwm, they tile the top two windows with same size & position in a tag.

  • Mod-[Left,Right,Up,Down] - In Musca, these navigate window focus spatially. In Goomwwm they move windows around the grid, but I've added Mod-[i,j,k,l] to switch focus.

Thinking out loud:

One feature I'm mulling over is a general-purpose undo/rollback list. Eg, make Mod-u rewind all windows size, position, focus, and stacking on the current tag through some configurable number of steps. Musca did this 1 layer deep for each frameset to allow undoing splits. Presently Goomwwm does a limited version 1 level deep to allow toggling fullscreen, maxv, maxh, and the auto-expand feature, but more levels could be useful.

An alternative is a snapshot feature. Press a key to snapshot every size, position, focus, WM_CLASS, and stacking aspect of the current tag, and then have some easy way to switch between saved layouts. Could be as useful as the different automatic tiling layouts used by dwm, but entirely custom and still done with the flexibility of a floating wm.

I'm not saying any of this stuff is new; every feature is in some other wm, somewhere smile

Offline

#13 2012-06-27 09:12:50

ivoarch
Member
From: the six feet under the ground
Registered: 2011-03-31
Posts: 436

Re: goomwwm: Get out of my way, window manager!

Hey @aerosuidae, congrats for the name that you chooses!! wink
I loved Musca, my first manual tiling wm, for this, no doubt about the quality and the good ideas, in this new project, wm!!!
Welcome back!!!


I love GnuEmacs, GnuScreen, ratpoison, and conkeror.
Github )||( Weblog

Offline

#14 2012-06-27 20:03:35

thorsten
Member
From: Germany
Registered: 2010-02-24
Posts: 151

Re: goomwwm: Get out of my way, window manager!

aerosuidae wrote:

Keyboard window movement occurs on a 3x3 fullscreen grid. For example, a top-left aligned window moved to the right would reappear top-center, and if moved again, top-right.

Keyboard window sizing moves windows through four basic sizes that tile well: 1/9th of screen (1/3 width, 1/3 height), 1/4th, 4/9th, and fullscreen. Combined with EWMH horizontal and vertical maxmimization, plus some snap-to-edge and expand-to-fill-space controls, manual tiling is easy.

Windows are grouped by tags. Activating a tag raises all windows in the tag. A window may have multiple tags. EWMH panels, pagers, and taskbars see tags as desktops.

This somehow sounds exactly like subtle.

Offline

#15 2012-06-28 01:21:51

aerosuidae
Member
Registered: 2009-03-10
Posts: 248

Re: goomwwm: Get out of my way, window manager!

thorsten wrote:

This somehow sounds exactly like subtle.

Goomwwm is more like cwm, imho.

subtle is great. I trialed it for a while. A few differences between subtle and goomwwm, where the features are similar:

  • subtle links the default 3x3 grid with gravities affecting a window's position and size. goomwwwm uses the grid only for position, with separate controls for size.

  • subtle's tags are strong. goomwwm's tags are weak, more like dwm's tags, only used for finding and raising groups of windows.

  • goomwwm has no concept of views; I just let panels and docks think tag=desktop

  • goomwwm has nothing like subtle's window modes, it is a floating window manager at heart.

I should note: I didn't get into customizing subtle much.

Offline

#16 2012-06-28 10:25:03

unexist
Member
From: Germany
Registered: 2008-05-13
Posts: 300
Website

Re: goomwwm: Get out of my way, window manager!

Well, I must admit the overall idea really sounds like subtle and I don't understand some of the named differences, but I agree that the grid approach nice. wink

So basically all windows are stacked above each other, how do you plan multiscreen support without a virtual desktop concept? Just span the single desktop across all screens?

IME: A static 3x3 grid isn't enough for some users, a dynamic grid would be more useful.

Offline

#17 2012-06-28 11:34:11

aerosuidae
Member
Registered: 2009-03-10
Posts: 248

Re: goomwwm: Get out of my way, window manager!

unexist wrote:

Well, I must admit the overall idea really sounds like subtle and I don't understand some of the named differences, but I agree that the grid approach nice. wink

wink

Perhaps mentioning the idea of the 3x3 grid up front was too distracting, given folks' experience with subtle. The goomwwm grid is really just a guide for fast floating window movement. Tiling functionality is not strongly linked to it, nor limited by it. Don't think of this as a tiling WM with strict grids, but a stacking WM that makes it easy to tile.

Some screenshots of tiling layouts done on the fly using a few keyboard commands:

tiling tiling tiling tiling

I'm still working on the controls, but the above was done pretty quickly. I'd guess easily as fast as most manual tiling WMs, once one knows the controls...

unexist wrote:

So basically all windows are stacked above each other, how do you plan multiscreen support without a virtual desktop concept? Just span the single desktop across all screens?

From the EWMH perspective of a desktop, goomwwm tags are the same thing.  Use the desktop pager from any dock or panel to switch tags, just like desktops.  The only oddities are that, like any good tiling WM, goomwwm's windows can have multiple tags and raising a tag does not hide other tags.

Multiscreen support for Xinerama and Xrandr is done and tested on what hardware I have access to (an Nvidia Twinview box, a regular Xinerama box, and a Laptop using xrandr to run an external monitor). Each physical screen has it's own grid -- that is, a fullscreen app would only fill one physical screen and splash windows center on the active monitor -- but nothing more strict than that. I suppose tags-as-desktop could be limited to each screen, but that is up to the user doing the tagging.

Offline

#18 2012-06-28 15:01:26

bgc1954
Member
From: Edmonton, AB, Canada
Registered: 2006-03-14
Posts: 1,122

Re: goomwwm: Get out of my way, window manager!

I'm really liking goomwwm so far.  I don't do anything overly complicated so I don't have alot of need for a complex wm.  Just wondering--man page didn't really help much-- I'd like to have my dzen with conky bar on the bottom of the screen and it does work if I assign a number key to it but wondering if there is a way to launch it at startup rather than hitting modkey and 1 every time.  Also is there a way to logout of goomwwm or do I just stick to my Ctrl+Alt+Backspace?


Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz

Offline

#19 2012-06-28 15:25:17

Procyon
Member
Registered: 2008-05-07
Posts: 1,819

Re: goomwwm: Get out of my way, window manager!

imo:
mod+c should also cycle superset and subset windows.

mod+ijkl should wrap.
QWE
ASD
ZXC
mod+l should switch to A.

That way you only need two keys (for grid layout at least).

Two keys should be added for cycling tags. That way you only need those two keys.

What tag are new windows in? The current one?
How do you have a window always be in a certain tag?

I only used it for a bit in Xephyr, but there seems to be a fullscreen restriction, where windows won't appear above fullscreen windows. This should definitely be changed. Right now you can switch to a window under fullscreen and type in it blindly.

Offline

#20 2012-06-28 15:29:45

aerosuidae
Member
Registered: 2009-03-10
Posts: 248

Re: goomwwm: Get out of my way, window manager!

@bgc1954:  How are you starting goomwwm?  If from .xinitrc, can you simply start dzen/conky first?

Ctrl+Alt+Backspace is about as elegant as it gets so far smile  I'll add a quit key combo to do it a little more gracefully.

Offline

#21 2012-06-28 15:38:34

aerosuidae
Member
Registered: 2009-03-10
Posts: 248

Re: goomwwm: Get out of my way, window manager!

Procyon wrote:

imo: mod+c should also cycle superset and subset windows.

Sorry, not quite sure what you're referring to. Examples?

Procyon wrote:

mod+ijkl should wrap.

A fair request. I'll experiment.

Procyon wrote:

Two keys should be added for cycling tags. That way you only need those two keys.

Forward and reverse I assume. Ok.

Procyon wrote:

What tag are new windows in? The current one?

Correct. You can see window tags with the Alt-Tab switcher (tag numbers on left), and see the current tag via a desktop pager.

Procyon wrote:

How do you have a window always be in a certain tag?

Can't yet, but this feature is on my todo list.

Procyon wrote:

I only used it for a bit in Xephyr, but there seems to be a fullscreen restriction, where windows won't appear above fullscreen windows.

Interesting. I can't immediately replicate this bug, but I havn't tried Xephyr.  Are you using Mod-PageUp fullscreen or Mod-f fullscreen?  (Mod+f is proper _NET_WM_STATE_FULLSCREEN, which will behave a little differently, as per spec).

Offline

#22 2012-06-28 15:57:29

Procyon
Member
Registered: 2008-05-07
Posts: 1,819

Re: goomwwm: Get out of my way, window manager!

With subset window I mean a window that is within the borders of another window, but smaller.

With "have a window always in a tag" I mean also starting an application and it's immediately in a certain tag.

I forgot what I did exactly with the fullscreen window. But you should definitely be able to switch to and view non-fullscreen windows with a fullscreen window below them.
I think I patched that once in musca, to completely ignore the fullscreen "NET_WM_STATE".
Consider applications like Wine and VirtualBox which are always fullscreen.

Offline

#23 2012-06-28 16:05:02

aerosuidae
Member
Registered: 2009-03-10
Posts: 248

Re: goomwwm: Get out of my way, window manager!

@Procyon: tag cycling added with defaults of Mod-n backward and Mod-m forward.

Still thinking about the other features.

I'll also have to think carefully about the fullscreen issue. I want to support _NET_WM_STATE_FULLSCREEN properly, which I think goomwwm technically does at present, but perhaps there could be a config option to ignore it.

Offline

#24 2012-06-29 07:58:32

aerosuidae
Member
Registered: 2009-03-10
Posts: 248

Re: goomwwm: Get out of my way, window manager!

Have begun a tutorial which might help illustrate the grid and method of tiling. More to come.

Offline

#25 2012-06-29 09:13:57

jakobcreutzfeldt
Member
Registered: 2011-05-12
Posts: 1,033

Re: goomwwm: Get out of my way, window manager!

aerosuidae wrote:

Have begun a tutorial which might help illustrate the grid and method of tiling. More to come.

Holy crap this is looking cool. I have to try it out.

How stable/complete is it?

Offline

Board footer

Powered by FluxBB