Automic VaultAutomic Vault

brew

Install xmodmap with Homebrew, apk, dnf, MacPorts, Nix, zypper

Modify keymaps and pointer button mappings in X. Version 1.0.11 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install xmodmap

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install xmodmap

MacPorts ports tree · x11/xmodmap/Portfile · source: api.github.com

Linux

Alpine Linux apkverified · 92%
sudo apk add xmodmap

Alpine Linux edge package indexes · xmodmap · source: dl-cdn.alpinelinux.org

Fedora dnfverified · 92%
sudo dnf install xmodmap

Fedora Rawhide package metadata · xmodmap · source: dl.fedoraproject.org

Nixverified · 92%
nix profile install nixpkgs#xmodmap

nixpkgs package indexes · pkgs/by-name/xm/xmodmap/package.nix · source: api.github.com

openSUSE zypperverified · 92%
sudo zypper install xmodmap

openSUSE Tumbleweed package metadata · xmodmap · source: download.opensuse.org

overview

Package summary

Modify keymaps and pointer button mappings in X

Commands and aliases

  • xmodmap

history

Project history and usage

xmodmap is one of the old X11 session-shaping utilities: it edits and prints the keyboard modifier map, the keymap table used to translate keycodes into keysyms, and pointer button mappings. Its package-manager role is narrow but durable: install it when an X session needs per-user key remapping without changing a system keyboard layout.

Project history

The X11R6.8.2 manual credits Jim Fulton of the MIT X Consortium, rewritten from an earlier version by David Rosenthal of Sun Microsystems, which places xmodmap squarely in the classic vendor-and-consortium X Window System toolset. The X.Org GitLab repository is the modern maintenance home for that small utility, describing it as a tool for modifying keymaps and pointer button mappings in X.

xmodmap persisted because X11 exposed keycodes, keysyms, modifier maps, and MappingNotify events as user-visible machinery. The utility is intentionally close to those primitives: it reads expressions such as keycode, keysym, add, remove, clear, and pointer assignments, parses them first, then applies the resulting map changes to the running X server.

Adoption history

Historically, xmodmap became part of the personal Unix desktop toolkit. Its own manual says it is usually run from a user's session startup script, and the examples document common workstation-era irritations: swapping Caps Lock and Control, making Alt act as Meta, fixing Backspace/Delete behavior, adding less-than and greater-than bindings, and reversing pointer buttons for left-handed use.

Its adoption later became more situational as XKB, desktop-environment keyboard panels, libinput, Wayland compositors, and per-application shortcuts took over many layout tasks. Even so, package collections still carry xmodmap because remote X sessions, minimal window managers, old documentation, and quick one-line remaps still need the original X11-level tool.

How it is used

Typical usage is either ad hoc, such as xmodmap -e "pointer = 3 2 1", or startup-driven through a file such as ~/.xmodmaprc. Users inspect the current state with -pm, -pk, -pke, or -pp, then feed expressions back to the server to change modifier keys, keysyms, keycodes, or pointer buttons.

The main practical caveat is also in the old manual: mapping changes generate MappingNotify events, and clients that ignore those events may not notice changes. That is why xmodmap remains best suited to simple X11 session customization rather than full modern keyboard-layout management.

Why package nerds care

xmodmap is package archaeology that is still runnable. It is tiny, scriptable, X11-specific, and exposes the desktop stack at a level that newer settings panels hide. For package nerds, it is the difference between shipping an entire input-configuration layer and shipping one classic command that can still fix a weird keyboard in a minimal X session.

It also marks a useful boundary in platform history: when a package depends on xmodmap, it is probably assuming X11 semantics, not Wayland compositor settings or cross-platform shortcut APIs.

Timeline

  • X11 consortium era: xmodmap is authored by Jim Fulton of the MIT X Consortium, based on an earlier Sun Microsystems version by David Rosenthal.
  • 1990s: X11R6-era documentation records xmodmap as a standard X utility for user startup scripts and key/pointer remapping.
  • 2018-07-29: The freedesktop.org GitLab project for xorg/app/xmodmap is created as part of the modern X.Org source hosting layout.
  • 2020s: xmodmap remains packaged mainly for X11 sessions, minimal desktops, remote X usage, and compatibility with old remapping recipes.

Related projects

  • xev is commonly used with xmodmap to discover keycodes and keysyms.
  • XKB and setxkbmap cover broader X keyboard layout configuration that often supersedes xmodmap for full layouts.
  • xinput, libinput, and compositor-specific settings cover much of the modern pointer/input space outside xmodmap's narrow X11 map-editing role.

security posture

Risk level: green

narrow executable package without higher-risk signals.

Risk classifier

green risk · low confidence · appliance

Why

  • narrow executable package without higher-risk signals

Signals

  • metadata:no-higher-risk-signals

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 12 platform targets.
  • Installs with 1 runtime dependencies.
  • Build metadata lists 2 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
xmodmapcliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version1.0.11
manager updated
local dataok
upstreamnot checked
latest detectednot detected

https://gitlab.freedesktop.org/xorg/app/xmodmap

install metadata

Package metadata

Package keybrew:xmodmap
Version1.0.11
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/xmodmap
Homepagehttps://gitlab.freedesktop.org/xorg/app/xmodmap
Repositoryhttps://gitlab.freedesktop.org/xorg/app/xmodmap
Upstream docshttps://gitlab.freedesktop.org/xorg/app/xmodmap
LicenseMIT-open-group
Source archivehttps://www.x.org/releases/individual/app/xmodmap-1.0.11.tar.xz
Dependencieslibx11
Build dependenciespkgconf, xorgproto
Bottleavailable (on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, monterey, sonoma, ventura, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namexmodmap
Version Scheme0
Revision0
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

xmodmap

nix profile install nixpkgs#xmodmap
  • normalized package name match
  • Matched by: Xmodmap
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/xm/xmodmap/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
apk95%

xmodmap 1.0.11-r1

Utility for modifying keymaps and pointer button mappings in X

https://xorg.freedesktop.org/

sudo apk add xmodmap
  • License: MIT
  • Architecture: x86_64
  • Source Package: xmodmap
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Xmodmap
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: xmodmap from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

xmodmap-doc 1.0.11-r1

Utility for modifying keymaps and pointer button mappings in X (documentation)

https://xorg.freedesktop.org/

sudo apk add xmodmap-doc
  • License: MIT
  • Architecture: x86_64
  • Source Package: xmodmap
  • normalized package name match
  • Matched by: Xmodmap
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: xmodmap-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
dnf95%

xmodmap 1.0.11-10.fc44

Edit and display the X11 core keyboard map

https://www.x.org

sudo dnf install xmodmap
  • License: MIT AND MIT-open-group
  • Category: Unspecified
  • Architecture: x86_64
  • Source Package: xmodmap
  • 3 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Xmodmap
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: xmodmap from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
zypper95%

xmodmap 1.0.11-1.11

Utility to modify keymaps and pointer button mappings in X

https://xorg.freedesktop.org/

sudo zypper install xmodmap
  • License: MIT
  • Category: System/X11/Utilities
  • Architecture: x86_64
  • Source Package: xmodmap
  • 2 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Xmodmap
openSUSE Tumbleweed package metadata · download.opensuse.org · openSUSE Tumbleweed package metadata: xmodmap from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst
MacPorts95%

xmodmap

sudo port install xmodmap
  • normalized package name match
  • Matched by: Xmodmap
MacPorts ports tree · api.github.com · MacPorts ports tree: x11/xmodmap/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

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