---
## Contributions & Issues
Please read [the contribution guide](docs/CONTRIBUTIONS.md)
Please read [the developer docs](docs/sxwm-dev.md)
---
## Features & Configuration
Check [the man page markdown for relevant info](docs/sxwm.md)
---
## Dependencies
- `libX11`
- `Xinerama`
- `XCursor`
- `CC`
- `Make`
Debian / Ubuntu / Linux Mint
sudo apt update
sudo apt install libx11-dev libxcursor-dev libxinerama-dev build-essential
Arch Linux / Manjaro
sudo pacman -Syy
sudo pacman -S libx11 libxinerama gcc make
Gentoo
sudo emerge --ask x11-libs/libX11 x11-libs/libXinerama sys-devel/gcc sys-devel/make
sudo emaint -a sync
Void Linux
sudo xbps-install -S
sudo xbps-install libX11-devel libXinerama-devel libXcursor-devel gcc make
Fedora / RHEL / AlmaLinux / Rocky
sudo dnf update
sudo dnf install libX11-devel libXcursor-devel libXinerama-devel gcc make
OpenSUSE (Leap / Tumbleweed)
sudo zypper refresh
sudo zypper install libX11-devel libXinerama-devel gcc make
Alpine Linux
doas apk update
doas apk add libx11-dev libxinerama-dev libxcursor-dev gcc make musl-dev linux-headers
NixOS
buildInputs = [
pkgs.xorg.libX11
pkgs.xorg.libXinerama
pkgs.libgcc
pkgs.gnumake
];
sudo nixos-rebuild switch
Slackware
slackpkg update
slackpkg install gcc make libX11 libXinerama
OpenBSD
doas pkg_add gmake
You will also need the X sets (xbase, xfonts, xserv and xshare) installed.
When you make the code, use gmake instead of make (which will be BSD make). Use the following command to build: gmake CFLAGS="-I/usr/X11R6/include -Wall -Wextra -O3 -Isrc" LDFLAGS="-L/usr/X11R6/lib -lX11 -lXinerama -lXcursor"
FreeBSD
# If you use doas or su instead of sudo, modify the following commands accordingly.
sudo pkg update
sudo pkg install gcc gmake libX11 libXinerama
Termux
pkg install x11-repo
pkg update
pkg install clang make xcb-util-keysyms xorgproto libxcursor libx11 libxinerama libandroid-wordexp
# add `LDFLAGS="${LDFLAGS} -landroid-wordexp"` in the make command
---
## Build & Install
> [!NOTE]
> I don't maintain any packages. Use with caution!
### Arch Linux (AUR)
```sh
yay -S sxwm
```
#### OR for latest features
```sh
yay -S sxwm-git
```
### Void Linux
```sh
sudo xbps-install -S sxwm
```
### Build from Source
```sh
git clone --depth=1 https://github.com/uint23/sxwm.git
cd sxwm/
make
sudo/doas make clean install
```
### Run
Add to your `~/.xinitrc`:
```sh
exec sxwm
```
Or use the `sxwm.desktop` file
---
## Makefile Targets
| Target | Description |
|-----------------------|----------------------------------------------------------|
| `make` / `make all` | Build the `sxwm` binary |
| `make clean` | Remove build artifacts |
| `make install` | Install `sxwm` to `$(PREFIX)/bin` (default `/usr/local`) |
| `make uninstall` | Remove installed binary |
| `make clean install` | Clean then install |
> Override install directory with `PREFIX`:
> ```sh
> make install PREFIX=$HOME/.local
> ```
---
## Thanks & Inspiration
- [dwm](https://dwm.suckless.org) - Tiling & source code
- [i3](https://i3wm.org) - Easy configuration
- [sowm](https://github.com/dylanaraps/sowm) - README inspiration
- [tinywm](http://incise.org/tinywm.html) - Minimal X11 WM
---
uint [2025]