Major refactor.

This commit is contained in:
Luis Lavaire 2024-12-27 01:36:56 -06:00
parent bf0d3de94b
commit bb8a508ef4
4 changed files with 67 additions and 46 deletions

View file

@ -1,37 +1,42 @@
# mwm
For the true minimalist:
The window manager for the true minimalist:
- ~40 LOC.
- No default keybindings (just edit the source).
- No title bars, no status bars, no buttons, no borders, no menus, etc.
- No eye-candy.
- 20 LOC.
- No modes.
- No "eye-candy".
- No mouse control.
- No virtual desktops.
- No configuration files.
- Not standards-compliant.
- No title bars, no status bars, no buttons, no borders, no menus, etc.
- All windows are full-screen, just one is visible at any given time.
- Absolutely adaptable to your needs.
- Includes just what is strictly needed.
- Not standards-compliant.
- All windows are full-screen, just one is visible at any given time.
- No modes.
This is the smallest, actually usable window manager I know about. Even
TinyWM is twice as large. However, it doesn't let you launch programs, or
switch between windows. `mwm` does.
## Why?
Most software today is crappy. Do you really need all that? I found out
through experience that, generally, you don't. Do you really need to have
a dozen windows opened simultaneously? When you do, you will need a way to
organize that mess. Virtual desktops, window tags, etc. are ways to cope
with the symptoms of a underlying issue.
Most software today is crappy. Do you really need all the bells and whistles?
Generally, you don't. You need to get the job done.
We are in dire need of software that is hackable, fun, small, malleable,
and that you can wrap your head around, because: is it truly free software
if, due to its complexity, you cannot modify it? ;)
We are in dire need of software that is hackable, fun, small, malleable, and
that you can wrap your head around, because: is it truly free software if, due
to its complexity, you cannot modify it? ;)
## How?
Two macros are available for assigning keybindings: `grab` and `K`.
Read the source for an example on how to use them (my own setup).
Two macros are available for assigning keybindings: `grab` and `map`. Read
`mwm-custom.c` for an example on how to use them (my own setup).
Run `./build.sh`. Pass `CC=` to use a different C compiler (I use tcc).
You first need to `grab` the keys you want to be able to bind. Then you `map`
them to actions.
## Building.
Run `./build.sh`. Pass `CC=...` to use a different C compiler (I use `tcc`).
Dead simple.