Desktop-Notifications mit Gtk2::Notify und Log::Dispatch::Gtk2::Notify

Veröffentlicht von Thomas Fahle am (Permalink)

Dank Gtk2::Notify von Florian Ragwitz ist sehr einfach Desktop-Notifications via D-Bus in eigene Programme einzubinden.

Log::Dispatch::Gtk2::Notify (ebenfalls von von Florian Ragwitz) vereinfacht die Ausgabe von Log-Meldungen als Desktop-Notifikation.

Gtk2::Notify

 

Desktop-Notify-01.png
#!/usr/bin/perl
use warnings;
use strict;

use Gtk2::Notify -init, "app_name";

my $summary = 'Gtk2::Notify';

my $message = 'Hallo Welt!';

my $icon = '/usr/share/app-install/icons/podbrowser.png';

my $attach_widget = undef;

my $notification = Gtk2::Notify->new($summary, $message, $icon, $attach_widget);

$notification->show;

Der Parameter summary erzeugt die Überschrift der Notification, message enthält die eigentliche Nachricht. Die Notification bleibt für 5 Sekunden auf dem Bildschirm stehen. Der optionale Parameter icon bindet ein Icon neben der Nachricht ein. Da die Notification einfach auf dem Desktop angezeigt werden soll und nicht an einem bestimmten geöffnetem Fenster, wird der Parameter attach_widget einfach auf undef gesetzt.

 

Log::Dispatch::Gtk2::Notify

Log::Dispatch::Gtk2::Notify wird als (weiteres) Ausgabeziel zu Log::Dispatch hinzugefügt. Je nach Level der Log-Nachricht wird automatisch ein passendes Icon in die Notification eingefügt.

Desktop-Notify-02.png
#!/usr/bin/perl
use strict;
use warnings;
use Log::Dispatch::Gtk2::Notify;

my $notify = Log::Dispatch::Gtk2::Notify->new(
        name      => 'notify',
        min_level => 'debug',
        app_name  => 'MyApp',
        title     => 'Important Message',
    );

$notify->log(level => 'alert', message => 'Hello, World!');

$notify->log(level => 'notice', message => 'Hello, World!');
Desktop-Notify-03.png

 

Siehe auch:

 

Weitere Posts