i3_nagbar_i3_nagbar_CFLAGS = \
$(AM_CFLAGS) \
+ $(LIBSN_CFLAGS) \
$(libi3_CFLAGS)
i3_nagbar_i3_nagbar_LDADD = \
$(libi3_LIBS) \
+ $(LIBSN_LIBS) \
$(XCB_UTIL_CURSOR_LIBS)
i3_nagbar_i3_nagbar_SOURCES = \
i3_config_wizard_i3_config_wizard_CFLAGS = \
$(AM_CFLAGS) \
$(libi3_CFLAGS) \
+ $(LIBSN_CFLAGS) \
$(XKBCOMMON_CFLAGS)
i3_config_wizard_i3_config_wizard_LDADD = \
$(libi3_LIBS) \
+ $(LIBSN_LIBS) \
$(XCB_UTIL_KEYSYMS_LIBS) \
$(XKBCOMMON_LIBS)
#include <xkbcommon/xkbcommon.h>
#include <xkbcommon/xkbcommon-x11.h>
+#define SN_API_NOT_YET_FROZEN 1
+#include <libsn/sn-launchee.h>
+
#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/XKBlib.h>
#include "atoms.xmacro"
#undef xmacro
+ /* Init startup notification. */
+ SnDisplay *sndisplay = sn_xcb_display_new(conn, NULL, NULL);
+ SnLauncheeContext *sncontext = sn_launchee_context_new_from_environment(sndisplay, screen);
+
root_screen = xcb_aux_get_screen(conn, screen);
root = root_screen->root;
0, /* back pixel: black */
XCB_EVENT_MASK_EXPOSURE |
XCB_EVENT_MASK_BUTTON_PRESS});
+ sn_launchee_context_setup_window(sncontext, win);
/* Map the window (make it visible) */
xcb_map_window(conn, win);
exit(-1);
}
+ /* Startup complete. */
+ sn_launchee_context_complete(sncontext);
+ sn_launchee_context_unref(sncontext);
+ sn_display_unref(sndisplay);
+
xcb_flush(conn);
xcb_generic_event_t *event;
#include <xcb/randr.h>
#include <xcb/xcb_cursor.h>
+#define SN_API_NOT_YET_FROZEN 1
+#include <libsn/sn-launchee.h>
+
#include "i3-nagbar.h"
/** This is the equivalent of XC_left_ptr. I’m not sure why xcb doesn’t have a
#include "atoms.xmacro"
#undef xmacro
+ /* Init startup notification. */
+ SnDisplay *sndisplay = sn_xcb_display_new(conn, NULL, NULL);
+ SnLauncheeContext *sncontext = sn_launchee_context_new_from_environment(sndisplay, screens);
+
root_screen = xcb_aux_get_screen(conn, screens);
root = root_screen->root;
XCB_EVENT_MASK_BUTTON_PRESS |
XCB_EVENT_MASK_BUTTON_RELEASE,
cursor});
+ sn_launchee_context_setup_window(sncontext, win);
/* Map the window (make it visible) */
xcb_map_window(conn, win);
/* Initialize the drawable bar */
draw_util_surface_init(conn, &bar, win, get_visualtype(root_screen), win_pos.width, win_pos.height);
+ /* Startup complete. */
+ sn_launchee_context_complete(sncontext);
+ sn_launchee_context_unref(sncontext);
+ sn_display_unref(sndisplay);
+
/* Grab the keyboard to get all input */
xcb_flush(conn);