mirror of
https://github.com/tmate-io/tmate.git
synced 2024-11-27 02:23:15 +01:00
prefix-time option to allow multiple commands without additional prefixes.
This commit is contained in:
parent
e099a78b4c
commit
60bfaf5bae
5
CHANGES
5
CHANGES
@ -1,5 +1,8 @@
|
|||||||
12 January 2009
|
12 January 2009
|
||||||
|
|
||||||
|
* Option to set prefix time, allowing multiple commands to be entered without
|
||||||
|
pressing the prefix key again, so long as they each typed within this time of
|
||||||
|
each other.
|
||||||
* Yet more hacks for key handling. Think it is just about working now.
|
* Yet more hacks for key handling. Think it is just about working now.
|
||||||
* Two commands, resize-pane-up and resize-pane-down to resize a pane.
|
* Two commands, resize-pane-up and resize-pane-down to resize a pane.
|
||||||
* Make the window pane code handle panes of different sizes, and add a -l
|
* Make the window pane code handle panes of different sizes, and add a -l
|
||||||
@ -884,7 +887,7 @@
|
|||||||
(including mutt, emacs). No status bar yet and no key remapping or other
|
(including mutt, emacs). No status bar yet and no key remapping or other
|
||||||
customisation.
|
customisation.
|
||||||
|
|
||||||
$Id: CHANGES,v 1.198 2009-01-12 22:48:00 nicm Exp $
|
$Id: CHANGES,v 1.199 2009-01-12 23:37:02 nicm Exp $
|
||||||
|
|
||||||
LocalWords: showw utf UTF fulvio ciriaco joshe OSC APC gettime abc DEF OA clr
|
LocalWords: showw utf UTF fulvio ciriaco joshe OSC APC gettime abc DEF OA clr
|
||||||
LocalWords: rivo nurges lscm Erdely eol smysession mysession ek dstname RB
|
LocalWords: rivo nurges lscm Erdely eol smysession mysession ek dstname RB
|
||||||
|
8
TODO
8
TODO
@ -61,12 +61,10 @@
|
|||||||
- tty.c is a bit ugly
|
- tty.c is a bit ugly
|
||||||
- document default-path
|
- document default-path
|
||||||
- document xterm-keys
|
- document xterm-keys
|
||||||
- document server-info
|
|
||||||
- document window options changes
|
- document window options changes
|
||||||
- document clock-mode
|
|
||||||
- document password/locking commands
|
- document password/locking commands
|
||||||
- document lock-after-time
|
|
||||||
- document panes and window splitting: split-window and switch-pane
|
- document panes and window splitting: split-window and switch-pane
|
||||||
|
- document prefix-time
|
||||||
- a command to display the status line briefly when it is turned off
|
- a command to display the status line briefly when it is turned off
|
||||||
- neww should support -k
|
- neww should support -k
|
||||||
- FAQ "Can I have some examples of cool things I can do with tmux?" -- linkw, more??
|
- FAQ "Can I have some examples of cool things I can do with tmux?" -- linkw, more??
|
||||||
@ -93,7 +91,6 @@
|
|||||||
swap-panes
|
swap-panes
|
||||||
close-pane
|
close-pane
|
||||||
move-pane (to window)
|
move-pane (to window)
|
||||||
pane resizing
|
|
||||||
>2 panes per window
|
>2 panes per window
|
||||||
- would be nice if tmux could be the shell
|
- would be nice if tmux could be the shell
|
||||||
- some sort of extension to command prompt so can do eg
|
- some sort of extension to command prompt so can do eg
|
||||||
@ -101,7 +98,4 @@
|
|||||||
bind r command-prompt 'renamew "%%"'
|
bind r command-prompt 'renamew "%%"'
|
||||||
which then asks for a string, substitutes %% in command and executes it
|
which then asks for a string, substitutes %% in command and executes it
|
||||||
- fix rxvt cursor fg issue (text under cursor has non-white fg)
|
- fix rxvt cursor fg issue (text under cursor has non-white fg)
|
||||||
- should have a repeat-command delay - if you execute a key binding then
|
|
||||||
press another key within the delay time it is treated as if it was anoth
|
|
||||||
key binding (ie the ^A prefix is implied)
|
|
||||||
- key handling sucks a bit and needs to be reworked
|
- key handling sucks a bit and needs to be reworked
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: cmd-set-option.c,v 1.51 2009-01-11 00:48:42 nicm Exp $ */
|
/* $Id: cmd-set-option.c,v 1.52 2009-01-12 23:37:02 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -50,12 +50,13 @@ const struct set_option_entry set_option_table[NSETOPTION] = {
|
|||||||
{ "buffer-limit", SET_OPTION_NUMBER, 1, INT_MAX, NULL },
|
{ "buffer-limit", SET_OPTION_NUMBER, 1, INT_MAX, NULL },
|
||||||
{ "default-command", SET_OPTION_STRING, 0, 0, NULL },
|
{ "default-command", SET_OPTION_STRING, 0, 0, NULL },
|
||||||
{ "default-path", SET_OPTION_STRING, 0, 0, NULL },
|
{ "default-path", SET_OPTION_STRING, 0, 0, NULL },
|
||||||
{ "display-time", SET_OPTION_NUMBER, 1, INT_MAX, NULL },
|
{ "display-time", SET_OPTION_NUMBER, 1, SHRT_MAX, NULL },
|
||||||
{ "history-limit", SET_OPTION_NUMBER, 0, SHRT_MAX, NULL },
|
{ "history-limit", SET_OPTION_NUMBER, 0, SHRT_MAX, NULL },
|
||||||
{ "lock-after", SET_OPTION_NUMBER, 0, INT_MAX, NULL },
|
{ "lock-after", SET_OPTION_NUMBER, 0, INT_MAX, NULL },
|
||||||
{ "message-bg", SET_OPTION_COLOUR, 0, 0, NULL },
|
{ "message-bg", SET_OPTION_COLOUR, 0, 0, NULL },
|
||||||
{ "message-fg", SET_OPTION_COLOUR, 0, 0, NULL },
|
{ "message-fg", SET_OPTION_COLOUR, 0, 0, NULL },
|
||||||
{ "prefix", SET_OPTION_KEY, 0, 0, NULL },
|
{ "prefix", SET_OPTION_KEY, 0, 0, NULL },
|
||||||
|
{ "prefix-time", SET_OPTION_NUMBER, 0, SHRT_MAX, NULL },
|
||||||
{ "set-titles", SET_OPTION_FLAG, 0, 0, NULL },
|
{ "set-titles", SET_OPTION_FLAG, 0, 0, NULL },
|
||||||
{ "status", SET_OPTION_FLAG, 0, 0, NULL },
|
{ "status", SET_OPTION_FLAG, 0, 0, NULL },
|
||||||
{ "status-bg", SET_OPTION_COLOUR, 0, 0, NULL },
|
{ "status-bg", SET_OPTION_COLOUR, 0, 0, NULL },
|
||||||
|
33
server.c
33
server.c
@ -1,4 +1,4 @@
|
|||||||
/* $Id: server.c,v 1.97 2009-01-12 19:36:53 nicm Exp $ */
|
/* $Id: server.c,v 1.98 2009-01-12 23:37:02 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -567,7 +567,16 @@ server_handle_client(struct client *c)
|
|||||||
{
|
{
|
||||||
struct winlink *wl = c->session->curw;
|
struct winlink *wl = c->session->curw;
|
||||||
struct window_pane *wp = wl->window->active;
|
struct window_pane *wp = wl->window->active;
|
||||||
int key, prefix, status;
|
struct timeval tv;
|
||||||
|
int key, prefix, status, xtimeout;
|
||||||
|
|
||||||
|
xtimeout = options_get_number(&c->session->options, "prefix-time");
|
||||||
|
if (xtimeout != 0) {
|
||||||
|
if (gettimeofday(&tv, NULL) != 0)
|
||||||
|
fatal("gettimeofday");
|
||||||
|
if (timercmp(&tv, &c->command_timer, >))
|
||||||
|
c->flags &= ~CLIENT_PREFIX;
|
||||||
|
}
|
||||||
|
|
||||||
/* Process keys. */
|
/* Process keys. */
|
||||||
prefix = options_get_number(&c->session->options, "prefix");
|
prefix = options_get_number(&c->session->options, "prefix");
|
||||||
@ -582,13 +591,19 @@ server_handle_client(struct client *c)
|
|||||||
if (server_locked)
|
if (server_locked)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (c->flags & CLIENT_PREFIX) {
|
if (key == prefix || c->flags & CLIENT_PREFIX) {
|
||||||
key_bindings_dispatch(key, c);
|
memcpy(&c->command_timer, &tv, sizeof c->command_timer);
|
||||||
c->flags &= ~CLIENT_PREFIX;
|
tv.tv_sec = 0;
|
||||||
continue;
|
tv.tv_usec = xtimeout * 1000L;
|
||||||
} else if (key == prefix)
|
timeradd(&c->command_timer, &tv, &c->command_timer);
|
||||||
c->flags |= CLIENT_PREFIX;
|
|
||||||
else
|
if (c->flags & CLIENT_PREFIX) {
|
||||||
|
key_bindings_dispatch(key, c);
|
||||||
|
if (xtimeout == 0)
|
||||||
|
c->flags &= ~CLIENT_PREFIX;
|
||||||
|
} else if (key == prefix)
|
||||||
|
c->flags |= CLIENT_PREFIX;
|
||||||
|
} else
|
||||||
window_pane_key(wp, c, key);
|
window_pane_key(wp, c, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
3
tmux.c
3
tmux.c
@ -1,4 +1,4 @@
|
|||||||
/* $Id: tmux.c,v 1.92 2009-01-11 00:48:42 nicm Exp $ */
|
/* $Id: tmux.c,v 1.93 2009-01-12 23:37:02 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -234,6 +234,7 @@ main(int argc, char **argv)
|
|||||||
options_set_number(&global_options, "message-bg", 3);
|
options_set_number(&global_options, "message-bg", 3);
|
||||||
options_set_number(&global_options, "message-fg", 0);
|
options_set_number(&global_options, "message-fg", 0);
|
||||||
options_set_number(&global_options, "prefix", META);
|
options_set_number(&global_options, "prefix", META);
|
||||||
|
options_set_number(&global_options, "prefix-time", 300);
|
||||||
options_set_number(&global_options, "set-titles", 1);
|
options_set_number(&global_options, "set-titles", 1);
|
||||||
options_set_number(&global_options, "lock-after-time", 1800);
|
options_set_number(&global_options, "lock-after-time", 1800);
|
||||||
options_set_number(&global_options, "status", 1);
|
options_set_number(&global_options, "status", 1);
|
||||||
|
5
tmux.h
5
tmux.h
@ -1,4 +1,4 @@
|
|||||||
/* $Id: tmux.h,v 1.227 2009-01-12 22:48:00 nicm Exp $ */
|
/* $Id: tmux.h,v 1.228 2009-01-12 23:37:02 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -741,6 +741,7 @@ struct client {
|
|||||||
|
|
||||||
struct tty tty;
|
struct tty tty;
|
||||||
struct timeval status_timer;
|
struct timeval status_timer;
|
||||||
|
struct timeval command_timer;
|
||||||
|
|
||||||
u_int sx;
|
u_int sx;
|
||||||
u_int sy;
|
u_int sy;
|
||||||
@ -887,7 +888,7 @@ struct set_option_entry {
|
|||||||
};
|
};
|
||||||
extern const struct set_option_entry set_option_table[];
|
extern const struct set_option_entry set_option_table[];
|
||||||
extern const struct set_option_entry set_window_option_table[];
|
extern const struct set_option_entry set_window_option_table[];
|
||||||
#define NSETOPTION 19
|
#define NSETOPTION 20
|
||||||
#define NSETWINDOWOPTION 12
|
#define NSETWINDOWOPTION 12
|
||||||
|
|
||||||
/* Edit keys. */
|
/* Edit keys. */
|
||||||
|
Loading…
Reference in New Issue
Block a user