Commit Graph

181 Commits (1de812d5a8342afc2498c0ef74f4fcbf48907d0b)

Author SHA1 Message Date
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