Nicholas Marriott
5a6ed33a3f
Don't leak string arguments and options.
2009-02-16 19:29:17 +00:00
Nicholas Marriott
a4f5d127e2
Don't leak top line of history and status screen.
2009-02-16 18:51:39 +00:00
Nicholas Marriott
0450b4a5d4
Move status prompt/message init and teardown into status.c.
2009-02-13 18:57:55 +00:00
Nicholas Marriott
03d531ebc6
Move sx,sy into tty rather than client.
2009-02-11 17:50:36 +00:00
Nicholas Marriott
b37399304f
Don't redraw status line unless it has actually changed. Stops extraneous
...
updates between clock/#() changes and doesn't require manual status-interval 0
when no updates are occuring.
2009-02-10 00:18:06 +00:00
Nicholas Marriott
b235815831
Don't close fds, so error message appears.
2009-02-08 16:26:43 +00:00
Nicholas Marriott
62d2ab3e68
Continue process if suspended.
2009-02-08 16:11:26 +00:00
Nicholas Marriott
871f57cb63
Ugh. Another inner loop variable reuse bug.
2009-01-29 20:13:12 +00:00
Nicholas Marriott
4428987e95
* Better support for at least the most common variant of mouse input: parse it and adjust for different panes. Also support mouse in window/session choice mode.
...
* Bring back the fancy window titles with session/window names: it is easy to work around problems with elinks (see FAQ).
2009-01-28 19:52:21 +00:00
Nicholas Marriott
fbbf46ef71
Close stdin/stdout/stderr.
2009-01-27 22:55:33 +00:00
Nicholas Marriott
c1726281c9
Handle cursor on/off better.
2009-01-27 21:39:15 +00:00
Nicholas Marriott
a239d80e88
Don't reuse index variable.
2009-01-27 19:40:56 +00:00
Nicholas Marriott
392e135349
Handle SIGTERM (and kill-server which uses it), a bit more neatly - tidy up
...
properly and print a nicer message. Same effect though :-)
2009-01-21 22:47:31 +00:00
Nicholas Marriott
2d15f59859
Try to change the window title to match the command running it in. This is done
...
by reading argv[0] from the process group leader of the group that owns the tty
(tcgetpgrp()). This can't be done portably so some OS-dependent code is
introduced (ugh); OpenBSD, FreeBSD and Linux are supported at the moment.
A new window flag, automatic-rename, is available: if this is set to off, the
window name is not changed. Specifying a name with the new-window, new-session
or rename-window commands will automatically set this flag to off for the
window in question. To disable it entirely set the option to off globally (setw
-g automatic-rename off).
2009-01-20 19:35:03 +00:00
Nicholas Marriott
5f6a351df7
Start the first client with a special socketpair so it is already known to the
...
server rather than playing silly games to get them synchronised before doing
anything.
Change attach-session to start the server.
2009-01-19 17:16:09 +00:00
Nicholas Marriott
a15f8fc4a6
Support command sequences separated by " ; ". Also clean up command printing.
2009-01-18 14:40:48 +00:00
Nicholas Marriott
8ea49712fd
suspend-client command and suspend client when ^Z key binding is used.
2009-01-18 12:09:42 +00:00
Nicholas Marriott
0fd60e90c4
Whoops, take out debugging.
2009-01-17 17:42:10 +00:00
Nicholas Marriott
f3edf28b7c
Don't die when last window either.
2009-01-17 17:36:55 +00:00
Nicholas Marriott
32e3759e94
Don't die on kill-window.
2009-01-16 00:12:58 +00:00
Nicholas Marriott
d29ca39e0e
Two new commands, choose-window and choose-session which work only when bound to a key and allow the window or session to be selected from a list.
2009-01-15 19:27:31 +00:00
Nicholas Marriott
4e2b640957
Unbreak prefix as binding.
2009-01-14 22:29:28 +00:00
Nicholas Marriott
97fef895f2
Rework the prefix-time stuff. The option is now call repeat-time and defaults to 500 ms. However, it only applies to a small subset of commands, currently: up-pane, down-pane, next-window, previous-window, resize-pane-up, resize-pane-down. These are the commands for which it is obviously useful, having it for everything else was just bloody annoying.
2009-01-14 22:13:30 +00:00
Nicholas Marriott
b4ac8c1342
Multiple window splitting.
2009-01-14 19:29:32 +00:00
Nicholas Marriott
f85559144f
kill-pane command.
2009-01-13 06:50:10 +00:00
Nicholas Marriott
60bfaf5bae
prefix-time option to allow multiple commands without additional prefixes.
2009-01-12 23:37:02 +00:00
Nicholas Marriott
20957e3aaa
Skip over now-invalid fds properly when a window is closed.
2009-01-12 19:36:53 +00:00
Nicholas Marriott
7cd3cf0ead
Make the window pane code handle panes of different sizes, and add a -l and -p arguments to split-window to specify the new window size in lines or as a percentage.
2009-01-12 18:22:47 +00:00
Nicholas Marriott
162bacdcd9
Window splitting. Two vertical panes fixed 50% each. This is a huge diff, still a couple of bugs (notably heap corruption somewhere causing segfault on exit).
2009-01-11 23:31:46 +00:00
Nicholas Marriott
e3feb067a5
Server locking. set-password and lock-server commands, plus automatic locking.
2009-01-11 00:48:42 +00:00
Nicholas Marriott
4d71164826
Pick up cwd from environment,.
2009-01-10 19:37:35 +00:00
Nicholas Marriott
88ab74ac20
Clock mode.
2009-01-10 19:35:40 +00:00
Nicholas Marriott
a1b43faa43
Trim spaces.
2009-01-10 01:51:22 +00:00
Nicholas Marriott
fb6c8ecae6
New command, server-info, to show server info + terminal details. Also tweak term stuff a bit.
2009-01-10 01:30:38 +00:00
Nicholas Marriott
d531dbb53a
Minor tidying; remove some old debugging messages.
2009-01-07 22:57:03 +00:00
Nicholas Marriott
9cddd796ff
Prompt history.
2009-01-06 15:37:15 +00:00
Nicholas Marriott
3bc3f632e1
Don't bother waking up when nothing is attached.
2008-12-13 18:06:08 +00:00
Nicholas Marriott
7a82e86827
Make window options work the same was as session options, add mode-fg/mode-bg options, force -g for global on set/show/setw/showw/
2008-12-08 16:19:51 +00:00
Nicholas Marriott
d0342f4a04
Ability to show window title on status line.
2008-12-05 20:04:06 +00:00
Nicholas Marriott
4e4aefaf7e
Don't try to redraw status line in prompt mode.
2008-11-04 20:55:58 +00:00
Nicholas Marriott
9e57336786
Style tweaks.
2008-09-29 16:03:27 +00:00
Nicholas Marriott
62457bce0b
Trim.
2008-09-26 06:45:28 +00:00
Nicholas Marriott
efe557313a
Internal screen data rewrite for better 256 colour/UTF-8 support.
2008-09-25 20:08:57 +00:00
Nicholas Marriott
f07cedf048
Rename some functions.
2008-09-10 19:15:06 +00:00
Nicholas Marriott
4235ddb4e8
Initial 256 colour support, lightly tested.
2008-09-08 17:40:51 +00:00
Nicholas Marriott
33aa931541
Support OS X by moving to gettimeofday(2) and adding poll compat from OpenSSH.
2008-08-28 17:45:30 +00:00
Nicholas Marriott
d90d646ca8
Zombie windows, requested by Will Maier.
2008-06-29 07:04:31 +00:00
Nicholas Marriott
c24d849fa4
Split options into a table to allow abbreviations.
2008-06-23 07:41:21 +00:00
Nicholas Marriott
c4d09c0511
Convert 0x70 -> 0x88.
2008-06-22 16:56:47 +00:00
Nicholas Marriott
4e4f71febb
Swap in new paste buffer code and add a couple more commands.
2008-06-20 17:31:48 +00:00
Nicholas Marriott
17fde823a8
Freeze output when showing display line, fixes problems when no status line.
2008-06-20 06:36:01 +00:00
Nicholas Marriott
e9000e4c34
Wake up every 100 ms instead of 500. Add note.
2008-06-19 23:24:40 +00:00
Nicholas Marriott
73d1558ed0
status-lines -> status, prefix-key -> prefix
2008-06-19 22:04:02 +00:00
Nicholas Marriott
c3b7a49cc1
Editable prompt. Not used for anything yet. More to come.
2008-06-19 19:40:35 +00:00
Nicholas Marriott
9ef5bdc7c0
Show status messages without blocking the server.
2008-06-19 18:27:55 +00:00
Nicholas Marriott
99df48d70f
Trimify.
2008-06-18 22:21:51 +00:00
Nicholas Marriott
19b7946a85
Start of Solaris port.
2008-06-18 19:34:50 +00:00
Nicholas Marriott
8873c79cbc
Set window title to current session. New options set-titles to disable.
2008-06-18 18:52:44 +00:00
Nicholas Marriott
0ede634802
s can be NULL, check for it.
2008-06-17 19:26:19 +00:00
Nicholas Marriott
557b6b86b0
Add a couple of extra option types, and implement show-options command.
2008-06-15 08:01:54 +00:00
Nicholas Marriott
0f403474aa
New window options: force-width and force-height. This will force a window to
...
an arbitrary width and height (0 for the default unlimited). This is neat for
emacs which doesn't have a sensible way to force hard wrapping at 80
columns. Also, don't try to be clever and use clr_eol when redrawing the
whole screen, it causes trouble since the redraw functions are used to draw
the blank areas too.
2008-06-14 16:47:20 +00:00
Nicholas Marriott
62d7ad2690
Clear blank area properly on redraw, and add a marker line below it.
2008-06-14 12:05:06 +00:00
Nicholas Marriott
d00914ff2b
Set socket mode +x if sessions attached.
2008-06-08 19:49:04 +00:00
Nicholas Marriott
2a2a9760ee
Read from pipe to allow client to confirm and socket be closed.
2008-06-07 07:33:03 +00:00
Nicholas Marriott
d51f075a4e
Use a socketpair to synchronise server startup.
2008-06-07 07:27:28 +00:00
Nicholas Marriott
958069575d
Clear clients with flag too.
2008-06-07 07:13:08 +00:00
Nicholas Marriott
77224aaf8b
Be more conservative about redrawing using flags.
2008-06-07 06:47:38 +00:00
Nicholas Marriott
713bad063a
Make status-interval actually changeable.
2008-06-07 06:13:21 +00:00
Nicholas Marriott
3cd4a08ffb
Make server exit when last session dies. Also fix window check for status activity redraw.
2008-06-06 17:55:27 +00:00
Nicholas Marriott
6a187bb8d3
Some Linux fixes; some code tidying. Don't redraw status bar so often.
2008-06-06 17:20:30 +00:00
Nicholas Marriott
0f95671fe3
Disable/enable window activity monitoring with set-window-option command.
2008-06-04 17:54:27 +00:00
Nicholas Marriott
14b9512546
Add activity monitoring, also invert items on taskbar which have activity.
2008-06-04 16:46:23 +00:00
Nicholas Marriott
031be1fc72
Don't crash when looking at NULL clients; also redraw everything on status change.
2008-06-04 05:47:46 +00:00
Nicholas Marriott
811e75da52
Status bar left and right strings (set with status-left and status-right), and automatic update (at interval set by status-interval).
2008-06-04 05:40:35 +00:00
Nicholas Marriott
9e6090a7a2
Per-session configuration options.
2008-06-03 21:42:37 +00:00
Nicholas Marriott
259dcbbc93
Daemonise before loading configuration.
2008-06-02 21:16:21 +00:00
Nicholas Marriott
a26f58c7c3
Last bits of basic configuration file. By default in ~/.tmux.conf or specified with -f. Just a list of tmux commands executed when the server is started and before and any session/window is created.
2008-06-02 21:08:36 +00:00
Nicholas Marriott
c7243b73cb
Move -s and -c down a level so handling them is the responsibility of the command (with some helper functions), rather than the top-level. This changes the action command syntax so that -s and -c must be after the command rather than before.
2008-06-02 18:08:17 +00:00
Nicholas Marriott
5569ff9723
Don't hang when window closes early; also add lots more debugging.
2008-05-31 20:04:15 +00:00
Nicholas Marriott
103748d6ad
Major reorganisation of screen handling.
2007-12-06 09:46:23 +00:00
Nicholas Marriott
6f142e9ac6
Don't try to access more windows if the session has been destroyed.
2007-12-04 20:25:17 +00:00
Nicholas Marriott
e0383f59bd
Better error messages with no server.
2007-12-01 11:10:33 +00:00
Nicholas Marriott
5cd1d459c5
Three-stage exit process so that [] message printing works on detach etc.
2007-11-27 20:01:30 +00:00
Nicholas Marriott
76c8a590db
Big internal reorganisation to move tty control into parent.
2007-11-27 19:23:34 +00:00
Nicholas Marriott
9a6e47cfa8
Initial history support.
2007-11-21 13:11:41 +00:00
Nicholas Marriott
4309d65475
realpath the socket path; also sprinkle some const.
2007-11-12 15:12:08 +00:00
Nicholas Marriott
08d9f46aae
Make it build/run on Linux.
2007-10-31 14:26:26 +00:00
Nicholas Marriott
941eab33e9
%u -> %d for indexes. Some lint fixes.
2007-10-30 10:59:43 +00:00
Nicholas Marriott
4ba3cf60be
Reorg window data structures. Add an intermediate data type (struct winlink) to hold index and make sessions hold a RB tree of them rather than a fixed array.
2007-10-26 12:29:07 +00:00
Nicholas Marriott
810a8846b7
A couple of close-on-exec flags.
2007-10-24 11:30:02 +00:00
Nicholas Marriott
f941d270ca
Save/restore errno, free pfd buffer.
2007-10-24 11:21:29 +00:00
Nicholas Marriott
3859c9f239
Free/close windows properly.
2007-10-24 11:05:59 +00:00
Nicholas Marriott
64713e0511
Tweak a couple of variable names.
2007-10-23 10:25:03 +00:00
Nicholas Marriott
25e94a0526
List client command.
2007-10-23 09:36:19 +00:00
Nicholas Marriott
cf77c80b93
FreeBSD's util.h is libutil.h.
2007-10-19 20:47:09 +00:00
Nicholas Marriott
de24fbb35c
Add a bell-action option.
2007-10-19 10:21:36 +00:00
Nicholas Marriott
ad4a7423c0
Mark windows in yellow on status line when bell.
2007-10-12 11:24:15 +00:00
Nicholas Marriott
5a3b92c2df
-d option to attach. Also fix CC in Makefile and make it build with DEBUG again.
2007-10-04 21:21:48 +00:00
Nicholas Marriott
5c54e0b7fd
Don't accept UINT_MAX as size if no clients/sessions.
2007-10-04 20:01:10 +00:00
Nicholas Marriott
1f9a8e70d9
Incomplete resize support.
2007-10-04 19:03:52 +00:00