swaymsg - Send messages to a running instance of sway over the IPC
socket.
swaymsg [options...] [message]
-h, --help
Show help message and quit.
-m, --monitor
Monitor for responses until killed instead of exiting
after the first response. This can only be used with the IPC message type
subscribe. If there is a malformed response or an invalid event type
was requested, swaymsg will stop monitoring and exit.
-p, --pretty
Use pretty output even when not using a tty. Not
available for all message types.
-q, --quiet
Sends the IPC message but does not print the response
from sway.
-r, --raw
Use raw JSON output even if using a tty.
-s, --socket <path>
Use the specified socket path. Otherwise, swaymsg will
ask sway where the socket is (which is the value of $SWAYSOCK, then of
$I3SOCK).
-t, --type <type>
Specify the type of IPC message. See below.
-v, --version
Print the version (of swaymsg) and quit.
<command>
The message is a sway command (the same commands you can
bind to keybindings in your sway config file). It will be executed
immediately.
See sway(5) for a list of commands.
swaymsg can return pretty printed (standalone-default) or
JSON-formatted (--raw) output. For detailed documentation on the
returned JSON-data of each message type listed below, refer to
sway-ipc(7). The JSON-format can contain more information than the
pretty print.
Tips:
- Command expansion is performed twice: once by swaymsg, and again by sway.
If you have quoted multi-word strings in your command, enclose the entire
command in single-quotes. For example, use swaymsg 'output "Foobar
Display" enable' instead of swaymsg output "Foobar
Display" enable. Furthermore, note that comma separated options
also count as multi-word strings, because commas can be used to execute
commands on the same line.
- If you are providing a command that contains a leading hyphen (-),
insert two hyphens (--) before the command to signal to swaymsg not
to parse anything beyond that point as an option. For example, use
swaymsg -- mark --add test instead of swaymsg mark --add
test.
get_workspaces
Gets a list of workspaces and their status.
get_inputs
Gets a list of current inputs.
get_outputs
Gets a list of current outputs.
get_tree
Gets a JSON-encoded layout tree of all open windows,
containers, outputs, workspaces, and so on.
get_seats
Gets a list of all seats, its properties and all assigned
devices.
get_marks
Get a JSON-encoded list of marks.
get_bar_config
Get a JSON-encoded configuration for swaybar.
get_version
Get version information for the running instance of
sway.
get_binding_modes
Gets a JSON-encoded list of currently configured binding
modes.
get_binding_state
Gets JSON-encoded info about the current binding
state.
get_config
Gets a copy of the current configuration. Doesn't expand
includes.
send_tick
Sends a tick event to all subscribed clients.
subscribe
Subscribe to a list of event types. The argument for this
type should be provided in the form of a valid JSON array. If any of the types
are invalid or if a valid JSON array is not provided, this will result in a
failure. For a list of valid event types and the data returned with them refer
to
sway-ipc(7).
0
Success
1
swaymsg errors such as invalid syntax, unable to connect
to the ipc socket or unable to parse sway's reply
2
Sway returned an error when processing the command (ex.
invalid command, command failed, and invalid subscription request)