x_do.cr
x_do
XDo
is a Crystal interface for libxdo
, the C library that backs xdotool
.
It exposes most of the functionality of xdotool
, allowing users to write Crystal programs that manage windows in an X11 instance.
Installation
Add this to your application's shard.yml
:
dependencies:
x_do:
github: woodruffw/x_do.cr
libxdo
is required. On Debian-based systems, it can be installed via:
$ sudo apt install libxdo-dev
Usage
require "x_do"
XDo.act do
active_window do |win|
win.type "hello from Crystal!"
end
end
Check out the examples folder for some practical examples.
Testing
The unit tests make the following assumptions:
- You're running an instance of X11
- You're running a window manager that's (mostly) ICCCM and EWMH compliant
- You have
xlogo
installed
To run the unit tests on the default X11 display (DISPLAY
, falling back on :0
):
$ crystal spec
Alternatively, the tests can be run on another X11 display, like a Xephyr or Xvfb instance:
# replace "99" with your display number
$ DISPLAY=:99 crystal spec
The util/xvfb-spec
script can be used to run the tests inside a temporary Xvfb instance running Openbox:
$ ./util/xvfb-spec
TODO
- Complete bindings (
grep "implement me!"
) - Add error conditions (check return value of libxdo calls)
Contributing
- Fork it ( https://github.com/woodruffw/x_do/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
x_do.cr
- 18
- 1
- 1
- 0
- 0
- over 1 year ago
- December 27, 2017
MIT License
Fri, 08 Nov 2024 03:30:13 GMT