Ich habe mal ein kleines GTK-Beispiel zusammengehackt:
#include <gtk/gtk.h>
static int
close_window(GtkWidget *window) {
gtk_widget_destroy(window);
gtk_main_quit();
return FALSE;
}
int main(int argc, char **argv) {
if (argc <= 1)
return 0;
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP);
GtkWidget *label = gtk_label_new(argv[1]);
gtk_container_add(GTK_CONTAINER(window), label);
gtk_window_set_keep_above(GTK_WINDOW(window), TRUE);
g_object_set(window,
"accept-focus", FALSE,
"resizable", FALSE,
"decorated", FALSE,
"deletable", FALSE,
"skip-pager-hint", TRUE,
"skip-taskbar-hint", TRUE,
NULL);
gtk_widget_show_all(window);
int x, y, w, h, d;
gdk_window_get_geometry(window->window, &x, &y, &w, &h, &d);
GdkScreen *screen = gdk_screen_get_default();
int sw = gdk_screen_get_width(screen);
int sh = gdk_screen_get_height(screen);
gtk_window_move(GTK_WINDOW(window), sw - w, sh - h);
g_timeout_add(2000, (GSourceFunc)close_window, window);
gtk_main();
return 0;
}
Komplieren kannst du es mit
gcc `pkg-config --cflags --libs gtk+-2.0` dateiname -o notify
und aufrufen dann beispielsweise mit ./notify "Du hast 37 neue mails".