Commit Graph

557 Commits (master)

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