Hi all,

Vitalii Elenhaupt pointed me to this i3 IPC library for ruby:

https://github.com/veelenga/i3ipc-ruby

which is a fork of the i3-ipc library mentioned on the i3 website.

I would like to recommend that veelenga/i3ipc-ruby be added to the i3
website, and badboy/i3-ipc be removed or at least marked as
unmaintained. veelenga/i3ipc-ruby is more featureful than badboy's
one, including the ability to subscribe to events.

Kareem

On 2015-06-02 1514, Tony Crisci wrote:
> This is a known bug with i3. Any command that does not include a
> `restart` should work correctly. Try to use `reload` whenever you
> can.  If `reload` does not do something you think it should do that
> `restart` does, make an issue on github.
> 
> https://github.com/i3/i3/issues/1581
> 
> On 06/02/2015 05:20 PM, Kareem Khazem wrote:
> > Hi all, wondering if somebody could tell me what's wrong with my
> > script that's trying to talk with i3's IPC.
> > 
> > Whenever I try to read a reply from the socket, I apparently just
> > get an empty string.
> > 
> > I've already read the warning about using a library and not
> > implementing my own, thanks, but the Ruby library is unmaintained
> > and doesn't include recent IPC features.
> > 
> > I'm doing this:
> > 
> > ___________________ 8>< snip ><8
> > _____________________________________ #!/usr/bin/env ruby require
> > 'socket' socket  = Socket.unix(`i3 --get-socketpath`.strip)
> > 
> > payload = "restart" type    = 0 length  = payload.length
> > 
> > bytes = socket.write("i3-ipc#{[length,
> > type].pack("LL")}#{payload}")
> > 
> > response = socket.read.unpack("L")
> > ______________________________________________________________________
> > 
> > 
> > `bytes' gets the number of bytes written, as expected, and i3 does
> > indeed restart, so the message was successful. But `response'
> > seems to be nil. If I just ask for socket.read, I just get the
> > empty string.
> > 
> > Can anyone help? thanks!

Reply via email to