version 1.7, 2017/06/30 22:24:08 |
version 1.8, 2017/08/09 11:43:45 |
|
|
|
|
#define WINDOW_CLIENT_DEFAULT_COMMAND "detach-client -t '%%'" |
#define WINDOW_CLIENT_DEFAULT_COMMAND "detach-client -t '%%'" |
|
|
|
#define WINDOW_CLIENT_DEFAULT_FORMAT \ |
|
"session #{session_name} " \ |
|
"(#{client_width}x#{client_height}, #{t:client_activity})" |
|
|
const struct window_mode window_client_mode = { |
const struct window_mode window_client_mode = { |
.name = "client-mode", |
.name = "client-mode", |
|
|
|
|
|
|
struct window_client_modedata { |
struct window_client_modedata { |
struct mode_tree_data *data; |
struct mode_tree_data *data; |
|
char *format; |
char *command; |
char *command; |
|
|
struct window_client_itemdata **item_list; |
struct window_client_itemdata **item_list; |
|
|
struct window_client_itemdata *item; |
struct window_client_itemdata *item; |
u_int i; |
u_int i; |
struct client *c; |
struct client *c; |
char *tim, *text, *cp; |
char *text, *cp; |
|
|
for (i = 0; i < data->item_size; i++) |
for (i = 0; i < data->item_size; i++) |
window_client_free_item(data->item_list[i]); |
window_client_free_item(data->item_list[i]); |
|
|
free(cp); |
free(cp); |
} |
} |
|
|
tim = ctime(&c->activity_time.tv_sec); |
text = format_single(NULL, data->format, c, NULL, NULL, NULL); |
*strchr(tim, '\n') = '\0'; |
|
|
|
xasprintf(&text, "session %s (%ux%u, %s)", c->session->name, |
|
c->tty.sx, c->tty.sy, tim); |
|
mode_tree_add(data->data, NULL, item, (uint64_t)c, c->name, |
mode_tree_add(data->data, NULL, item, (uint64_t)c, c->name, |
text, -1); |
text, -1); |
free(text); |
free(text); |
|
|
|
|
wp->modedata = data = xcalloc(1, sizeof *data); |
wp->modedata = data = xcalloc(1, sizeof *data); |
|
|
|
if (args == NULL || !args_has(args, 'F')) |
|
data->format = xstrdup(WINDOW_CLIENT_DEFAULT_FORMAT); |
|
else |
|
data->format = xstrdup(args_get(args, 'F')); |
if (args == NULL || args->argc == 0) |
if (args == NULL || args->argc == 0) |
data->command = xstrdup(WINDOW_CLIENT_DEFAULT_COMMAND); |
data->command = xstrdup(WINDOW_CLIENT_DEFAULT_COMMAND); |
else |
else |
|
|
window_client_free_item(data->item_list[i]); |
window_client_free_item(data->item_list[i]); |
free(data->item_list); |
free(data->item_list); |
|
|
|
free(data->format); |
free(data->command); |
free(data->command); |
|
|
free(data); |
free(data); |
} |
} |
|
|