Library
Module
Module type
Parameter
Class
Class type
A pure OCaml implementation of the i3 IPC protocol.
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.
val connect : unit -> connection Lwt.t
Connect to a running i3 instance.
val disconnect : connection -> unit Lwt.t
Close a connection
.
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.
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.
val get_binding_modes : connection -> Reply.binding_modes Lwt.t
Get binding modes of i3.
val get_config : connection -> Reply.config Lwt.t
Get the config file as loaded by i3 most recently.
val send_tick : connection -> string -> bool Lwt.t
Sends a tick event with the specified payload.