- C 75.1%
- Shell 24.9%
| .gitignore | Initial working window manager | |
| build.sh | Initial Linux support, includes ability to override init target | |
| LICENSE | Include README and License | |
| minwm.c | Initial Linux support, includes ability to override init target | |
| README.md | Update README | |
minwm
An extremely minimal window manager.
- 30ish LOC
- No tiling or stacked modes
- No status bars, titles, borders, etc.
- Zero config files
- Absolute bare-bones window management
Based of off mwm.
Dependencies
If you decide to copy this build exactly, you will need the following installed:
firefoxxlock(included in base)xterm(included in base)
You will also need to enable apmd in order for sleep/hibernate to function properly:
doas rcctl enable apmd
doas rcctl start apmd
Installation
- Running OpenBSD, current user has
doasprivileges - Clone this repo and navigate inside of it
- Run
sh build.sh - Place
exec minwminside your main~/.xinitrcfile - Reboot, then run
startx
Usage
Alt+t: Open terminal of choice (default isxterm)Alt+w: Open browser of choice (default isfirefox)Alt+q: Close current window in focusAlt+s: Lock screen and sleep (usesxlockandzzz)Alt+Tab: Cycle through open windows
Help
How do I change or add program shortcuts?
Edit the minwm.c directly and then re-compile
How do I check what time it is?
Run date or uptime in your terminal
How do I check the battery status?
Run apm -v in your terminal
How do I check CPU or RAM usage?
Run top in your terminal
Linux Support
Linux is supported and should work automatically when running sh build.sh. If you hit issues, you might need to target specific parameters based on your distro and/or init system, ie:
SUSPEND="loginctl suspend" ./build.sh # OpenRC, runit, s6, dinit with elogind
or
SUDO=doas SUSPEND=zzz ./build.sh # on a Linux box that prefers doas
Extras
Adding too much to this existing window manager goes against the philosophy behind minwm. That being said, some extra functionality might be desired. (This section is a WIP)
Screenshots
Install the slop and scrot packages. Then make the following adjustments to minwm.c:
map("p", system("sh -c 'scrot -a $(slop -f \"%x,%y,%w,%h\")'"))
Also be sure to include the "p" (or any other desired key binding) alongside the other keys that are within grab.