mmsg(1)
π mmsg(1) β the mmsg manual, bestie edition π
okay so real talk, this is the page for mmsg, from the mmsg manual. it's giving "little CLI that could" and honestly? it ate. let's get into it β¨
πΈ NAME πΈ
mmsg β send commands to the mango Wayland compositor and receive JSON responses. literally that's the whole gig, and she does it flawlessly π
π¦ SYNOPSIS π¦
mmsg <command> [args...]
mmsg --help | -h | help
β¨ DESCRIPTION β¨
so mmsg connects to a running mango(1) compositor through the UNIX domain socket that's specified by the MANGO_INSTANCE_SIGNATURE environment variable. she sends whatever command you gave her and prints the JSON reply straight to standard output. slay.
in watch mode she keeps the connection open and prints a stream of updates as they happen β like a live feed but for your compositor, no cap π
if you hit her with --help, -h or help, she prints a complete usage summary and exits with success. iconic behavior, honestly.
π₯ COMMANDS π₯
π« One-shot queries (get) π«
all the get commands print a single JSON object and then close the connection. one and done, periodt.
get versionβ return compositor version.get cursorposβ return the global pointer position (x, y) and the monitor under it (nullif it's over no output).get keymodeβ return current keymode.get keyboardlayoutβ return current keyboard layout.get last_open_surface [monitor]β return the last open surface (application) for the given monitor. if monitor is omitted, the focused monitor is used.get monitor <name>β return details of the named monitor.get focusing-clientβ return details of the currently focused client.get client <id>β return details of the client with the given numeric ID.get tag <monitor> <index>β return details of a specific tag (1-based index) on the named monitor.get all-clientsβ list all clients.get all-monitorsβ list all monitors.get all-devicesβ list physical input devices, grouped by device, with their types, vendor/product IDs, interface count and matched device rule, if any.get all-layersβ list all open layer surfaces with their monitor, layer and namespace name.get all-tagsβ list tags for all monitors.get layoutsβ list all available window layouts (symbol and name).get tags <monitor>β list tags for a specific monitor.dispatch <func>[,arg...] [client,<id>]β invoke an internal compositor function. the function name and its arguments are separated by commas. optionally addclient,<id>(before or after the function) to target a specific client.
examples, because we love a demo π :
mmsg dispatch togglefloatingmmsg dispatch movewin,10,100mmsg dispatch movewin,10,100 client,4
π Persistent streams (watch) π
watch commands keep the connection open and continuously output JSON updates. the initial state is sent immediately, followed by updates whenever relevant changes occur. it's giving main character energy that never leaves the group chat π«Ά
watch monitor <name>β stream updates for the named monitor.watch focusing-clientβ stream updates for the focused client.watch client <id>β stream updates for the client with the given ID.watch tags <monitor>β stream tag updates for the named monitor.watch all-monitorsβ stream updates for all monitors.watch all-tagsβ stream updates for all tags.watch all-clientsβ stream updates for all clients.watch all-devicesβ stream the last input device that triggered an event.watch keymodeβ stream keymode changes.watch keyboardlayoutβ stream keyboard layout changes.watch last_open_surface [monitor]β stream last open surface changes for a specific monitor (or the focused one).
π§ ENVIRONMENT π§
MANGO_INSTANCE_SIGNATUREβ path to the compositor's IPC socket. set automatically bymango(1). if it's unset,mmsgprints an error and exits. so likeβ¦ don't leave her hanging π
π EXIT STATUS π
0β success (or help message printed). we love a win πEXIT_FAILUREβ an error occurred (connection refused, send/receive error, etc.). it happens to the best of us π
π SEE ALSO π
mango(1)
π BUGS π
report issues at the project's issue tracker. do it, bestie, she wants to be her best self π₯
mmsg 0.18.4 Β· 2026-05-31 β that's the source/version and the date, bestie, immortalized in a cute lil sign-off. mwah πβ¨
π¦ where this page comes from
- arch rolling: mangowm 0.18.4-1 Β· GPL-3.0-or-later
- nixpkgs unstable: mango 0.18.4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms