i3.cr
A Crystal interface to the i3 window manager, using i3's IPC protocol.
Installation
Add this to your application's shard.yml
:
dependencies:
i3:
github: woodruffw/i3.cr
Usage
require "i3"
# create a connection object and manage it manually
con = I3::Connection.new
con.subscribe("workspace")
con.command("workspace 1")
con.close
# or, let `act` do it for you:
I3.act do |con|
con.command("workspace 1")
sleep(0.1)
con.command("workspace 2")
end
TODO
- Figure out a way to expose events as callbacks (lack of threads makes this difficult)
Contributing
- Fork it (https://github.com/woodruffw/i3/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- woodruffw William Woodruff - creator, maintainer