Nicholas Marriott
9f0653386b
$Id$.
2009-07-01 23:06:32 +00:00
Nicholas Marriott
6ce734cec0
After logging (if enabled) is switched to file, there is no reason to keep
...
stdin/stdout/stderr active, so dup them to /dev/null.
2009-06-26 22:13:57 +00:00
Nicholas Marriott
de2ea2d178
Status line fixes: don't truncate status-right now the length calculation is
...
done for UTF-8, limit to the maximum length correctly when printing, and always
print a space even if the left string is longer than the width available.
2009-06-26 15:34:12 +00:00
no_author
3fcbe1e27b
Remove some dead assignments, found by sthen with clang.
2009-06-26 15:32:00 +00:00
Nicholas Marriott
bb459beb03
Whitespace and more syncing.
2009-06-25 16:34:50 +00:00
Nicholas Marriott
a5830b9603
Restore $Id$ and add script to do so.
2009-06-25 16:21:32 +00:00
Nicholas Marriott
f7a9eb46fc
Change find-window and monitor-content to use fnmatch(3). For convenience and
...
compatibility, *s are implicitly added at the start and end of the pattern.
2009-06-25 16:04:24 +00:00
Nicholas Marriott
944520b3a8
Make remain-on-exit work again when there is only one pane left, which was
...
broken sometime during the pane/layout changes. Reported/tested by Iain Morgan,
thanks.
2009-06-25 16:01:42 +00:00
Tiago Cunha
80af85a102
- New window option monitor-content to search for a string in a window, and
...
highlight the status line if it matches.
- To make this possible, the function cmd_find_window_search from
cmd-find-window.c had to be moved to window.c and renamed window_pane_search.
- While there use three new functions in server.c to check for bell, activity,
and content, to avoid too much nesting.
2009-05-19 13:32:55 +00:00
Nicholas Marriott
0abd8ea84f
(void).
2009-05-19 08:48:49 +00:00
Nicholas Marriott
03af7c99b5
Recreate server socket on SIGUSR1, per SF feature request 2792533.
2009-05-16 10:02:51 +00:00
Nicholas Marriott
4b64bd7b01
It is HAVE_PTY_H, also add a cast to shut gcc up.
2009-05-14 07:58:38 +00:00
Nicholas Marriott
c8cf438d44
Rename all feature flags to HAVE_* and move out of makefiles into a configure
...
script which must be run before building.
Still two makefiles but they are a hell of a lot simpler.
HAVE_* also will make it easier to move to $buildsystem if necessary later.
2009-05-13 23:27:00 +00:00
Nicholas Marriott
143aa718e5
Space trimmage mega-diff.
2009-05-04 17:58:27 +00:00
Nicholas Marriott
9164dd63e7
Only worry about complete seconds for status line update. Also reduce poll interval and de-magic-number it.
2009-05-02 08:34:39 +00:00
Nicholas Marriott
a6f2d82335
Use a (pre)randomised binary tree for UTF-8 character widths. Probably overkill
...
but meh.
2009-04-30 20:54:53 +00:00
Nicholas Marriott
844f61677d
Update TODO; fix a comment; better screenshot.
2009-04-16 10:59:59 +00:00
Nicholas Marriott
dbf52facd2
Change scroll/pane redraws to only redraw the single pane affected rather than
...
the entire window.
2009-04-02 21:08:15 +00:00
Nicholas Marriott
84cde92c8f
If redrawing the region would mean redrawing > half the pane, just schedule to
...
redraw the entire window. Also add a flag to skip updating the window any
further if it is scheduled to be redrawn. This has the effect of batching
multiple redraws together.
2009-04-02 20:30:23 +00:00
Nicholas Marriott
91bc6836f7
- Allow switching to hidden windows (for active-only layout).
...
- Don't update unnecessarily for other layouts when changing active pane doesn't matter.
2009-04-01 21:10:08 +00:00
Nicholas Marriott
b6450b167b
Basic horizontal splitting and layout management. Still some redraw and other
...
issues - particularly, don't mix with manual pane resizing and be careful when
viewing from multiple clients; generally cycling the layout a few times will
fix most problems. Getting this in for testing while I think about how to deal
with manual mode.
Split window as normal and cycle the layouts with C-b space. Some of the
layouts will work better when swap-pane comes along.
2009-04-01 18:21:42 +00:00
Nicholas Marriott
907bec675a
FD_CLOEXEC more fds. Still one I can't find...
2009-03-31 22:20:42 +00:00
Nicholas Marriott
5872633aef
Now unused variable.
2009-03-28 15:49:05 +00:00
Nicholas Marriott
cb2ac5c269
Key repeating is now a property of the key binding not of the command. Repeat
...
is turned on when the key is bound with the -r flag to bind-key. next/previous-
window no longer repeat by default as it turned out to annoy me.
2009-03-28 14:08:09 +00:00
Nicholas Marriott
a7f57773b7
Not const.
2009-03-27 17:04:04 +00:00
Nicholas Marriott
be0c79f3ad
Sockets in /tmp are now created in a subdirectory named, tmux-UID, eg
...
tmux-1000. The default socket is thus /tmp/tmux-UID/default. To start a
separate server, the new -L command line option should be used: this creates a
socket in the same directory with a different name ("-L main" will create
socket called "main"). -S should only be used to place the socket outside
/tmp. This makes sockets a little more secure and a bit more convenient to use
multiple servers.
2009-03-27 15:57:10 +00:00
Nicholas Marriott
52fb9ca250
Clear pollfds first.
2009-03-27 08:46:02 +00:00
Nicholas Marriott
0402ef2e31
Log socket path so I can tell which tmux log is which.
2009-03-05 20:24:41 +00:00
Nicholas Marriott
a9a22d7ede
Initialise socket_path before parsing configuration file.
2009-03-04 17:33:30 +00:00
Nicholas Marriott
5b7e882bf6
Don't redraw status if it has already been redrawed as part of entire screen.
2009-02-21 17:52:25 +00:00
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
Nicholas Marriott
68a5d5c00b
Window attachment, malloc debugging, fix a segfault with no sessions.
2007-10-04 11:52:03 +00:00
Nicholas Marriott
815815989a
Next/last/previous window, some other tweaks.
2007-10-04 00:02:10 +00:00
Nicholas Marriott
7ba01f6843
New window command.
2007-10-03 23:32:26 +00:00
Nicholas Marriott
df716ecc8f
Rewrite command handling to be more generic. Not finished!
2007-10-03 21:31:07 +00:00
Nicholas Marriott
dadc56d754
Key binding, unbinding.
2007-10-03 11:26:34 +00:00
Nicholas Marriott
a68b1e58db
xcalloc, otherwise prefix may be !0 .
2007-10-03 10:20:33 +00:00
Nicholas Marriott
9bb907f2a7
Move command handling into the server and tidy up some bits.
2007-10-03 10:18:32 +00:00
Nicholas Marriott
2ec60c9d66
Pass bell through from any window.
2007-09-29 09:53:25 +00:00
Nicholas Marriott
3fa8f16364
Adjust $TMUX environ var to include session index, and don't compact session list on release. Also fix some argument types.
2007-09-27 09:15:58 +00:00
Nicholas Marriott
302a35da85
Server function naming, still not happy with server stuff though.
2007-09-26 18:09:23 +00:00
Nicholas Marriott
fb39b22a2e
Cleanup part II: split up client stuff and ops. More to come.
2007-09-26 13:43:15 +00:00
Nicholas Marriott
671694ac30
Cleanup part 1: split up server.c.
2007-09-26 10:35:24 +00:00
Nicholas Marriott
3fef2d998f
Window list with C-b W.
2007-09-22 11:50:33 +00:00
Nicholas Marriott
1fefbb7a85
Pass through backspace for now.
2007-09-21 19:24:37 +00:00
Nicholas Marriott
34f87e521b
Last window option.
2007-09-20 18:03:23 +00:00
Nicholas Marriott
12f7197adb
session_flush can go bye-bye again.
2007-08-27 20:36:52 +00:00
Nicholas Marriott
438144692d
Flush even detached sessions.
2007-08-27 15:28:07 +00:00
Nicholas Marriott
04f4e4219b
Change command format.
2007-08-27 13:45:26 +00:00
Nicholas Marriott
6e210bb005
If a session is destroyed, safely kill all other clients attached to it.
2007-08-27 12:05:15 +00:00
Nicholas Marriott
7000277f94
Don't try to upadte window after free.
2007-08-27 11:45:03 +00:00