macOS
brew install xmodmaplocal Homebrew formula metadata
sudo port install xmodmapMacPorts ports tree · x11/xmodmap/Portfile · source: api.github.com
brew
Modify keymaps and pointer button mappings in X. Version 1.0.11 via Homebrew; verified from local package data.
install
brew install xmodmaplocal Homebrew formula metadata
sudo port install xmodmapMacPorts ports tree · x11/xmodmap/Portfile · source: api.github.com
sudo apk add xmodmapAlpine Linux edge package indexes · xmodmap · source: dl-cdn.alpinelinux.org
sudo dnf install xmodmapFedora Rawhide package metadata · xmodmap · source: dl.fedoraproject.org
nix profile install nixpkgs#xmodmapnixpkgs package indexes · pkgs/by-name/xm/xmodmap/package.nix · source: api.github.com
sudo zypper install xmodmapopenSUSE Tumbleweed package metadata · xmodmap · source: download.opensuse.org
overview
Modify keymaps and pointer button mappings in X
history
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.
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.
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.
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.
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.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
xmodmap | cli | global executable |
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.
https://gitlab.freedesktop.org/xorg/app/xmodmap
install metadata
| Package key | brew:xmodmap |
|---|---|
| Version | 1.0.11 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/xmodmap |
| Homepage | https://gitlab.freedesktop.org/xorg/app/xmodmap |
| Repository | https://gitlab.freedesktop.org/xorg/app/xmodmap |
| Upstream docs | https://gitlab.freedesktop.org/xorg/app/xmodmap |
| License | MIT-open-group |
| Source archive | https://www.x.org/releases/individual/app/xmodmap-1.0.11.tar.xz |
| Dependencies | libx11 |
| Build dependencies | pkgconf, xorgproto |
| Bottle | available (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-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | xmodmap |
| Version Scheme | 0 |
| Revision | 0 |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
xmodmap
nix profile install nixpkgs#xmodmapxmodmap 1.0.11-r1
Utility for modifying keymaps and pointer button mappings in X
sudo apk add xmodmapxmodmap-doc 1.0.11-r1
Utility for modifying keymaps and pointer button mappings in X (documentation)
sudo apk add xmodmap-docxmodmap 1.0.11-10.fc44
Edit and display the X11 core keyboard map
sudo dnf install xmodmapxmodmap 1.0.11-1.11
Utility to modify keymaps and pointer button mappings in X
sudo zypper install xmodmapxmodmap
sudo port install xmodmapsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.