minwm

/computer.svg

An extremely minimal window manager.

Source code available here

Table of Contents

Dependencies

If you decide to copy this build exactly, you will need the following installed:

Installation

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
  1. Current user has doas privileges
  2. Clone this repo and navigate inside of it
  3. Run sh build.sh
  4. Place exec minwm inside your main ~/.xinitrc file
  5. Reboot, then run startx

No Screenshots?

There 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. :)

Usage

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:

# 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

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.