= Libnotify
{}[https://travis-ci.org/splattael/libnotify] {}[http://badge.fury.io/rb/libnotify] {}[https://codeclimate.com/github/splattael/libnotify]
Ruby bindings for libnotify using FFI.
Gem[https://rubygems.org/gems/libnotify] |
Source[https://github.com/splattael/libnotify] |
RDoc[http://rubydoc.info/github/splattael/libnotify/master/file/README.rdoc]
http://github.com/splattael/libnotify/raw/master/libnotify.png
== Usage
require 'libnotify'
# Block syntax
n = Libnotify.new do |notify|
notify.summary = "hello"
notify.body = "world"
notify.timeout = 1.5 # 1.5 (s), 1000 (ms), "2", nil, false
notify.urgency = :critical # :low, :normal, :critical
notify.append = false # default true - append onto existing notification
notify.transient = true # default false - keep the notifications around after display
notify.icon_path = "/usr/share/icons/gnome/scalable/emblems/emblem-default.svg"
end
n.show!
# Hash syntax
Libnotify.show(:body => "hello", :summary => "world", :timeout => 2.5)
# Mixed syntax
Libnotify.show(options) do |n|
n.timeout = 1.5 # overrides :timeout in options
end
# Icon path auto-detection
Libnotify.icon_dirs << "/usr/share/icons/gnome/*/"
Libnotify.show(:icon_path => "emblem-default.png")
Libnotify.show(:icon_path => :"emblem-default")
# Update pre-existing notification then close it
n = Libnotify.new(:summary => "hello", :body => "world")
n.update # identical to show! if not shown before
Kernel.sleep 1
n.update(:body => "my love") do |notify|
notify.summary = "goodbye"
end
Kernel.sleep 1
n.close
== Installation
gem install libnotify
You'll need libnotify. On Debian just type:
apt-get install libnotify1
== Testing
git clone git://github.com/splattael/libnotify.git
cd libnotify
(gem install bundler)
bundle install
rake
=== Code coverage
COVERAGE=1 rake
== Caveats
* +timeout+ and +append+ options might not work on Ubuntu.
See GH #21 for details.
https://github.com/splattael/libnotify/issues/21#issuecomment-19114127
== Authors
* Peter Suschlik (https://github.com/splattael)
== Contributors
* Dennis Collective (https://github.com/denniscollective)
* Daniel Mack (https://github.com/zonque)
* nuisanceofcats (https://github.com/nuisanceofcats)
* Jason Staten (https://github.com/statianzo)
== License
MIT License[http://www.opensource.org/licenses/mit-license.php]
== TODO
None.