Skip to content
seanpringle edited this page Jun 18, 2012 · 26 revisions

goomwwm: Get out of my way, Window Manager!

Goomwwm is an X11 window manager implemented in C as a cleanroom software project.

Aims:

  • Fast, lightweight, stateless, minimally decorated, Xinerama-aware.
  • Normal window stacking mode with normal mouse support.
  • Keyboard-driven on-demand window tiling.
  • Smart window placement, enough that window move/resize is simply intuitive.
  • EWMH support where ever possible.
  • Avoid going down the virtual desktop route.
  • Try to fix the Alt-Tab problem.
  • Use the Windows key (Mod4, Super) for all key combos. As OSX uses Cmd.

Window Move/Resize with Keyboard

  • Divide the screen into a virtual 3x3 grid.
  • MODKEY + Left/Right/Up/Down moves active window in the 3x3 grid.
  • Window sizes are:
    • 1/9th of screen, 1/3 width, 1/3 height
    • 1/4th of screen, 1/2 width, 1/2 height
    • 4/9th of screen, 2/3 width, 2/4 height
    • Full screen
  • MODKEY + PageUp/PageDown increase and decrease window size through above increments.
  • MODKEY + Home/End increase only height increments. MODKEY + Insert/Delete do width.
  • EWMH _NET_WM_STATE_MAXIMIZED_HORZ and _VERT supported.
  • Size increments and controls allow many combinations and layouts for "tiling".

Thoughts: Virtual Desktops

Virtual desktops exists to help the user manage multiple, separate tasks. Are they still a good idea, or can we do something better?

  • Modern apps are good at MDI, tabs, and tiling, even terminals (eg, Yakuake).
  • Splitting tasks over multiple desktops means the user has more to remember.
  • Possibly virtual desktops are a merely a symptom of poor window switching options?
  • Tags instead of desktops should be reviewed. Eg, dwm and friends.

Thoughts: Window Switching

Window switching should be fast, easy, and automatic. Anything that interrupts the user's thought processes is bad. Muscle-memory solutions seem good?

  • Traditional Alt-Tab switching in most-recently-used order is only useful for the top two windows.
  • OSX Expose is not the final answer, as it is not a muscle-memory solution.
  • Gnome-shell/Unity solutions fit somewhere between the above.

Discussion:

Ideas:

Commonly Used Windows

MODKEY + could search for a user-supplied application name as a case insensitive search of WM_CLASS, binary name, window title. If found, raise and focus. If not found, start the app.

General Window Switcher

MODKEY + Tab could show a list of windows in most-recently-used order. Similar to traditional Alt-Tab, but:

  • Showing: Icon, WM_CLASS, and full title.
  • Searchable by WM_CLASS or title.
  • Vertical list is easier to read quickly.

License

MIT/X11

Clone this wiki locally