An extremely minimal window manager.
If you decide to copy this build exactly, you will need the following installed:
firefoxxlock (included in base)xterm (included in base)The following is focused on OpenBSD. Linux is also support (see below)
You will need to enable apmd in order for sleep/hibernate to function properly:
doas rcctl enable apmd
doas rcctl start apmd
doas privilegessh build.shexec minwm inside your main ~/.xinitrc filestartxThere isn’t anything to show. Open programs take up the entire screen. There are no status bars, widgets, clocks etc.
If you’d like, you can imagine a black screen. :)
Alt + t: Open terminal of choice (default is xterm)Alt + w: Open browser of choice (default is firefox)Alt + q: Close current window in focusAlt + s: Lock screen and sleep (uses xlock and zzz)Alt + Tab: Cycle through open windowsminwm.c directly and then re-compiledate or uptime in your terminalapm -v in your terminaltop in your terminalLinux 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:
# OpenRC, runit, s6, dinit with elogind
SUSPEND="loginctl suspend" ./build.sh
or
# on a Linux box that prefers doas
SUDO=doas SUSPEND=zzz ./build.sh
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)
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.