# Install dwm with Homebrew, apk, apt, Nix

Dynamic window manager. Version 6.8 via Homebrew; verified 2026-06-25.

## Install

```sh
sudo av install brew:dwm
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install dwm
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add dwm
```

  Evidence: Alpine Linux edge package indexes: dwm from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install dwm
```

  Evidence: Debian stable package indexes: dwm from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#dwm
```

  Evidence: nixpkgs package indexes: pkgs/by-name/dw/dwm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:dwm
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/dwm>
- **Version:** 6.8
- **Source summary:** Dynamic window manager
- **Homepage:** <https://dwm.suckless.org/>
- **Repository:** <https://git.suckless.org/dwm>
- **Upstream docs:** <https://dwm.suckless.org/>
- **License:** MIT
- **Source archive:** <https://dl.suckless.org/dwm/dwm-6.8.tar.gz>
- **Last updated:** 2026-06-25T13:37:39+02:00
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- dwm (cli)
- dwm (alias)

## Dependencies

- dmenu
- fontconfig
- libx11
- libxft
- libxinerama

## Install behavior

- Post-install hook: not defined
- Caveats: In order to use the Mac OS X command key for dwm commands, change the X11 keyboard modifier map using xmodmap (1). e.g. by running the following command from $HOME/.xinitrc xmodmap -e 'remove Mod2 = Meta_L' -e 'add Mod1 = Meta_L'& See also https://gist.github.com/311377 for a handful of tips and tricks for running dwm on Mac OS X.
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 6.8
- Package-manager updated: 2026-06-25
- Local data: ok
- Upstream repository: https://dwm.suckless.org/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

dwm is the suckless dynamic window manager for X. The official page describes tiled, monocle, and floating layouts, tag-based window grouping, a small status bar, and a design that is intentionally smaller, faster, and simpler than predecessors such as ion, larswm, and wmii.

### Project history

The official git refs show dwm 0.1 tagged on 2006-07-14 by Anselm R. Garbe, followed by rapid 0.x and 1.x releases in 2006. By the 4.x and 5.x series it had settled into the small-C-source, edit-and-rebuild configuration style that became central to the suckless identity.

The official customisation page explains the distinctive model: dwm is configured by editing config.h, a C header included by dwm.c, and config.mk for build/install settings. The main page argues that source-code configuration is fast and secure because dwm does not process unknown runtime configuration input apart from window titles and status text.

### Adoption history

dwm's own site says binary packages are somewhat beside the point because users are expected to customize source, while also acknowledging that some distributions provide packages. The batch input lists apk, Homebrew, Debian, Nix, and Ubuntu, showing the tension that makes dwm famous in packaging culture: it is widely packaged even though upstream thinks the most authentic install is local source customization.

### How it is used

Users run dwm as an X window manager, arrange clients dynamically across tiled, monocle, and floating layouts, tag windows instead of placing them into conventional workspaces, and feed status text through the root window name. Customization usually means editing config.h, applying patches from the official patch collection, rebuilding, and carrying the local diff forward.

### Why package nerds care

dwm is one of the canonical minimalist Unix desktop packages. It is tiny, patch-oriented, hostile to sprawling configuration layers, and influential far beyond its source size. For package nerds it is a touchstone in debates about source-as-config, downstream patch stacks, reproducible personal builds, and how far a package manager should go when upstream expects users to edit C.

### Timeline

- 2006: dwm 0.1 tagged in the official git repository.
- 2007: 4.x releases continue rapid development of the early design.
- 2011: dwm 6.0 tagged.
- 2019: dwm 6.2 tagged after a slower mature-release cadence.
- 2026: dwm 6.8 released on 2026-01-30; official refs show master activity in March 2026.

### Related projects

- The official page places dwm against ion, larswm, and wmii, points users to dmenu, and lists related or influenced projects including awesome, dvtm, dwl, i3, qtile, scrotwm, xmonad, and several dwm forks or ports.

### Sources

- <https://dwm.suckless.org/>
- <https://dwm.suckless.org/customisation/>
- <https://git.suckless.org/dwm/refs.html>
- <https://git.suckless.org/dwm>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: config.h
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** dwm
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - dwm - 6.5-1: normalized package name match | Debian stable package indexes: dwm from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | dynamic window manager | http://dwm.suckless.org/
- Nix - dwm: normalized package name match | nixpkgs package indexes: pkgs/by-name/dw/dwm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - dwm - 6.4-1: normalized package name match | Ubuntu 24.04 LTS package indexes: dwm from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | dynamic window manager | https://dwm.suckless.org/
- apk - dwm - 6.8-r0: normalized package name match | Alpine Linux edge package indexes: dwm from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | dwm - dynamic window manager | https://dwm.suckless.org
- apk - dwm-doc - 6.8-r0: normalized package name match | Alpine Linux edge package indexes: dwm-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | dwm - dynamic window manager (documentation) | https://dwm.suckless.org


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Productivity CLI packages](https://www.automicvault.com/pkg/productivity-cli-packages/) - Matched curated productivity category metadata from av.db.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [dmenu](https://www.automicvault.com/pkg/brew/dmenu/) - Runtime dependency declared by Homebrew.
- [fontconfig](https://www.automicvault.com/pkg/brew/fontconfig/) - Runtime dependency declared by Homebrew.
- [file-roller](https://www.automicvault.com/pkg/brew/file-roller/) - Shares av.db curated category or tags: cli, desktop, productivity.
- [nedit](https://www.automicvault.com/pkg/brew/nedit/) - Shares av.db curated category or tags: cli, productivity, x11.
- [qalculate-gtk](https://www.automicvault.com/pkg/brew/qalculate-gtk/) - Shares av.db curated category or tags: cli, desktop, productivity.
- [qalculate-qt](https://www.automicvault.com/pkg/brew/qalculate-qt/) - Shares av.db curated category or tags: cli, desktop, productivity.
- [rofi](https://www.automicvault.com/pkg/brew/rofi/) - Shares av.db curated category or tags: cli, desktop, productivity.
- [sylpheed](https://www.automicvault.com/pkg/brew/sylpheed/) - Shares av.db curated category or tags: cli, desktop, productivity.
- [synergy-core](https://www.automicvault.com/pkg/brew/synergy-core/) - Shares av.db curated category or tags: cli, desktop, productivity.
- [a2ps](https://www.automicvault.com/pkg/brew/a2ps/) - Shares av.db curated category or tags: cli, productivity.
- [wmctrl](https://www.automicvault.com/pkg/brew/wmctrl/) - Local package facts share a topical domain. Shared terms: cli, libx11, management, manager, window.

## Combined YAML source

View the package source record on GitHub. [combined/dwm.yml](https://github.com/automic-vault/db/blob/main/combined/dwm.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
