# Install wmctrl with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper

UNIX/Linux command-line tool to interact with an EWMH/NetWM. Version 1.07 via Homebrew; verified 2026-07-14. Also installable with debian: sudo apt install wmctrl.

## Install

```sh
sudo av install brew:wmctrl
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install wmctrl
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install wmctrl
```

  Evidence: MacPorts ports tree: x11/wmctrl/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add wmctrl
```

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

- Debian apt (92%):

```sh
sudo apt install wmctrl
```

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

- dnf (92%):

```sh
sudo dnf install wmctrl
```

  Evidence: Fedora Rawhide package metadata: wmctrl from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#wmctrl
```

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

- pacman (92%):

```sh
sudo pacman -S wmctrl
```

  Evidence: Arch Linux sync databases: wmctrl from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install wmctrl
```

  Evidence: openSUSE Tumbleweed package metadata: wmctrl from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## Package facts

- **Package key:** brew:wmctrl
- **Package manager:** Homebrew
- **Version:** 1.07
- **Source summary:** UNIX/Linux command-line tool to interact with an EWMH/NetWM
- **Homepage:** <https://packages.debian.org/sid/wmctrl>
- **Last updated:** 2026-07-14T20:07:14+09:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- wmctrl (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 1.07
## Project history and usage

wmctrl is a small X11 command-line utility for querying and controlling window managers that implement the Extended Window Manager Hints, also known as EWMH or NetWM. It is an old-fashioned Unix desktop automation tool: scriptable, tiny, and useful precisely because it exposes window-manager operations outside the graphical shell.

### Project history

The upstream ChangeLog, preserved in the Conservatory archive, records an initial release by Tomas Styblo on 15 September 2003 and a compact burst of releases through 1.07 on 3 January 2005. The original README identifies Tomas Styblo as author and maintainer, gives the upstream homepage, and states that wmctrl is based on the freedesktop.org EWMH specification.

The Conservatory archive exists because wmctrl had no public upstream version-control repository. Its maintainers imported the upstream tarball history into Git in 2018 and noted that the latest upstream release was still the January 2005 1.07 release.

### Adoption history

wmctrl persisted through distribution packaging rather than active upstream development. Debian, Fedora, Arch, Guix, RPM-based distributions, and others have carried version 1.07 or downstream builds because the tool remains handy for X11 desktops, scripts, hotkeys, test automation, and glue code around lightweight window managers.

### How it is used

Users run wmctrl to list windows and desktops, activate or close a window, move or resize windows, change desktop geometry, switch desktops, or set EWMH states such as fullscreen, maximized, sticky, or always-on-top. Its usefulness depends on the window manager implementing the EWMH/NetWM protocol, which standardizes interactions between window managers, pagers, taskbars, applications, and desktop utilities.

### Why package nerds care

wmctrl is package-nerd significant because it is the kind of tiny, stable X11 utility that survives for decades with little upstream activity. It codifies a desktop protocol into one scriptable binary and is still pulled into environments where shell scripts need to reason about graphical windows.

### Timeline

- 2003: Initial wmctrl release recorded in the upstream ChangeLog.
- 2005: wmctrl 1.07 released, with additions such as WM_CLASS support, active-window addressing, 64-bit support, and a man page recorded around the same release period.
- 2011: EWMH 1.5 published by freedesktop.org, documenting the protocol family wmctrl targets.
- 2018: Conservatory imported the released wmctrl tarball history into a Git archive because no public upstream VCS was available.

### Related projects

- EWMH/NetWM is the freedesktop.org specification that defines the window-manager properties and client messages wmctrl manipulates.
- Zenity is mentioned in the original README as a complementary tool for combining GUI interactions with shell scripts.

### Sources

- <https://archlinux.org/packages/extra/x86_64/wmctrl/>
- <https://github.com/Conservatory/wmctrl>
- <https://github.com/Conservatory/wmctrl/blob/master/ChangeLog>
- <https://packages.debian.org/sid/wmctrl>
- <https://packages.fedoraproject.org/pkgs/wmctrl/wmctrl/fedora-39.html>
- <https://specifications.freedesktop.org/wm-spec/latest/>


## Security Notes

narrow executable package without higher-risk signals.

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

## Other Package-Manager Records

- Debian apt - wmctrl - 1.07+git20240228.1105759-1: normalized package name match | Debian stable package indexes: wmctrl from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | control an EWMH/NetWM compatible X Window Manager | https://github.com/Conservatory/wmctrl
- Nix - wmctrl: normalized package name match | nixpkgs package indexes: pkgs/by-name/wm/wmctrl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - wmctrl - 1.07-7ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: wmctrl from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | control an EWMH/NetWM compatible X Window Manager | http://tripie.sweb.cz/utils/wmctrl/
- apk - wmctrl - 1.07-r1: normalized package name match | Alpine Linux edge package indexes: wmctrl from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | wmctrl is a UNIX/Linux command line tool to interact with an EWMH/NetWM compatible X Window Manager | https://sites.google.com/site/tstyblo/wmctrl
- apk - wmctrl-doc - 1.07-r1: normalized package name match | Alpine Linux edge package indexes: wmctrl-doc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | wmctrl is a UNIX/Linux command line tool to interact with an EWMH/NetWM compatible X Window Manager (documentation) | https://sites.google.com/site/tstyblo/wmctrl
- dnf - wmctrl - 1.07-42.fc45: normalized package name match | Fedora Rawhide package metadata: wmctrl from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Command line tool to interact with an X Window Manager | http://sweb.cz/tripie/utils/wmctrl
- pacman - wmctrl - 1.07-6: normalized package name match | Arch Linux sync databases: wmctrl from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Control your EWMH compliant window manager from command line | http://tripie.sweb.cz/utils/wmctrl/
- zypper - wmctrl - 1.07-152.8: normalized package name match | openSUSE Tumbleweed package metadata: wmctrl from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Command line tool to interact with an EWMH/NetWM compatible X Window Manager | http://sweb.cz/tripie/utils/wmctrl/
- MacPorts - wmctrl: normalized package name match | MacPorts ports tree: x11/wmctrl/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Combined YAML source

View the package source record on GitHub. [combined/wmctrl.yml](https://github.com/mxcl/pkgdb/blob/main/combined/wmctrl.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
