Socket
Book a DemoInstallSign in
Socket

toolman.org/i3ipc

Package Overview
Dependencies
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

toolman.org/i3ipc

Go Modules
Version
v1.0.6
Version published
Created
Source

i3ipc

Overview

i3ipc is a library for convenient access to the IPC API of the i3 window manager.

Capabilities

As of the time of writing, this library is able to access all functionality of the IPC API of i3. This includes sending commands and other message types, as well as handling subscriptions.

If you just want a quick overview of the documentation, head to go.pkgdoc.org.

Usage

Thanks to Go's built-in git support, you can start using i3ipc with a simple

import "github.com/proxypoke/i3ipc"

For everything except subscriptions, you will want to create an IPCSocket over which the communication will take place. This object has methods for all message types that i3 will accept, though some might be split into multiple methods (eg. Get_Bar_Config). You can create such a socket quite easily:

ipcsocket, err := i3ipc.GetIPCSocket()

As a simple example of what you could do next, let's get the version of i3 over our new socket:

version, err := ipcsocket.GetVersion()

For further commands, refer to go doc or use the aforementioned website.

Subscriptions

i3ipc handles subscriptions in a convenient way: you don't have to think about managing the socket or watch out for unordered replies. The appropriate method simply returns a channel from which you can read Event objects.

Here's a simple example - we subscribe to workspace events, then simple print all of them as we receive them:

ws_events, err := i3ipc.Subscribe(i3ipc.I3WorkspaceEvent)
for {
    event := <-ws_events
    fmt.Printf("Received an event: %v\n", event)
}

i3ipc currently has no way of subscribing to multiple event types over a single channel. If you want this, you can simply create multiple subscribtions, then demultiplex those channels yourself - select is your friend.

License

This program is free software under the terms of the Do What The Fuck You Want To Public License. It comes without any warranty, to the extent permitted by applicable law. For a copy of the license, see COPYING or head to http://sam.zoy.org/wtfpl/COPYING.

FAQs

Package last updated on 04 Jun 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts