#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>
}
sasprintf(&res, "bindsym %s%s%s %s%s\n", (modifiers == NULL ? "" : modrep), (modifiers == NULL ? "" : "+"), str, (release == NULL ? "" : release), get_string("command"));
clear_stack();
+ free(modrep);
return res;
}
#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;
/* Strip off the highest bit (set if the event is generated) */
int type = (event->response_type & 0x7F);
+ /* TODO: handle mappingnotify */
switch (type) {
case XCB_KEY_PRESS:
handle_key_press(NULL, conn, (xcb_key_press_event_t *)event);
break;
- /* TODO: handle mappingnotify */
-
case XCB_BUTTON_PRESS:
handle_button_press((xcb_button_press_event_t *)event);
break;