Nicholas Marriott
d95274c5f2
Change mode key bindings from big switches into a set of tables. Rather than
...
lumping them all together, split editing keys from those used in choice/more
mode and those for copy/scroll mode.
Tidier and clearer, and the first step towards customisable mode keys.
2009-07-27 19:29:35 +00:00
Nicholas Marriott
13e29dd7b5
Get rid of empty mode_key_free function.
2009-07-27 18:51:46 +00:00
Nicholas Marriott
ad0aad21d5
Add a key to delete to end of line at the prompt (^K in emacs mode, C/D in vi).
...
From Kalle Olavi Niemitalo.
2009-07-27 12:11:11 +00:00
Nicholas Marriott
fc65da1eed
Draw UTF-8 characters under the selection correctly.
2009-07-27 11:33:21 +00:00
Nicholas Marriott
584eda8339
Change previous-word behavior to move to the beginning of the word (matches
...
emacs and vi). From Kalle Olavi Niemitalo.
2009-07-27 07:42:45 +00:00
Nicholas Marriott
639fbe0392
Detect backspace by looking at termios VERASE and translate it into \177 (which
...
matches screen's behaviour if not its termcap/terminfo entry). The terminfo kbs
cap is often wrong or missing so it can't be used, and just assuming \177 may
be wrong.
2009-07-26 21:42:08 +00:00
Nicholas Marriott
55d8c01c33
Calculate the space available for the prompt buffer and the cursor position
...
correctly, and make it work when the screen is not wide enough.
Noticed by Kalle Olavi Niemitalo.
2009-07-26 21:13:47 +00:00
Nicholas Marriott
6b3b852ebc
Go to the next if the current best process is replaced, don't keep comparing it
...
with itself. Also fix process name comparison.
2009-07-26 19:42:26 +00:00
Nicholas Marriott
34a82e7629
Make all messages sent between the client and server fixed size.
...
This is the first of two changes to make the protocol more resilient and less
sensitive to other changes in the code, particularly with commands. The client
now packs argv into a buffer and sends it to the server for parsing, rather
than doing it itself and sending the parsed command data.
As a side-effect this also removes a lot of now-unused command marshalling
code.
Mixing a server without this change and a client with or vice versa will cause
tmux to hang or crash, please ensure that tmux is entirely killed before
upgrading.
2009-07-26 12:58:44 +00:00
Nicholas Marriott
2bb89bc5bc
Set the active pane when respawning a window - fixes problems when respawning a
...
window with multiple panes.
2009-07-24 19:35:33 +00:00
Nicholas Marriott
133173850c
Use the full range of ACS line drawing characters to draw pane borders,
...
including intersections.
2009-07-24 19:14:38 +00:00
Nicholas Marriott
c6dac5c3c9
cmd_find_index should return -2 on error.
2009-07-24 18:46:40 +00:00
Nicholas Marriott
029599c02c
Simplify screen redrawing by drawing the border and background together rather
...
than border separately, and consolidating all the drawing characters into one
string.
2009-07-24 16:21:42 +00:00
Nicholas Marriott
1d1ea681f0
Accept lowercase c- and m- prefix as well as C- and M-.
2009-07-24 14:57:22 +00:00
Nicholas Marriott
5a1a106637
Permit commands to be bound to key presses without the prefix key first. The
...
new -n flag to bind-key and unbind-key sets or removes these bindings, and
list-key shows them in []s.
2009-07-24 14:52:47 +00:00
Stuart Henderson
ce4eb6559e
up-pane and down-pane no longer auto-repeat; update the description of
...
repeat-time accordingly. ok nicm@
if you prefer old behaviour;
bind -r Up up-pane
bind -r Down down-pane
2009-07-24 14:50:24 +00:00
Nicholas Marriott
4a04b498db
None of the server message functions return anything but 0, so make them all
...
void.
Also remove a leftover variable in client.c.
2009-07-23 21:19:11 +00:00
Nicholas Marriott
16e017d5a6
Tidy client message return slightly: convert flags into an enum, and merge
...
error string into struct client_ctx as well.
2009-07-23 20:24:27 +00:00
Nicholas Marriott
ba84ddcf8e
Redraw after starting selection to correctly remove any existing selection.
2009-07-23 17:03:47 +00:00
Nicholas Marriott
895171478f
Revert r1.5, I don't like it, new sessions should start off identically - with
...
the defaults.
2009-07-23 15:47:56 +00:00
Nicholas Marriott
e0d1954840
C-d is delete as well in emacs mode.
2009-07-23 13:44:02 +00:00
Nicholas Marriott
96a7cf1e6a
Both of cmdclient and curclient CAN be NULL - if the command is executed from
...
the configuration file. In this case, attach-session can't do much, and
new-session should just assume -d.
2009-07-23 12:33:48 +00:00
Nicholas Marriott
05b511f96a
If there is a current session, use its default path and working directory for
...
the initial window when creating a new session.
2009-07-22 22:47:43 +00:00
Nicholas Marriott
bb14c36a27
Pass a set of flags into client_init rather than just a start_server
...
variable. Only one flag now but more to come later.
2009-07-22 21:58:56 +00:00
Nicholas Marriott
5ee84436c8
window_add_pane cannot fail, so remove the unused cause argument and don't
...
bother to check for a NULL return.
2009-07-22 21:34:36 +00:00
Nicholas Marriott
f7df0bac96
Tidy the target parsing code a bit and correct the behaviour so that as before
...
a string with no colon as a target window is first looked up as a window then
as a session, noted by Iain Morgan.
Also attempt to clarify the description of the target specification in the man
page.
2009-07-22 21:23:29 +00:00
Nicholas Marriott
dd4a3b24fc
tty_write is relatively short and the only function left in tty-write.c so move
...
it into tty.c.
2009-07-22 20:56:58 +00:00
Nicholas Marriott
ddad0be5f7
More tty code tidying: move the saved cursor/region position (from before the
...
screen was updated) out of struct screen and into struct tty_ctx.
2009-07-22 20:53:38 +00:00
Nicholas Marriott
bb4bab4c26
log_debug3 no longer exists, change the sole use in GRID_DEBUG to log_debug2.
2009-07-22 18:06:58 +00:00
Nicholas Marriott
2ec2837daa
enum tty_cmd is only used as an index into the array of command function
...
pointers, so remove it and use the function pointers directly to represent
themselves.
2009-07-22 18:02:23 +00:00
Nicholas Marriott
6a309c53a8
There are relatively few arguments to tty_cmd_* functions now, so tidy them up
...
by using a struct rather than hiding everything with varargs.
2009-07-22 16:45:31 +00:00
Nicholas Marriott
5bd72ec629
tty_cmd_raw is only used once, for raw UTF-8 output, so rename it to
...
tty_cmd_utf8character and eliminate the size argument.
2009-07-22 15:55:32 +00:00
Nicholas Marriott
e43b6a2dd2
Adjust field width to fit longest key when listing.
2009-07-21 22:41:00 +00:00
Nicholas Marriott
3eb6080de3
Remove leftover debug logging of password.
2009-07-21 21:20:07 +00:00
Nicholas Marriott
76a9d98562
Make some functions which return unused values void (mostly found by lint) and
...
tweak a redundant expression in window_pane_set_mode.
2009-07-21 19:54:22 +00:00
Nicholas Marriott
6945e86fd7
Nix a few unused attributes on arguments which are no longer unused.
2009-07-21 18:52:03 +00:00
Nicholas Marriott
044ebf1952
Remove a couple of unused functions and fix a type ("FALLTHOUGH"), found by
...
lint.
2009-07-21 18:40:30 +00:00
Nicholas Marriott
b9a179089b
__progname is not const, pointed out by deraadt.
2009-07-21 18:38:52 +00:00
Nicholas Marriott
725938fb85
Tidy up keys: use an enum for the key codes, and remove the macros which just
...
wrap flag sets/clears/tests.
2009-07-21 17:57:29 +00:00
Nicholas Marriott
c6012aaabc
Now that #P could be in the status line, flag it for redraw when the active
...
pane changes.
2009-07-20 19:35:33 +00:00
Nicholas Marriott
c0862dae45
Tweak unbind-key language very slightly.
2009-07-20 15:51:55 +00:00
Nicholas Marriott
54afcfbfb4
Display the number of failed password attempts (if any) when the server is
...
locked. From Tom Doherty.
2009-07-20 14:37:51 +00:00
Nicholas Marriott
b292f71c49
Add a status-justify option to allow the window list in the status line to be
...
positioned at the left, centre, or right.
2009-07-20 14:32:09 +00:00
Nicholas Marriott
e32e0d5692
New options, window-status-current-{fg,bg,attr}, to set the fg, bg and
...
attributes with which the current window is shown in the status line. From
Johan Friis, thanks.
2009-07-20 09:15:18 +00:00
Nicholas Marriott
73732ffa05
Kill some dead stores and fix a null pointer deref, found by clang.
2009-07-20 07:31:10 +00:00
Nicholas Marriott
ff2cc0e387
Move the offsets as well when swapping panes.
2009-07-20 07:13:31 +00:00
Jason McIntyre
550b855c9d
tweak previous;
2009-07-19 14:07:47 +00:00
Nicholas Marriott
6036bdd06c
Improved layout code.
...
Each window now has a tree of layout cells associated with it. In this tree,
each node is either a horizontal or vertical cell containing a list of other
cells running from left-to-right or top-to-bottom, or a leaf cell which is
associated with a pane.
The major functional changes are:
- panes may now be split arbitrarily both horizontally (splitw -h, C-b %) and
vertically (splitw -v, C-b ");
- panes may be resized both horizontally and vertically (resizep -L/-R/-U/-D,
bound to C-b left/right/up/down and C-b M-left/right/up/down);
- layouts are now applied and then may be modified by resizing or splitting
panes, rather than being fixed and reapplied when the window is resized or
panes are added;
- manual-vertical layout is no longer necessary, and active-only layout is gone
(but may return in future);
- the main-pane layouts now reduce the size of the main pane to fit all panes
if possible.
Thanks to all who tested.
2009-07-19 13:21:40 +00:00
Nicholas Marriott
fc6a65c620
Add three new session options: visual-activity, visual-bell, visual-content. If
...
these are enabled (and the monitor-activity, bell-actio and monitor-content
options are configurated appropriately), when activity, a bell, or content is
detected, a message is shown.
Also tidy up the bell/activity/content code in server.c slightly and fix a
couple of errors.
2009-07-18 14:59:25 +00:00
Nicholas Marriott
0ca6f667e3
Make it so using kill-pane to destroy the last pane in a window destroys the
...
window instead of being an error.
2009-07-17 20:37:03 +00:00