i3ipc
A pure OCaml implementation of the i3 IPC protocol
1024" x-on:close-sidebar="sidebar=window.innerWidth > 1024 && true">
back to documentation root
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Library i3ipc
type protocol_error =
| No_IPC_socket |
| Bad_magic_string of string |
| Unexpected_eof |
| Unknown_type of Stdint.Uint32.t |
| Bad_reply of string |
The different errors that may be raised.
exception Protocol_error of protocol_error
module Reply : sig ... end
Type definitions for the command replies.
module Event : sig ... end
Type definitions for the events that can be subscribed to.
Connection to i3
val connect : unit -> connection Lwt.t
Connect to a running i3 instance.
val disconnect : connection -> unit Lwt.t
Close a connection
.
Event subscription
val subscribe : connection -> subscription list -> Reply.command_outcome Lwt.t
Subscribe to certain events.
val next_event : connection -> Event.t Lwt.t
Wait for the next event, among those subscribed to.
Commands and queries
val command : connection -> string -> Reply.command_outcome list Lwt.t
Run an i3 command. See http://i3wm.org/docs/userguide.html#_list_of_commands for a list of valid commands.
val get_workspaces : connection -> Reply.workspace list Lwt.t
Get the list of current workspaces.
val get_outputs : connection -> Reply.output list Lwt.t
Get the list of current outputs.
val get_tree : connection -> Reply.node Lwt.t
Get the layout tree. i3 uses a tree data-structure to represent the layout of windows in a workspace.
val get_marks : connection -> Reply.mark list Lwt.t
Get a list of marks (identifiers of containers).
val get_bar_ids : connection -> Reply.bar_id list Lwt.t
Get the list of IDs of all configured bars.
val get_bar_config : connection -> Reply.bar_id -> Reply.bar_config Lwt.t
Get the configuration of the workspace bar with given ID.
val get_version : connection -> Reply.version Lwt.t
Get the version of i3.