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
eb8ab96980
Remove some dead assignments, found by sthen with clang.
2009-06-25 22:09:20 +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
Nicholas Marriott
7e796dea03
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.
Also display the line number and the entire line in the results, and lose the
nasty section_string function and the now empty util.c file.
Initially from Tiago Cunha.
2009-06-24 22:49:56 +00:00
Nicholas Marriott
da8401d8be
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-24 17:36:15 +00:00
Nicholas Marriott
35876eaab9
Import tmux, a terminal multiplexor allowing (among other things) a single
...
terminal to be switched between several different windows and programs
displayed on one terminal be detached from one terminal and moved to another.
ok deraadt pirofti
2009-06-01 22:58:49 +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
Nicholas Marriott
85770bc701
Use $SHELL for new shell, if set.
2007-08-27 10:24:03 +00:00
Nicholas Marriott
4b62b1d16c
Sync with fdm.
2007-07-25 23:13:18 +00:00
Nicholas Marriott
a41ece5ff0
Initial import to CVS. Basic functions are working, albeit with a couple of showstopper memory bugs and many missing features. Detaching, reattaching, creating new sessions, listing sessions work acceptably for using with shells. Simple curses programs (top, systat, tetris) and more complicated ones (mutt, emacs) that don't require scrolling regions (ESC[r) mostly work fine (including mutt, emacs). No status bar yet and no key remapping or other customisation.
2007-07-09 19:04:12 +00:00