GET_VERSION (7)::
Gets the version of i3. The reply will be a JSON-encoded dictionary
with the major, minor, patch and human-readable version.
+GET_BINDING_MODES (8)::
+ Gets a list of currently configured binding modes.
So, a typical message could look like this:
--------------------------------------------------
Reply to the GET_BAR_CONFIG message.
VERSION (7)::
Reply to the GET_VERSION message.
+BINDING_MODES (8)::
+ Reply to the GET_BINDING_MODES message.
=== COMMAND reply
The name of this output (as seen in +xrandr(1)+). Encoded in UTF-8.
active (boolean)::
Whether this output is currently active (has a valid mode).
+primary (boolean)::
+ Whether this output is currently the primary output.
current_workspace (string)::
The name of the current workspace that is visible on this output. +null+ if
the output is not active.
"y": 0,
"width": 1280,
"height": 1024
- },
+ }
}
]
-------------------
Type of this container. Can be one of "root", "output", "con",
"floating_con", "workspace" or "dockarea".
border (string)::
- Can be either "normal", "none" or "1pixel", dependending on the
+ Can be either "normal", "none" or "pixel", depending on the
container’s border style.
current_border_width (integer)::
Number of pixels of the border width.
"y": 0,
"width": 1280,
"height": 0
- },
+ }
},
{
Text color to be used for the statusline.
separator::
Text color to be used for the separator.
-focused_workspace_text/focused_workspace_bg::
- Text color/background color for a workspace button when the workspace
+focused_background::
+ Background color of the bar on the currently focused monitor output.
+focused_statusline::
+ Text color to be used for the statusline on the currently focused
+ monitor output.
+focused_separator::
+ Text color to be used for the separator on the currently focused
+ monitor output.
+focused_workspace_text/focused_workspace_bg/focused_workspace_border::
+ Text/background/border color for a workspace button when the workspace
has focus.
-active_workspace_text/active_workspace_bg::
- Text color/background color for a workspace button when the workspace
+active_workspace_text/active_workspace_bg/active_workspace_border::
+ Text/background/border color for a workspace button when the workspace
is active (visible) on some output, but the focus is on another one.
You can only tell this apart from the focused workspace when you are
using multiple monitors.
-inactive_workspace_text/inactive_workspace_bg::
- Text color/background color for a workspace button when the workspace
+inactive_workspace_text/inactive_workspace_bg/inactive_workspace_border::
+ Text/background/border color for a workspace button when the workspace
does not have focus and is not active (visible) on any output. This
will be the case for most workspaces.
-urgent_workspace_text/urgent_workspace_bar::
- Text color/background color for workspaces which contain at least one
+urgent_workspace_text/urgent_workspace_bg/urgent_workspace_border::
+ Text/background/border color for workspaces which contain at least one
window with the urgency hint set.
+binding_mode_text/binding_mode_bg/binding_mode_border::
+ Text/background/border color for the binding mode indicator.
*Example of configured bars:*
build date and branch name. When you need to display the i3 version to
your users, use the human-readable version whenever possible (since
this is what +i3 --version+ displays, too).
+loaded_config_file_name (string)::
+ The current config path.
*Example:*
-------------------
{
"human_readable" : "4.2-169-gf80b877 (2012-08-05, branch \"next\")",
+ "loaded_config_file_name" : "/home/hwangcc23/.i3/config",
"minor" : 2,
"patch" : 0,
"major" : 4
}
-------------------
+=== BINDING_MODES reply
+
+The reply consists of an array of all currently configured binding modes.
+
+*Example:*
+---------------------
+["default", "resize"]
+---------------------
+
== Events
[[events]]
binding (5)::
Sent when a configured command binding is triggered with the keyboard or
mouse
+shutdown (6)::
+ Sent when the ipc shuts down because of a restart or exit by user command
*Example:*
--------------------------------------------------------------------
This event consists of a single serialized map containing a property
+change (string)+ which indicates the type of the change ("focus", "init",
-"empty", "urgent"). A +current (object)+ property will be present with the
-affected workspace whenever the type of event affects a workspace (otherwise,
-it will be +null).
+"empty", "urgent", "reload", "rename", "restored", "move"). A
++current (object)+ property will be present with the affected workspace
+whenever the type of event affects a workspace (otherwise, it will be +null).
When the change is "focus", an +old (object)+ property will be present with the
previous workspace. When the first switch occurs (when i3 focuses the
This event consists of a single serialized map containing a property
+change (string)+ which holds the name of current mode in use. The name
is the same as specified in config when creating a mode. The default
-mode is simply named default.
+mode is simply named default. It contains a second property, +pango_markup+, which
+defines whether pango markup shall be used for displaying this mode.
*Example:*
---------------------------
-{ "change": "default" }
+{
+ "change": "default",
+ "pango_markup": true
+}
---------------------------
=== window event
This event consists of a single serialized map containing a property
+change (string)+ which indicates the type of the change
-* +new+ - the window has become managed by i3
-* +close+ - the window has closed
-* +focus+ - the window has received input focus
-* +title+ - the window's title has changed
-* +fullscreen_mode+ - the window has entered or exited fullscreen mode
-* +move+ - the window has changed its position in the tree
-* +floating+ - the window has transitioned to or from floating
-* +urgent+ - the window has become urgent or lost its urgent status
+* +new+ – the window has become managed by i3
+* +close+ – the window has closed
+* +focus+ – the window has received input focus
+* +title+ – the window's title has changed
+* +fullscreen_mode+ – the window has entered or exited fullscreen mode
+* +move+ – the window has changed its position in the tree
+* +floating+ – the window has transitioned to or from floating
+* +urgent+ – the window has become urgent or lost its urgent status
+* +mark+ – a mark has been added to or removed from the window
Additionally a +container (object)+ field will be present, which consists
of the window's parent container. Be aware that for the "new" event, the
=== binding event
This event consists of a single serialized map reporting on the details of a
-binding that ran a command because of user input. The +change (sring)+ field
+binding that ran a command because of user input. The +change (string)+ field
indicates what sort of binding event was triggered (right now it will always be
+"run"+ but may be expanded in the future).
command (string)::
The i3 command that is configured to run for this binding.
-mods (array of strings)::
- The modifier keys that were configured with this binding.
+event_state_mask (array of strings)::
+ The group and modifier keys that were configured with this binding.
input_code (integer)::
If the binding was configured with +bindcode+, this will be the key code
that was given for the binding. If the binding is a mouse binding, it will be
"change": "run",
"binding": {
"command": "nop",
- "mods": [
+ "event_state_mask": [
"shift",
"ctrl"
],
}
---------------------------
+=== shutdown event
+
+This event is triggered when the connection to the ipc is about to shutdown
+because of a user action such as a +restart+ or +exit+ command. The +change
+(string)+ field indicates why the ipc is shutting down. It can be either
++"restart"+ or +"exit"+.
+
+*Example:*
+---------------------------
+{
+ "change": "restart"
+}
+---------------------------
+
== See also (existing libraries)
[[libraries]]
C::
* i3 includes a headerfile +i3/ipc.h+ which provides you all constants.
* https://github.com/acrisci/i3ipc-glib
+C++::
+ * https://github.com/drmgc/i3ipcpp
Go::
- * https://github.com/proxypoke/i3ipc
+ * https://github.com/mdirkse/i3ipc-go
JavaScript::
* https://github.com/acrisci/i3ipc-gjs
Lua::
* https://github.com/whitelynx/i3ipc (not maintained)
* https://github.com/ziberna/i3-py (not maintained)
Ruby::
- * http://github.com/badboy/i3-ipc
+ * https://github.com/veelenga/i3ipc-ruby
+ * https://github.com/badboy/i3-ipc (not maintained)
+Rust::
+ * https://github.com/tmerr/i3ipc-rs
+OCaml::
+ * https://github.com/Armael/ocaml-i3ipc