summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/tmux.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Add three new copy-mode commands - select-line, copy-line,nicm2011-05-181-1/+4
| | | | copy-end-of-line. From Dave Disser and Randy Stauner a while back.
* Add a new option, mouse-resize-pane. When on, panes may be resized bynicm2011-05-081-1/+6
| | | | dragging their borders. From hsim at gmx.li.
* Use the tsl and fsl terminfo(5) capabilities to update terminal titlenicm2011-05-081-3/+6
| | | | | | and automatically fill them in on terminals with the XT capability (which means their title setting is xterm-compatible). From hsim at gmx.li.
* When mode-mouse is on (it is off by default), automatically enter copynicm2011-04-191-1/+3
| | | | | | mode when the mouse is dragged or the mouse wheel is used. Also exit copy mode when the mouse wheel is scrolled off the bottom. Discussed with and written by hsim at gmx dot li.
* Add an option (mouse-select-window) which allows the mouse to be used bynicm2011-04-181-1/+4
| | | | clicking on the status line, written by hsim at gmx dot li.
* If the terminal supports sitm for italics, use it instead of standoutnicm2011-04-091-1/+2
| | | | (smso). From Tiago Resende.
* Change so that an empty session name always means the current sessionsnicm2011-04-061-1/+2
| | | | | even if given with, for example, -t '', and explicitly forbid empty session names and those containing a : when they are created.
* Add a flag to cmd_find_session so that attach-session can prefernicm2011-04-051-3/+3
| | | | | unattached sessions when choosing the most recently used (if -t is not given). Suggested by claudio@.
* Change -t on display-message to be target-pane for the #[A-Z]nicm2011-03-291-3/+3
| | | | replacements and add -c as target-client.
* Style: uint -> u_int and a missing else.nicm2011-03-281-2/+2
|
* Don't include meta twice when working out the flags to output fornicm2011-03-271-2/+2
| | | | | xterm-style keys - bit 3 is accepted on input but not on output. Also a style nit in the header.
* Give each pane created in a tmux server a unique id (starting from 0),nicm2011-03-271-1/+9
| | | | | put it in the TMUX_PANE environment variable and accept it as a target. Suggested by and with testing and tweaks from Ben Boeckel.
* Support passing through escape sequences to the underlying terminal bynicm2011-03-071-1/+3
| | | | | | | | | | using DCS with a "tmux;" prefix. Escape characters in the sequences must be doubled. For example: $ printf '\033Ptmux;\033\033]12;red\007\033\\' Will pass \033]12;red\007 to the terminal (and change the cursor colour in xterm). From Kevin Goodsell.
* Add a -P option to detach to HUP the client's parent process (usuallynicm2011-03-031-1/+2
| | | | causing it to exit as well).
* Simplify the way jobs work and drop the persist type, so all jobs arenicm2011-01-261-18/+17
| | | | | | | | | | | | | | | | | fire-and-forget. Status jobs now managed with two trees of output (new and old), rather than storing the output in the jobs themselves. When the status line is processed any jobs which don't appear in the new tree are started and the output from the old tree displayed. When a job finishes it updates the new tree with its output and that is used for any subsequent redraws. When the status interval expires, the new tree is moved to the old so that all jobs are run again. This fixes the "#(echo %H:%M:%S)" problem which would lead to thousands of identical persistent jobs and high memory use (this can still be achieved by adding "sleep 30" but that is much less likely to happen by accident).
* Use LIST_* not SLIST_*.nicm2011-01-261-5/+5
|
* When clearing the entire screen, clear lines that are used into thenicm2011-01-251-1/+2
| | | | history like xterm does. Requested ages ago by someone I've forgotten.
* Check if the index is in use and fail before creating the child process,nicm2011-01-251-2/+3
| | | | rather than leaving a stray child on failure.
* Set $TMUX without the session when background jobs are run.nicm2011-01-231-4/+4
|
* Mouse highlight mode (1001) requires a program to cooperate sonicm2011-01-151-7/+5
| | | | supporting it through tmux is not as easy as this, remove it for now.
* Move all calls to fcntl(...O_NONBLOCK) into a function and clear thenicm2011-01-081-1/+2
| | | | | flag on the stdio file descriptors before closing them (fixes things like "tmux ls && cat").
* Clean up and simplify tmux command argument parsing.nicm2011-01-041-73/+46
| | | | | | | | | | | | | | | | | | | Originally, tmux commands were parsed in the client process into a struct with the command data which was then serialised and sent to the server to be executed. The parsing was later moved into the server (an argv was sent from the client), but the parse step and intermediate struct was kept. This change removes that struct and the separate parse step. Argument parsing and printing is now common to all commands (in arguments.c) with each command left with just an optional check function (to validate the arguments at parse time), the exec function and a function to set up any key bindings (renamed from the old init function). This is overall more simple and consistent. There should be no changes to any commands behaviour or syntax although as this touches every command please watch for any unexpected changes.
* Support for UTF-8 mouse input (\033[1005h). This was added in xterm 262nicm2011-01-031-4/+8
| | | | | | | | | | and supports larger terminals than the older way. If the new mouse-utf8 option is on, UTF-8 mouse input is enabled for all UTF-8 terminals. The option defaults to on if LANG etc are set in the same manner as the utf8 option. With help and based on code from hsim at gmx.li.
* Move the user-visible parts of all options (names, types, limit, defaultnicm2011-01-011-23/+33
| | | | | | values) together into one set of tables in options-table.c. Also clean up and simplify cmd-set-options.c and move a common print function into option-table.c.
* Sprinkle a little more const.nicm2011-01-011-7/+9
|
* Another table that should be const.nicm2011-01-011-2/+2
|
* Don't reset the activity timer for unattached sessions every second,nicm2011-01-011-1/+2
| | | | | | | this screws up the choice of most-recently-used. Instead, break the time update into a little function and do it when the session is attached. Pointed out by joshe@.
* Remove some unused defines.nicm2010-12-301-4/+1
|
* Change from a per-session stack of buffers to one global stack which isnicm2010-12-301-8/+3
| | | | | | | much more convenient and also simplifies lot of code. This renders copy-buffer useless and makes buffer-limit now a server option. By Tiago Cunha.
* Add a function to create window flags rather than doing the same thingnicm2010-12-301-1/+3
| | | | in two places. From Thomas Adam.
* Support all four of the xterm mouse modes. Based on a diff from hsim atnicm2010-12-291-5/+11
| | | | gmx.li.
* Store sessions in an RB tree by name rather than a list, this is tidiernicm2010-12-211-3/+9
| | | | | | | | | and allows them to easily be shown sorted in various lists (list-sessions/choose-sessions). Keep a session index which is used in a couple of places internally but make it an ever-increasing number rather than filling in gaps with new sessions.
* Dead sessions are never on the active sessions list, so the SESSION_DEADnicm2010-12-201-2/+1
| | | | flag is effectively unused. Remove it.
* Use pointer rather than index for the client's last session.nicm2010-12-201-2/+2
|
* Unify the way sessions are used by callbacks - store the address and usenicm2010-12-201-1/+2
| | | | | the reference count, then check it is still on the global sessions list in the callback.
* Track the last session for a client and add a flag to switch-client andnicm2010-12-111-1/+2
| | | | a key binding (L) to move a client back to its last session.
* Make the prompt history global for all clients which is much more useful than per-client history.nicm2010-12-111-4/+2
|
* Add an option to alert (monitor) for silence (lack of activity) in anicm2010-12-061-2/+6
| | | | window. From Thomas Adam.
* There is somewhere that WINDOW_HIDDEN is getting set when it shouldn'tnicm2010-11-221-4/+3
| | | | | | | | be and I can't find it, but the flag itself is a useless optimisation that only applies to automatic-resize windows, so just dispose of it entirely. Fixes problems reported by Nicholas Riley.
* Declaration in header should be extern.nicm2010-11-111-2/+2
|
* We now send argv to the server after parsing it in the client to get thenicm2010-10-291-1/+2
| | | | | command, so the client should not modify it. Instead, take a copy. Fixes parsing command lists, reported by mcbride@.
* Add a last-pane command (bound to ; by default). Requested ages ago bynicm2010-10-231-1/+3
| | | | somebody whose name I have forgotten.
* Merge the before and after attach client code into one in client.cnicm2010-10-181-6/+9
| | | | (instead of two in tmux.c and client.c).
* Nuke a leftover RB tree declaration spotted by blambert.nicm2010-09-281-3/+1
|
* Two new options:nicm2010-09-261-1/+2
| | | | | | | | | | | | - server option "exit-unattached" makes the server exit when no clients are attached, even if sessions are present; - session option "destroy-unattached" destroys a session once no clients are attached to it. These are useful for preventing tmux remaining in the background where it is undesirable and when using tmux as a login shell to keep a limit on new sessions.
* Use UTF-8 line drawing characters on UTF-8 terminals. Fixes some stupidnicm2010-09-111-4/+6
| | | | | | | | terminals (I'm looking at you, putty) which disable the vt100 ACS mode switching sequences in UTF-8 mode. Also on terminals without ACS at all, use ASCII equivalents where obvious.
* Add -n and -p flags to switch-client to move to the next and previousnicm2010-09-081-1/+3
| | | | | | | session (yes, it doesn't match window/pane, but so what, nor does switch-client). Based on a diff long ago from "edsouza".
* Do not call event_del() for signals after fork(), just use sigaction()nicm2010-08-191-3/+3
| | | | | directly instead - calling libevent functions after fork() w/o event_reinit() is a bad idea, even if in this case it was harmless.
* Change the way backoff works. Instead of stopping reading from the ptynicm2010-08-111-3/+6
| | | | | | | | | | when the client tty backs up too much, just stop updating the tty and only update the internal screen. Then when the tty recovers, force a redraw. This prevents a dodgy client from causing other clients to go into backoff while still allowing tmux to be responsive (locally) when seeing lots of output.
* When changing so that the client passes its stdout and stderr as well asnicm2010-07-241-5/+13
| | | | | | | | | | | | | | | | | | stdin up to the server, I forgot one essential point - the tmux server could now be both the producer and consumer. This happens when tmux is run inside tmux, as well as when piping tmux commands together. So, using stdio(3) was a bad idea - if sufficient data was written, this could block in write(2). When that happened and the server was both producer and consumer, it deadlocks. Change to use libevent bufferevents for the client stdin, stdout and stderr instead. This is trivial enough for output but requires a callback mechanism to trigger when stdin is finished. This relies on the underlying polling mechanism for libevent to work with whatever devices to which the user could redirect stdin, stdout or stderr, hence the change to use poll(2) over kqueue(2) for tmux.