mirror of
https://github.com/tmux/tmux.git
synced 2025-01-07 16:28:48 +00:00
Add a format for the name of the pane's mode, lets it be used as a
conditional for key bindings.
This commit is contained in:
parent
d52f579fd5
commit
5fee4638e0
3
format.c
3
format.c
@ -1371,6 +1371,9 @@ format_defaults_pane(struct format_tree *ft, struct window_pane *wp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
format_add(ft, "pane_in_mode", "%d", wp->screen != &wp->base);
|
format_add(ft, "pane_in_mode", "%d", wp->screen != &wp->base);
|
||||||
|
if (wp->mode != NULL)
|
||||||
|
format_add(ft, "pane_mode", "%s", wp->mode->name);
|
||||||
|
|
||||||
format_add(ft, "pane_synchronized", "%d",
|
format_add(ft, "pane_synchronized", "%d",
|
||||||
!!options_get_number(wp->window->options, "synchronize-panes"));
|
!!options_get_number(wp->window->options, "synchronize-panes"));
|
||||||
format_add(ft, "pane_search_string", "%s",
|
format_add(ft, "pane_search_string", "%s",
|
||||||
|
1
tmux.1
1
tmux.1
@ -3561,6 +3561,7 @@ The following variables are available, where appropriate:
|
|||||||
.It Li "pane_input_off" Ta "" Ta "If input to pane is disabled"
|
.It Li "pane_input_off" Ta "" Ta "If input to pane is disabled"
|
||||||
.It Li "pane_index" Ta "#P" Ta "Index of pane"
|
.It Li "pane_index" Ta "#P" Ta "Index of pane"
|
||||||
.It Li "pane_left" Ta "" Ta "Left of pane"
|
.It Li "pane_left" Ta "" Ta "Left of pane"
|
||||||
|
.It Li "pane_mode" Ta "" Ta "Name of pane mode, if any."
|
||||||
.It Li "pane_pid" Ta "" Ta "PID of first process in pane"
|
.It Li "pane_pid" Ta "" Ta "PID of first process in pane"
|
||||||
.It Li "pane_right" Ta "" Ta "Right of pane"
|
.It Li "pane_right" Ta "" Ta "Right of pane"
|
||||||
.It Li "pane_search_string" Ta "" Ta "Last search string in copy mode"
|
.It Li "pane_search_string" Ta "" Ta "Last search string in copy mode"
|
||||||
|
19
tmux.h
19
tmux.h
@ -689,15 +689,18 @@ struct screen_write_ctx {
|
|||||||
* right function to handle input and output.
|
* right function to handle input and output.
|
||||||
*/
|
*/
|
||||||
struct window_mode {
|
struct window_mode {
|
||||||
struct screen *(*init)(struct window_pane *);
|
const char *name;
|
||||||
void (*free)(struct window_pane *);
|
|
||||||
void (*resize)(struct window_pane *, u_int, u_int);
|
|
||||||
void (*key)(struct window_pane *, struct client *, struct session *,
|
|
||||||
key_code, struct mouse_event *);
|
|
||||||
|
|
||||||
const char *(*key_table)(struct window_pane *);
|
struct screen *(*init)(struct window_pane *);
|
||||||
void (*command)(struct window_pane *, struct client *,
|
void (*free)(struct window_pane *);
|
||||||
struct session *, struct args *, struct mouse_event *);
|
void (*resize)(struct window_pane *, u_int, u_int);
|
||||||
|
void (*key)(struct window_pane *, struct client *,
|
||||||
|
struct session *, key_code, struct mouse_event *);
|
||||||
|
|
||||||
|
const char *(*key_table)(struct window_pane *);
|
||||||
|
void (*command)(struct window_pane *, struct client *,
|
||||||
|
struct session *, struct args *,
|
||||||
|
struct mouse_event *);
|
||||||
};
|
};
|
||||||
#define WINDOW_MODE_TIMEOUT 180
|
#define WINDOW_MODE_TIMEOUT 180
|
||||||
|
|
||||||
|
@ -57,6 +57,8 @@ enum window_choose_input_type {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const struct window_mode window_choose_mode = {
|
const struct window_mode window_choose_mode = {
|
||||||
|
.name = "choose-mode",
|
||||||
|
|
||||||
.init = window_choose_init,
|
.init = window_choose_init,
|
||||||
.free = window_choose_free,
|
.free = window_choose_free,
|
||||||
.resize = window_choose_resize,
|
.resize = window_choose_resize,
|
||||||
|
@ -34,6 +34,8 @@ static void window_clock_timer_callback(int, short, void *);
|
|||||||
static void window_clock_draw_screen(struct window_pane *);
|
static void window_clock_draw_screen(struct window_pane *);
|
||||||
|
|
||||||
const struct window_mode window_clock_mode = {
|
const struct window_mode window_clock_mode = {
|
||||||
|
.name = "clock-mode",
|
||||||
|
|
||||||
.init = window_clock_init,
|
.init = window_clock_init,
|
||||||
.free = window_clock_free,
|
.free = window_clock_free,
|
||||||
.resize = window_clock_resize,
|
.resize = window_clock_resize,
|
||||||
|
@ -105,6 +105,8 @@ static void window_copy_move_mouse(struct mouse_event *);
|
|||||||
static void window_copy_drag_update(struct client *, struct mouse_event *);
|
static void window_copy_drag_update(struct client *, struct mouse_event *);
|
||||||
|
|
||||||
const struct window_mode window_copy_mode = {
|
const struct window_mode window_copy_mode = {
|
||||||
|
.name = "copy-mode",
|
||||||
|
|
||||||
.init = window_copy_init,
|
.init = window_copy_init,
|
||||||
.free = window_copy_free,
|
.free = window_copy_free,
|
||||||
.resize = window_copy_resize,
|
.resize = window_copy_resize,
|
||||||
|
Loading…
Reference in New Issue
Block a user