mirror of
https://github.com/vale981/bspwm
synced 2025-03-05 09:51:38 -05:00
Add a few subscriber events
This commit is contained in:
parent
639763c906
commit
dccb5e7be2
6 changed files with 61 additions and 19 deletions
|
@ -42,6 +42,7 @@ void focus_desktop(monitor_t *m, desktop_t *d)
|
|||
return;
|
||||
|
||||
PRINTF("focus desktop %s\n", d->name);
|
||||
put_status(SBSC_MASK_DESKTOP_FOCUS, "desktop_focus %s %s\n", m->name, d->name);
|
||||
|
||||
show_desktop(d);
|
||||
hide_desktop(mon->desk);
|
||||
|
@ -72,6 +73,7 @@ desktop_t *closest_desktop(monitor_t *m, desktop_t *d, cycle_dir_t dir, desktop_
|
|||
|
||||
void change_layout(monitor_t *m, desktop_t *d, layout_t l)
|
||||
{
|
||||
put_status(SBSC_MASK_DESKTOP_LAYOUT, "desktop_layout %s %s %s\n", m->name, d->name, l==LAYOUT_TILED?"tiled":"monocle");
|
||||
d->layout = l;
|
||||
arrange(m, d);
|
||||
if (d == m->desk)
|
||||
|
@ -83,6 +85,8 @@ void transfer_desktop(monitor_t *ms, monitor_t *md, desktop_t *d)
|
|||
if (ms == md)
|
||||
return;
|
||||
|
||||
put_status(SBSC_MASK_DESKTOP_TRANSFER, "desktop_transfer %s %s %s\n", ms->name, d->name, md->name);
|
||||
|
||||
desktop_t *dd = ms->desk;
|
||||
unlink_desktop(ms, d);
|
||||
insert_desktop(md, d);
|
||||
|
@ -148,7 +152,7 @@ void insert_desktop(monitor_t *m, desktop_t *d)
|
|||
void add_desktop(monitor_t *m, desktop_t *d)
|
||||
{
|
||||
PRINTF("add desktop %s\n", d->name);
|
||||
put_status(SBSC_MASK_DESKTOP_ADD, "desktop_add %s\n", d->name);
|
||||
put_status(SBSC_MASK_DESKTOP_ADD, "desktop_add %s %s\n", m->name, d->name);
|
||||
|
||||
insert_desktop(m, d);
|
||||
num_desktops++;
|
||||
|
@ -218,6 +222,7 @@ void swap_desktops(monitor_t *m1, desktop_t *d1, monitor_t *m2, desktop_t *d2)
|
|||
return;
|
||||
|
||||
PRINTF("swap desktops %s %s\n", d1->name, d2->name);
|
||||
put_status(SBSC_MASK_DESKTOP_SWAP, "desktop_swap %s %s %s %s\n", m1->name, d1->name, m2->name, d2->name);
|
||||
|
||||
bool d1_focused = (m1->desk == d1);
|
||||
bool d2_focused = (m2->desk == d2);
|
||||
|
|
33
messages.c
33
messages.c
|
@ -433,7 +433,7 @@ int cmd_desktop(char **args, int num)
|
|||
num--, args++;
|
||||
if (num < 1)
|
||||
return MSG_SYNTAX;
|
||||
put_status(SBSC_MASK_DESKTOP_RENAME, "desktop_rename %s %s\n", trg.desktop->name, *args);
|
||||
put_status(SBSC_MASK_DESKTOP_RENAME, "desktop_rename %s %s %s\n", trg.monitor->name, trg.desktop->name, *args);
|
||||
snprintf(trg.desktop->name, sizeof(trg.desktop->name), "%s", *args);
|
||||
ewmh_update_desktop_names();
|
||||
put_status(SBSC_MASK_REPORT);
|
||||
|
@ -554,6 +554,7 @@ int cmd_monitor(char **args, int num)
|
|||
return MSG_SYNTAX;
|
||||
desktop_t *d = trg.monitor->desk_head;
|
||||
while (num > 0 && d != NULL) {
|
||||
put_status(SBSC_MASK_DESKTOP_RENAME, "desktop_rename %s %s %s\n", trg.monitor->name, d->name, *args);
|
||||
snprintf(d->name, sizeof(d->name), "%s", *args);
|
||||
initialize_desktop(d);
|
||||
arrange(trg.monitor, d);
|
||||
|
@ -1162,22 +1163,44 @@ bool parse_subscriber_mask(char *s, subscriber_mask_t *mask)
|
|||
*mask = SBSC_MASK_WINDOW_MANAGE;
|
||||
} else if (streq("window_unmanage", s)) {
|
||||
*mask = SBSC_MASK_WINDOW_UNMANAGE;
|
||||
} else if (streq("window_urgent", s)) {
|
||||
*mask = SBSC_MASK_WINDOW_URGENT;
|
||||
} else if (streq("window_fullscreen", s)) {
|
||||
*mask = SBSC_MASK_WINDOW_FULLSCREEN;
|
||||
} else if (streq("window_swap", s)) {
|
||||
*mask = SBSC_MASK_WINDOW_SWAP;
|
||||
} else if (streq("window_transfer", s)) {
|
||||
*mask = SBSC_MASK_WINDOW_TRANSFER;
|
||||
} else if (streq("window_focus", s)) {
|
||||
*mask = SBSC_MASK_WINDOW_FOCUS;
|
||||
} else if (streq("window_resize", s)) {
|
||||
*mask = SBSC_MASK_WINDOW_RESIZE;
|
||||
} else if (streq("window_move", s)) {
|
||||
*mask = SBSC_MASK_WINDOW_MOVE;
|
||||
} else if (streq("window_state", s)) {
|
||||
*mask = SBSC_MASK_WINDOW_STATE;
|
||||
} else if (streq("desktop_add", s)) {
|
||||
*mask = SBSC_MASK_DESKTOP_ADD;
|
||||
} else if (streq("desktop_rename", s)) {
|
||||
*mask = SBSC_MASK_DESKTOP_RENAME;
|
||||
} else if (streq("desktop_remove", s)) {
|
||||
*mask = SBSC_MASK_DESKTOP_REMOVE;
|
||||
} else if (streq("desktop_swap", s)) {
|
||||
*mask = SBSC_MASK_DESKTOP_SWAP;
|
||||
} else if (streq("desktop_transfer", s)) {
|
||||
*mask = SBSC_MASK_DESKTOP_TRANSFER;
|
||||
} else if (streq("desktop_focus", s)) {
|
||||
*mask = SBSC_MASK_DESKTOP_FOCUS;
|
||||
} else if (streq("desktop_layout", s)) {
|
||||
*mask = SBSC_MASK_DESKTOP_LAYOUT;
|
||||
} else if (streq("desktop_state", s)) {
|
||||
*mask = SBSC_MASK_DESKTOP_STATE;
|
||||
} else if (streq("monitor_add", s)) {
|
||||
*mask = SBSC_MASK_MONITOR_ADD;
|
||||
} else if (streq("monitor_rename", s)) {
|
||||
*mask = SBSC_MASK_MONITOR_RENAME;
|
||||
} else if (streq("monitor_remove", s)) {
|
||||
*mask = SBSC_MASK_MONITOR_REMOVE;
|
||||
} else if (streq("monitor_focus", s)) {
|
||||
*mask = SBSC_MASK_MONITOR_FOCUS;
|
||||
} else if (streq("monitor_resize", s)) {
|
||||
*mask = SBSC_MASK_MONITOR_RESIZE;
|
||||
} else if (streq("report", s)) {
|
||||
*mask = SBSC_MASK_REPORT;
|
||||
} else {
|
||||
|
|
|
@ -132,6 +132,7 @@ void focus_monitor(monitor_t *m)
|
|||
return;
|
||||
|
||||
PRINTF("focus monitor %s\n", m->name);
|
||||
put_status(SBSC_MASK_MONITOR_FOCUS, "monitor_focus %s\n", m->name);
|
||||
|
||||
mon = m;
|
||||
|
||||
|
|
33
subscribe.h
33
subscribe.h
|
@ -30,17 +30,28 @@ typedef enum {
|
|||
SBSC_MASK_MONITOR_ADD = 1 << 1,
|
||||
SBSC_MASK_MONITOR_RENAME = 1 << 2,
|
||||
SBSC_MASK_MONITOR_REMOVE = 1 << 3,
|
||||
SBSC_MASK_DESKTOP_ADD = 1 << 4,
|
||||
SBSC_MASK_DESKTOP_RENAME = 1 << 5,
|
||||
SBSC_MASK_DESKTOP_REMOVE = 1 << 6,
|
||||
SBSC_MASK_WINDOW_MANAGE = 1 << 7,
|
||||
SBSC_MASK_WINDOW_UNMANAGE = 1 << 8,
|
||||
SBSC_MASK_WINDOW_URGENT = 1 << 9,
|
||||
SBSC_MASK_WINDOW_FULLSCREEN = 1 << 10,
|
||||
SBSC_MASK_MONITOR = (1 << 4) - (1 << 1),
|
||||
SBSC_MASK_DESKTOP = (1 << 7) - (1 << 4),
|
||||
SBSC_MASK_WINDOW = (1 << 11) - (1 << 7),
|
||||
SBSC_MASK_ALL = (1 << 11) - 1
|
||||
SBSC_MASK_MONITOR_FOCUS = 1 << 4,
|
||||
SBSC_MASK_MONITOR_RESIZE = 1 << 5,
|
||||
SBSC_MASK_DESKTOP_ADD = 1 << 6,
|
||||
SBSC_MASK_DESKTOP_RENAME = 1 << 7,
|
||||
SBSC_MASK_DESKTOP_REMOVE = 1 << 8,
|
||||
SBSC_MASK_DESKTOP_SWAP = 1 << 9,
|
||||
SBSC_MASK_DESKTOP_TRANSFER = 1 << 10,
|
||||
SBSC_MASK_DESKTOP_FOCUS = 1 << 11,
|
||||
SBSC_MASK_DESKTOP_LAYOUT = 1 << 12,
|
||||
SBSC_MASK_DESKTOP_STATE = 1 << 13,
|
||||
SBSC_MASK_WINDOW_MANAGE = 1 << 14,
|
||||
SBSC_MASK_WINDOW_UNMANAGE = 1 << 15,
|
||||
SBSC_MASK_WINDOW_SWAP = 1 << 16,
|
||||
SBSC_MASK_WINDOW_TRANSFER = 1 << 17,
|
||||
SBSC_MASK_WINDOW_FOCUS = 1 << 18,
|
||||
SBSC_MASK_WINDOW_RESIZE = 1 << 19,
|
||||
SBSC_MASK_WINDOW_MOVE = 1 << 20,
|
||||
SBSC_MASK_WINDOW_STATE = 1 << 21,
|
||||
SBSC_MASK_MONITOR = (1 << 6) - (1 << 1),
|
||||
SBSC_MASK_DESKTOP = (1 << 14) - (1 << 6),
|
||||
SBSC_MASK_WINDOW = (1 << 22) - (1 << 14),
|
||||
SBSC_MASK_ALL = (1 << 22) - 1
|
||||
} subscriber_mask_t;
|
||||
|
||||
subscriber_list_t *make_subscriber_list(FILE *stream, int field);
|
||||
|
|
2
tree.c
2
tree.c
|
@ -351,6 +351,7 @@ void focus_node(monitor_t *m, desktop_t *d, node_t *n)
|
|||
}
|
||||
|
||||
PRINTF("focus node %X\n", n->client->window);
|
||||
put_status(SBSC_MASK_WINDOW_FOCUS, "window_focus 0x%X\n", n->client->window);
|
||||
|
||||
history_add(m, d, n);
|
||||
set_input_focus(n);
|
||||
|
@ -1059,6 +1060,7 @@ bool transfer_node(monitor_t *ms, desktop_t *ds, node_t *ns, monitor_t *md, desk
|
|||
return false;
|
||||
|
||||
PRINTF("transfer node %X\n", ns->client->window);
|
||||
put_status(SBSC_MASK_WINDOW_TRANSFER, "window_transfer %s %s 0x%X %s %s 0x%X\n", ms->name, ds->name, ns->client->window, md->name, dd->name, nd!=NULL?nd->client->window:0);
|
||||
|
||||
bool focused = (ns == mon->desk->focus);
|
||||
bool active = (ns == ds->focus);
|
||||
|
|
4
window.c
4
window.c
|
@ -386,7 +386,7 @@ void set_fullscreen(node_t *n, bool value)
|
|||
client_t *c = n->client;
|
||||
|
||||
PRINTF("fullscreen %X: %s\n", c->window, BOOLSTR(value));
|
||||
put_status(SBSC_MASK_WINDOW_FULLSCREEN, "window_fullscreen %s 0x%X\n", ONOFFSTR(value), c->window);
|
||||
put_status(SBSC_MASK_WINDOW_STATE, "window_state fullscreen %s 0x%X\n", ONOFFSTR(value), c->window);
|
||||
|
||||
c->fullscreen = value;
|
||||
if (value)
|
||||
|
@ -487,7 +487,7 @@ void set_urgency(monitor_t *m, desktop_t *d, node_t *n, bool value)
|
|||
n->client->urgent = value;
|
||||
window_draw_border(n, d->focus == n, m == mon);
|
||||
|
||||
put_status(SBSC_MASK_WINDOW_URGENT, "window_urgent %s 0x%X\n", ONOFFSTR(value), n->client->window);
|
||||
put_status(SBSC_MASK_WINDOW_STATE, "window_state urgent %s 0x%X\n", ONOFFSTR(value), n->client->window);
|
||||
put_status(SBSC_MASK_REPORT);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue