aboutsummaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAge
* Merge copy mode and output mode, dropping the latter. Idea and code fromNicholas Marriott2010-04-06
| | | | Micah Cowan.
* Support up, down, left, right movement through panes with -UDLR flags toNicholas Marriott2010-03-22
| | | | | | | select-pane. Also REMOVE the up- and down-pane commands: equivalent behaviour is now available using -t :.+ and -t :.-.
* Fix DPADD, from Brad.Nicholas Marriott2010-01-31
|
* New command, join-pane, to split and move an existing pane into the space (likeNicholas Marriott2010-01-07
| | | | splitw then movep, or the reverse of breakp).
* Permit panes to be referred to as "top", "bottom", "top-left" etc, if the rightNicholas Marriott2009-12-08
| | | | pane can be identified.
* Eliminate duplicate code and ease the passage for server-wide options by addingNicholas Marriott2009-12-03
| | | | | | | a -w flag to set-option and show-options and making setw and showw aliases to set -w and show -w. Note: setw and showw are still there, but now aliases for set -w and show -w.
* New command, capture-pane, which copies the entire pane contents to a pasteNicholas Marriott2009-12-01
| | | | buffer. From Jonathan Alvarado.
* Cleanup by moving various (mostly horrible) little bits handling UTF-8 gridNicholas Marriott2009-11-18
| | | | | | | data into functions in a new file, grid-utf8.c, and use sizeof intead of UTF8_DATA. Also nuke trailing whitespace from tmux.1, reminded by jmc.
* Add a per-client log of status line messages displayed while that clientNicholas Marriott2009-11-18
| | | | | | | | exists. A new message-limit session option sets the maximum number of entries and a command, show-messages, shows the log (bound to ~ by default). This (and prompt history) might be better as a single global log but until there are global options it is easier for them to be per client.
* Bye-bye buffer*.c.Nicholas Marriott2009-11-04
|
* Switch jobs over to use a bufferevent.Nicholas Marriott2009-11-04
|
* Initial changes to move tmux to libevent.Nicholas Marriott2009-11-04
| | | | | | | | | This moves the client-side loops are pretty much fully over to event-based only (tmux.c and client.c) but server-side (server.c and friends) treats libevent as a sort of clever poll, waking up after every event to run various things. Moving the server stuff over to bufferevents and timers and so on will come later.
* Rewrite xterm-keys code (both input and output) so that works (doesn't alwaysNicholas Marriott2009-10-26
| | | | | output the same modifiers, accepts all the possible input keys) and is more understandable.
* Split the server code handling clients, jobs and windows off into separateNicholas Marriott2009-10-22
| | | | | | | | | files from server.c (merging server-msg.c into the client file) and rather than iterating over each set after poll(), allow a callback to be specified when the fd is added and just walk once over the returned pollfds calling each callback where needed. More to come, getting this in so it is tested.
* Client tidying: get rid of client_ctx struct in favour of two variables inNicholas Marriott2009-10-21
| | | | client.c, and move the functions in client-fn.c into other files.
* Add a pipe-pane command to allow a pane to be piped to a shell command, forNicholas Marriott2009-10-11
| | | | | | | | | | | example: pipe-pane 'cat >~/out' No arguments stops outputing and closes the pipe; the -o flag toggles a pipe and on and off (useful for key bindings). Suggested by espie@.
* Split list-panes off from list-windows.Nicholas Marriott2009-10-10
|
* Rather than running status-left, status-right and window title #() with popenNicholas Marriott2009-10-10
| | | | | | | | | | | | | | | | | immediately every redraw, queue them up and run them in the background, starting each once every status-interval. The actual status line uses the output from the last run. This brings several advantages: - tmux itself may be called from inside #() without causing the server to hang; - likewise, sleep or similar doesn't cause the server to block; - commands aren't run excessively often when redrawing; - commands shared by status-left and status-right, or used multiple times, will only be run once. run-shell and if-shell still use system()/popen() but will be changed over to use this too later.
* Remove scroll mode which is now redundant, copy mode should be used instead.Nicholas Marriott2009-10-06
| | | | The = key binding now does nothing.
* New lock-client and lock-session commands to lock an individual client or allNicholas Marriott2009-09-24
| | | | clients attached to a session respectively.
* Remove the internal tmux locking and instead detach each client and run theNicholas Marriott2009-09-23
| | | | | | | | | | | | | | command specified by a new option "lock-command" (by default "lock -np") in each client. This means each terminal has to be unlocked individually but simplifies the code and allows the system password to be used to unlock. Note that the set-password command is gone, so it will need to be removed from configuration files, and the -U command line flag has been removed. This is the third protocol version change so again it is best to stop the tmux server before upgrading.
* run-shell command to run a shell command without opening a window, sendingNicholas Marriott2009-09-20
| | | | stdout to output mode.
* Add a new display-panes command, with two options (display-panes-colour andNicholas Marriott2009-08-31
| | | | | display-panes-time), which displays a visual indication of the number of each pane.
* Add a choose-client command and extend choose-{session,window} to accept aNicholas Marriott2009-08-25
| | | | | | | | | | | template. After a choice is made, %% (or %1) in the template is replaced by the name of the session, window or client suitable for -t and the result executed as a command. So, for example, "choose-window "killw -t '%%'"" will kill the selected window. The defaults if no template is given are (as now) select-window for choose-window, switch-client for choose-session, and detach-client for choose-client (now bound to D).
* Switch tmux to use imsg. This is the last major change to make theNicholas Marriott2009-08-11
| | | | | | | | | | | | | | | | | client-server protocol more resilient and make the protocol versioning work properly. In future, the only things requiring a protocol version bump will be changes in the message structs, and (when both client and server have this change) mixing different versions should nicely report an error message. As a side effect this also makes the code tidier, fixes a problem with the way errors reported during server startup were handled, and supports fd passing (which will be used in future). Looked over by eric@, thanks. Please note that mixing a client with this change with an older server or vice versa may cause tmux to crash or hang - tmux should be completely exited before upgrading.
* Infrastructure and commands to manage the environment for processes startedNicholas Marriott2009-08-08
| | | | | | | | | | | | | | | within tmux. There is a global environment, copied from the external environment when the server is started and each sesssion has an (initially empty) session environment which overrides it. New commands set-environment and show-environment manipulate or display the environments. A new session option, update-environment, is a space-separated list of variables which are updated from the external environment into the session environment every time a new session is created - the default is DISPLAY.
* There aren't many client message types or code to handle them so get rid of theNicholas Marriott2009-07-30
| | | | | | | | | | lookup table and use a switch, merge the tiny handler functions into it, and move the whole lot to client.c. Also change client_msg_dispatch to consume as many messages as possible and move the call to it to the right place so it checks for signals afterwards. Prompted by suggestions from eric@.
* tty_write is relatively short and the only function left in tty-write.c so moveNicholas Marriott2009-07-22
| | | | it into tty.c.
* Improved layout code.Nicholas Marriott2009-07-19
| | | | | | | | | | | | | | | | | | | | | | | Each window now has a tree of layout cells associated with it. In this tree, each node is either a horizontal or vertical cell containing a list of other cells running from left-to-right or top-to-bottom, or a leaf cell which is associated with a pane. The major functional changes are: - panes may now be split arbitrarily both horizontally (splitw -h, C-b %) and vertically (splitw -v, C-b "); - panes may be resized both horizontally and vertically (resizep -L/-R/-U/-D, bound to C-b left/right/up/down and C-b M-left/right/up/down); - layouts are now applied and then may be modified by resizing or splitting panes, rather than being fixed and reapplied when the window is resized or panes are added; - manual-vertical layout is no longer necessary, and active-only layout is gone (but may return in future); - the main-pane layouts now reduce the size of the main pane to fit all panes if possible. Thanks to all who tested.
* - New command display-message (alias display) to display a message in theNicholas Marriott2009-07-17
| | | | | | | | | | status line (bound to "i" and displays the current window and time by default). The same substitutions are applied as for status-left/right. - Add support for including the window index (#I), pane index (#P) and window name (#W) in the message, and status-left or status-right. - Bump protocol version. From Tiago Cunha, thanks!
* Since tmux doesn't actually need ncurses, use -lcurses/curses.hNicholas Marriott2009-07-14
| | | | instead. Pointed out by millert a while ago.
* Tidy up and improve target (-t) argument parsing:Nicholas Marriott2009-07-13
| | | | | | | | | | | | | | - move the code back into cmd.c and merge with the existing functions where possible; - accept "-tttyp0" as well as "-t/dev/ttyp0" for clients; - when looking up session names, try an exact match first, and if that fails look for it as an fnmatch pattern and then as the start of a name - if more that one session matches an error is given; so if there is one session called "mysession", -tmysession, -tmysess, -tmysess* are equivalent but if there is also "mysession2", the last two are errors; - similarly for windows, if the argument is not a valid index or exact window name match, try it against the window names as an fnmatch pattern and a prefix.
* New command, if-shell (alias if). Executes the tmux command in the secondNicholas Marriott2009-07-09
| | | | | | | | argument if the shell command in the first succeeds, for example: if "[ -e ~/.tmux.conf.alt ]" "source .tmux.conf.alt" Written by Tiago Cunha, many thanks.
* diagflags for diagsMarc Espie2009-06-25
| | | | okay nicm@
* Remove some cruft from the Makefile.Nicholas Marriott2009-06-24
|
* Change find-window and monitor-content to use fnmatch(3). For convenience andNicholas Marriott2009-06-24
| | | | | | | | | 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.
* Import tmux, a terminal multiplexor allowing (among other things) a singleNicholas Marriott2009-06-01
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