Merge pull request #3374 from orestisf1993/startup-notification
Support startup-notification in i3-nagbar & i3-config-wizard
This commit is contained in:
commit
08a53611f9
|
@ -357,10 +357,12 @@ i3_msg_i3_msg_SOURCES = \
|
||||||
|
|
||||||
i3_nagbar_i3_nagbar_CFLAGS = \
|
i3_nagbar_i3_nagbar_CFLAGS = \
|
||||||
$(AM_CFLAGS) \
|
$(AM_CFLAGS) \
|
||||||
|
$(LIBSN_CFLAGS) \
|
||||||
$(libi3_CFLAGS)
|
$(libi3_CFLAGS)
|
||||||
|
|
||||||
i3_nagbar_i3_nagbar_LDADD = \
|
i3_nagbar_i3_nagbar_LDADD = \
|
||||||
$(libi3_LIBS) \
|
$(libi3_LIBS) \
|
||||||
|
$(LIBSN_LIBS) \
|
||||||
$(XCB_UTIL_CURSOR_LIBS)
|
$(XCB_UTIL_CURSOR_LIBS)
|
||||||
|
|
||||||
i3_nagbar_i3_nagbar_SOURCES = \
|
i3_nagbar_i3_nagbar_SOURCES = \
|
||||||
|
@ -414,10 +416,12 @@ i3bar_i3bar_SOURCES = \
|
||||||
i3_config_wizard_i3_config_wizard_CFLAGS = \
|
i3_config_wizard_i3_config_wizard_CFLAGS = \
|
||||||
$(AM_CFLAGS) \
|
$(AM_CFLAGS) \
|
||||||
$(libi3_CFLAGS) \
|
$(libi3_CFLAGS) \
|
||||||
|
$(LIBSN_CFLAGS) \
|
||||||
$(XKBCOMMON_CFLAGS)
|
$(XKBCOMMON_CFLAGS)
|
||||||
|
|
||||||
i3_config_wizard_i3_config_wizard_LDADD = \
|
i3_config_wizard_i3_config_wizard_LDADD = \
|
||||||
$(libi3_LIBS) \
|
$(libi3_LIBS) \
|
||||||
|
$(LIBSN_LIBS) \
|
||||||
$(XCB_UTIL_KEYSYMS_LIBS) \
|
$(XCB_UTIL_KEYSYMS_LIBS) \
|
||||||
$(XKBCOMMON_LIBS)
|
$(XKBCOMMON_LIBS)
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,9 @@
|
||||||
#include <xkbcommon/xkbcommon.h>
|
#include <xkbcommon/xkbcommon.h>
|
||||||
#include <xkbcommon/xkbcommon-x11.h>
|
#include <xkbcommon/xkbcommon-x11.h>
|
||||||
|
|
||||||
|
#define SN_API_NOT_YET_FROZEN 1
|
||||||
|
#include <libsn/sn-launchee.h>
|
||||||
|
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
#include <X11/keysym.h>
|
#include <X11/keysym.h>
|
||||||
#include <X11/XKBlib.h>
|
#include <X11/XKBlib.h>
|
||||||
|
@ -293,6 +296,7 @@ static char *next_state(const cmdp_token *token) {
|
||||||
}
|
}
|
||||||
sasprintf(&res, "bindsym %s%s%s %s%s\n", (modifiers == NULL ? "" : modrep), (modifiers == NULL ? "" : "+"), str, (release == NULL ? "" : release), get_string("command"));
|
sasprintf(&res, "bindsym %s%s%s %s%s\n", (modifiers == NULL ? "" : modrep), (modifiers == NULL ? "" : "+"), str, (release == NULL ? "" : release), get_string("command"));
|
||||||
clear_stack();
|
clear_stack();
|
||||||
|
free(modrep);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -846,6 +850,10 @@ int main(int argc, char *argv[]) {
|
||||||
#include "atoms.xmacro"
|
#include "atoms.xmacro"
|
||||||
#undef 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_screen = xcb_aux_get_screen(conn, screen);
|
||||||
root = root_screen->root;
|
root = root_screen->root;
|
||||||
|
|
||||||
|
@ -878,6 +886,7 @@ int main(int argc, char *argv[]) {
|
||||||
0, /* back pixel: black */
|
0, /* back pixel: black */
|
||||||
XCB_EVENT_MASK_EXPOSURE |
|
XCB_EVENT_MASK_EXPOSURE |
|
||||||
XCB_EVENT_MASK_BUTTON_PRESS});
|
XCB_EVENT_MASK_BUTTON_PRESS});
|
||||||
|
sn_launchee_context_setup_window(sncontext, win);
|
||||||
|
|
||||||
/* Map the window (make it visible) */
|
/* Map the window (make it visible) */
|
||||||
xcb_map_window(conn, win);
|
xcb_map_window(conn, win);
|
||||||
|
@ -939,6 +948,11 @@ int main(int argc, char *argv[]) {
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Startup complete. */
|
||||||
|
sn_launchee_context_complete(sncontext);
|
||||||
|
sn_launchee_context_unref(sncontext);
|
||||||
|
sn_display_unref(sndisplay);
|
||||||
|
|
||||||
xcb_flush(conn);
|
xcb_flush(conn);
|
||||||
|
|
||||||
xcb_generic_event_t *event;
|
xcb_generic_event_t *event;
|
||||||
|
|
|
@ -32,6 +32,9 @@
|
||||||
#include <xcb/randr.h>
|
#include <xcb/randr.h>
|
||||||
#include <xcb/xcb_cursor.h>
|
#include <xcb/xcb_cursor.h>
|
||||||
|
|
||||||
|
#define SN_API_NOT_YET_FROZEN 1
|
||||||
|
#include <libsn/sn-launchee.h>
|
||||||
|
|
||||||
#include "i3-nagbar.h"
|
#include "i3-nagbar.h"
|
||||||
|
|
||||||
/** This is the equivalent of XC_left_ptr. I’m not sure why xcb doesn’t have a
|
/** This is the equivalent of XC_left_ptr. I’m not sure why xcb doesn’t have a
|
||||||
|
@ -415,6 +418,10 @@ int main(int argc, char *argv[]) {
|
||||||
#include "atoms.xmacro"
|
#include "atoms.xmacro"
|
||||||
#undef 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_screen = xcb_aux_get_screen(conn, screens);
|
||||||
root = root_screen->root;
|
root = root_screen->root;
|
||||||
|
|
||||||
|
@ -484,6 +491,7 @@ int main(int argc, char *argv[]) {
|
||||||
XCB_EVENT_MASK_BUTTON_PRESS |
|
XCB_EVENT_MASK_BUTTON_PRESS |
|
||||||
XCB_EVENT_MASK_BUTTON_RELEASE,
|
XCB_EVENT_MASK_BUTTON_RELEASE,
|
||||||
cursor});
|
cursor});
|
||||||
|
sn_launchee_context_setup_window(sncontext, win);
|
||||||
|
|
||||||
/* Map the window (make it visible) */
|
/* Map the window (make it visible) */
|
||||||
xcb_map_window(conn, win);
|
xcb_map_window(conn, win);
|
||||||
|
@ -544,6 +552,11 @@ int main(int argc, char *argv[]) {
|
||||||
/* Initialize the drawable bar */
|
/* Initialize the drawable bar */
|
||||||
draw_util_surface_init(conn, &bar, win, get_visualtype(root_screen), win_pos.width, win_pos.height);
|
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 */
|
/* Grab the keyboard to get all input */
|
||||||
xcb_flush(conn);
|
xcb_flush(conn);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue